Class: Trafaret::URI

Inherits:
Validator show all
Defined in:
lib/trafaret/uri_email.rb

Instance Attribute Summary

Attributes inherited from Validator

#converters, #options

Instance Method Summary collapse

Methods inherited from Validator

#&, #===, #add, #call, #failure, #initialize, #perform_convert, #to, #|

Constructor Details

This class inherits a constructor from Trafaret::Validator

Instance Method Details

#convert(uri) ⇒ Object



20
21
22
# File 'lib/trafaret/uri_email.rb', line 20

def convert(uri)
  uri.to_s
end

#prepareObject



5
6
7
# File 'lib/trafaret/uri_email.rb', line 5

def prepare
  @schemes = @options.delete(:schemes) || []
end

#validate(data) ⇒ Object



9
10
11
12
13
14
15
16
17
18
# File 'lib/trafaret/uri_email.rb', line 9

def validate(data)
  uri = ::URI.parse(data)
  unless @schemes.empty? || @schemes.include?(uri.scheme)
    failure('Invalid scheme')
  else
    uri
  end
rescue ::URI::InvalidURIError
  failure('Invalid URI')
end