Class: TrackingNumberValidator::DHLValidator

Inherits:
Object
  • Object
show all
Defined in:
lib/tracking_number_validator/dhl_validator.rb

Constant Summary collapse

VALID_LENGTHS =
[10, 12, 14]
WEIGHTINGS =
[4, 9]

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(tracking_number) ⇒ DHLValidator

Returns a new instance of DHLValidator.



8
9
10
# File 'lib/tracking_number_validator/dhl_validator.rb', line 8

def initialize(tracking_number)
  @tracking_number = tracking_number
end

Instance Attribute Details

#tracking_numberObject (readonly)

Returns the value of attribute tracking_number.



3
4
5
# File 'lib/tracking_number_validator/dhl_validator.rb', line 3

def tracking_number
  @tracking_number
end

Instance Method Details

#nameObject



21
22
23
# File 'lib/tracking_number_validator/dhl_validator.rb', line 21

def name
  :dhl
end

#valid?Boolean

Returns:

  • (Boolean)


12
13
14
15
16
17
18
19
# File 'lib/tracking_number_validator/dhl_validator.rb', line 12

def valid?
  return false unless valid_length?
  if tracking_number.length == 10
    calculate_modulo_7
  else
    calculate_modulo_10
  end
end