class SocialSecurityNumber::Is

SocialSecurityNumber::Is validates Iceland personal and organisation identity code (Kennitala) en.wikipedia.org/wiki/National_identification_number#Iceland

Constants

CONTROLCIPHERS
DATE_REGEXP
MODULUS
REGEXP

Public Instance Methods

day() click to toggle source
# File lib/social_security_number/country/is.rb, line 15
def day
  @day = @parsed_civil_number[:day].to_i % 40
end
validate() click to toggle source
# File lib/social_security_number/country/is.rb, line 5
def validate
  @error = if !check_by_regexp(REGEXP)
             'bad number format'
           elsif !birth_date
             'number birth date is invalid'
           elsif !check_control_sum
             'number control sum invalid'
           end
end

Private Instance Methods

check_control_sum() click to toggle source
# File lib/social_security_number/country/is.rb, line 29
def check_control_sum
  count_control_number == @control_number.to_i
end
count_control_number() click to toggle source
# File lib/social_security_number/country/is.rb, line 33
def count_control_number
  sum = calc_sum(digit_number[0..9], CONTROLCIPHERS)
  11 - sum % MODULUS
end