There's a bit of a double negative/apparent possible mutation that made my tired afternoon self look twice here. I'd prefer it as 

```ruby
    valid = begin
      URI.parse("http://#{value}").host == value
    rescue URI::InvalidURIError
      false
    end
```

(you could get rid of the `return` at the start too; if you don't feel like causing an exception on parsing `nil` you could always say `value.present? && URI.parse("http://#{value}").host == value`)

Of course, you can argue I probably just need biscuits :cookie: