module NumberPlate::SG::Checksum

Constants

CHECK_SUM
MULTIPLIER

Public Instance Methods

checksum() click to toggle source
# File lib/number_plate/sg/checksum.rb, line 7
def checksum
  get_checksum_from_numbers(numbers)
end
get_checksum_from_numbers(numbers) click to toggle source
# File lib/number_plate/sg/checksum.rb, line 27
def get_checksum_from_numbers(numbers)
  checksum_array = []
  numbers.zip(MULTIPLIER) { |x, y| checksum_array << (x * y) }
  checksum_key = checksum_array.reduce(:+) % 19
  CHECK_SUM[checksum_key]
end
numbers() click to toggle source
# File lib/number_plate/sg/checksum.rb, line 11
def numbers
  numbers = []
  @letters.split(//).each do |alphebat|
    numbers << (alphebat.ord - 64)
  end

  if numbers.length == 3
    numbers = numbers[1,2]
  elsif numbers.length == 1
    numbers = [1] + numbers
  end

  numerals = ("000" + @numerals)[-4,4]
  numbers + numerals.split(//).map(&:to_i)
end