Class: EasyPin::ChecksumGenerator

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

Instance Method Summary collapse

Constructor Details

#initialize(base) ⇒ ChecksumGenerator

Returns a new instance of ChecksumGenerator.



90
91
92
# File 'lib/easy_pin.rb', line 90

def initialize(base)
  @base = base
end

Instance Method Details

#checksum(parts) ⇒ Object



94
95
96
# File 'lib/easy_pin.rb', line 94

def checksum(parts)
  parts + [sum(parts)]
end

#unchecksum(parts) ⇒ Object



98
99
100
101
# File 'lib/easy_pin.rb', line 98

def unchecksum(parts)
  validate(parts)
  parts[0..-2]
end

#validate(parts) ⇒ Object

Raises:



103
104
105
106
107
# File 'lib/easy_pin.rb', line 103

def validate(parts)
  checksum = sum(parts[0..-2])
  expected = parts[-1]
  raise InvalidChecksum, "invalid checksum #{checksum}, expected #{expected}" if checksum != expected
end