The returns are unnecessary as the `begin rescue` will be treated as a single statement and if there is no error then the check_host's return will be return value and if there is an error then the rescue's value will be the return value.  Also remove the unnecessary `self` when calling `replicant`.

```ruby
def check
  nmod = replicant
  
  begin
    nmod.check_host(datastore['RHOST])
  rescue  NoMethodError
    Exploit::CheckCode::Unsupported  
  end
end
```