module Gadgeto::Domain::Validators

Public Instance Methods

domain?(domain_name) click to toggle source
# File lib/gadgeto/domain/validators.rb, line 6
def domain?(domain_name)
  !!(domain_name =~ domain_regex(0..10))
end
third_level_domain?(domain_name) click to toggle source
# File lib/gadgeto/domain/validators.rb, line 10
def third_level_domain?(domain_name)
  !!(domain_name =~ domain_regex(3))
end

Protected Instance Methods

domain_regex(level) click to toggle source

Validates domain names against usual pattern defined in RFC 1035.

# File lib/gadgeto/domain/validators.rb, line 21
def domain_regex(level)
  label = '(([a-z]|\d)+([a-z]|\d|-)*([a-z]|\d)+|([a-z]|\d)){1,63}'
  cardinal = if level.kind_of?(Range)
               "#{level.min},#{level.max}"
             else
               level - 1
             end
  %r{\A#{label}(\.#{label}){#{cardinal}}\Z}i
end