class SocialSecurityNumber::Ee
SocialSecurityNumber::Ee
validates Estonian Personal ID numbers (isikukood (IK)) en.wikipedia.org/wiki/National_identification_number#Estonia et.wikipedia.org/wiki/Isikukood
Constants
- CONTROLCIPHERS
- CONTROLCIPHERS2
- MODULUS
- REGEXP
Public Instance Methods
validate()
click to toggle source
# File lib/social_security_number/country/ee.rb, line 6 def validate @error = if !check_digits 'it is not number' elsif !check_length(11) 'number should be length of 11' elsif @parsed_civil_number[:gnd].to_i > 8 'gender number is not recognized' elsif !birth_date 'number birth date is invalid' elsif !check_control_sum 'number control sum invalid' end end
year()
click to toggle source
# File lib/social_security_number/country/ee.rb, line 20 def year if @parsed_civil_number base = case @parsed_civil_number[:gnd].to_i when 1..2 then 1800 when 3..4 then 1900 when 5..6 then 2000 when 7..8 then 2100 else 0 end @year = base + @parsed_civil_number[:year].to_i else 0 end end
Private Instance Methods
check_control_sum()
click to toggle source
# File lib/social_security_number/country/ee.rb, line 45 def check_control_sum count_last_number == @control_number.to_i end
count_last_number()
click to toggle source
# File lib/social_security_number/country/ee.rb, line 49 def count_last_number sum = calc_sum(@civil_number[0..9], CONTROLCIPHERS) last_number = sum % MODULUS return last_number unless last_number == 10 sum = calc_sum(@civil_number[0..9], CONTROLCIPHERS2) last_number = sum % MODULUS last_number == 10 ? 0 : last_number end