Class: Validators::Hostname
- Inherits:
-
Object
- Object
- Validators::Hostname
- Defined in:
- lib/validators/hostname.rb
Class Method Summary collapse
Class Method Details
.valid?(host) ⇒ Boolean
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/validators/hostname.rb', line 5 def self.valid?(host) host = host.to_s uri = URI(host) host.present? && uri.host.nil? && uri.scheme.nil? && uri.fragment.nil? && uri.query.nil? && uri.path == host && host.split(".").all? {|label| valid_label?(label) } && host.size <= 255 && Validators::TLD.host_with_valid_tld?(host) rescue URI::InvalidURIError false end |
.valid_label?(label) ⇒ Boolean
22 23 24 25 26 |
# File 'lib/validators/hostname.rb', line 22 def self.valid_label?(label) !label.start_with?("-") && !label.match(/\A\d+\z/) && label.match(/\A[a-z0-9-]{1,63}\z/i) end |