Class: NumberPlate::SG::Validator

Inherits:
BaseValidator show all
Includes:
Checksum
Defined in:
lib/number_plate/sg/validator.rb

Constant Summary

Constants included from Checksum

Checksum::CHECK_SUM, Checksum::MULTIPLIER

Instance Attribute Summary

Attributes inherited from BaseValidator

#country

Instance Method Summary collapse

Methods included from Checksum

#checksum, #get_checksum_from_numbers, #numbers

Constructor Details

#initializeValidator

Returns a new instance of Validator.



9
10
11
# File 'lib/number_plate/sg/validator.rb', line 9

def initialize
  @country = "SG"
end

Instance Method Details

#is_valid?(registration_number) ⇒ Boolean

Returns:

  • (Boolean)


13
14
15
16
17
18
# File 'lib/number_plate/sg/validator.rb', line 13

def is_valid?(registration_number)
  super &&
    valid_length? &&
    valid_pattern? &&
    valid_checksum?
end

#valid_checksum?Boolean

Returns:

  • (Boolean)


28
29
30
# File 'lib/number_plate/sg/validator.rb', line 28

def valid_checksum?
  checksum == @license[-1]
end

#valid_length?Boolean

Returns:

  • (Boolean)


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

def valid_length?
  @license.length <= 8 && @license.length >= 4
end

#valid_pattern?Boolean

Returns:

  • (Boolean)


24
25
26
# File 'lib/number_plate/sg/validator.rb', line 24

def valid_pattern?
  0  == (/^[A-Z]{1,3}[1-9]{1}\d{0,3}[A-Z]$/ =~ @license)
end