class EasyPin::ChecksumGenerator

Public Class Methods

new(base) click to toggle source
# File lib/easy_pin.rb, line 90
def initialize(base)
  @base = base
end

Public Instance Methods

checksum(parts) click to toggle source
# File lib/easy_pin.rb, line 94
def checksum(parts)
  parts + [sum(parts)]
end
unchecksum(parts) click to toggle source
# File lib/easy_pin.rb, line 98
def unchecksum(parts)
  validate(parts)
  parts[0..-2]
end
validate(parts) click to toggle source
# 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

Private Instance Methods

sum(parts) click to toggle source
# File lib/easy_pin.rb, line 109
        def sum(parts)
  parts.inject(:+) % @base
end