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