class RfcFacil::VerificationDigitCalculator

Constants

MAPPING

Attributes

rfc12_digits[RW]

Public Class Methods

new(rfc12_digits) click to toggle source
# File lib/rfc_facil/verification_digit_calculator.rb, line 13
def initialize(rfc12_digits)
  @rfc12_digits = rfc12_digits
end

Public Instance Methods

calculate() click to toggle source
# File lib/rfc_facil/verification_digit_calculator.rb, line 17
def calculate
  sum = 0
  (0..11).each do |i|
    sum += map_digit(@rfc12_digits[i]) * (13 - i)
  end
  reminder = sum % 11

  return '0' if reminder == 0
  (11 - reminder).to_s(16).upcase # from 1 to A (hex)
end
map_digit(c) click to toggle source
# File lib/rfc_facil/verification_digit_calculator.rb, line 28
def map_digit(c)
  return MAPPING[c] if MAPPING.key?(c)
  0
end