class SocialSecurityNumber::Dk
SocialSecurityNumber::Dk
validates Denmark Personal Identification Number (Det Centrale Personregister (CPR)) en.wikipedia.org/wiki/National_identification_number#Denmark
Constants
- CONTROLCIPHERS
- FEMALE_SEEDS
- MALE_SEEDS
- MODULUS_1968
- MODULUS_2007
- REGEXP
Public Instance Methods
validate()
click to toggle source
# File lib/social_security_number/country/dk.rb, line 5 def validate @error = if !check_by_regexp(REGEXP) 'bad number format' elsif !birth_date 'number birth date is invalid' elsif !valid_1968 && !valid_2007 'control code invalid' end end
Private Instance Methods
valid_1968()
click to toggle source
# File lib/social_security_number/country/dk.rb, line 36 def valid_1968 sum = calc_sum(digit_number, CONTROLCIPHERS) (sum % MODULUS_1968).zero? end
valid_2007()
click to toggle source
# File lib/social_security_number/country/dk.rb, line 41 def valid_2007 control = digit_number[6, 4].to_i rem2007 = control % MODULUS_2007 series = FEMALE_SEEDS[rem2007] || MALE_SEEDS[rem2007] series.include?(control) end