class SocialSecurityNumber::Fi

SocialSecurityNumber::Fi validates Finland Personal Identity Code (Finnish: henkilötunnus (HETU)) en.wikipedia.org/wiki/National_identification_number#Finland

Constants

CONTROL_REGEXP
MODULUS
REGEXP

Public Instance Methods

validate() click to toggle source
# File lib/social_security_number/country/fi.rb, line 5
def validate
  @error = if !check_by_regexp(REGEXP)
             'bad number format'
           elsif !check_control_simbol
             'number control sum invalid'
           end
end

Private Instance Methods

check_control_simbol() click to toggle source
# File lib/social_security_number/country/fi.rb, line 20
def check_control_simbol
  count_last_simbol.to_s == @control_number.to_s
end
count_last_simbol() click to toggle source
# File lib/social_security_number/country/fi.rb, line 24
def count_last_simbol
  number = "#{@civil_number[0..5]}#{@individual}"
  last_number = number.to_i % MODULUS
  '0123456789ABCDEFHJKLMNPRSTUVWXY'[last_number]
end