Class: Validator::Domain

Inherits:
Object
  • Object
show all
Defined in:
lib/validator/domain.rb,
lib/validator/domain/tld.rb

Defined Under Namespace

Classes: Tld

Constant Summary collapse

LENGTH =
255
LABEL_LENGTH =
63

Instance Method Summary collapse

Constructor Details

#initialize(value) ⇒ Domain

Returns a new instance of Domain.



8
9
10
# File 'lib/validator/domain.rb', line 8

def initialize(value)
  @value = value
end

Instance Method Details

#valid?Boolean

valid if passes all conditions

Returns:

  • (Boolean)


25
26
27
# File 'lib/validator/domain.rb', line 25

def valid?
  valid_by_length? and valid_by_label_length? and valid_by_regexp?
end

#valid_by_label_length?(label_length = nil) ⇒ Boolean

Returns:

  • (Boolean)


16
17
18
# File 'lib/validator/domain.rb', line 16

def valid_by_label_length?(label_length = nil)
  !(@value.split(".").find{|f| f.length > (label_length || LABEL_LENGTH) and f.length > 1 })
end

#valid_by_length?(length = nil) ⇒ Boolean

Returns:

  • (Boolean)


12
13
14
# File 'lib/validator/domain.rb', line 12

def valid_by_length?(length = nil)
  @value.length <= (length || LENGTH)
end

#valid_by_regexp?Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/validator/domain.rb', line 20

def valid_by_regexp?
  @value =~ /^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}$/i
end