class SocialSecurityNumber::Cn
SocialSecurityNumber::Cn
validates Chinese Resident Identity Card Number en.wikipedia.org/wiki/Resident_Identity_Card#Identity_card_number
Constants
- CONTROLCIPHERS
- DATE_REGEXP
- MODULUS
- REGEXP
Public Instance Methods
gender()
click to toggle source
# File lib/social_security_number/country/cn.rb, line 21 def gender @gender = @individual.to_i.odd? ? :male : :female end
validate()
click to toggle source
# File lib/social_security_number/country/cn.rb, line 5 def validate @error = if !check_digits 'it is not number' elsif !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
year()
click to toggle source
# File lib/social_security_number/country/cn.rb, line 17 def year @year = @parsed_civil_number[:year].to_i end
Private Instance Methods
check_control_sum()
click to toggle source
# File lib/social_security_number/country/cn.rb, line 34 def check_control_sum count_last_number.to_i == @control_number.to_i end
count_last_number()
click to toggle source
# File lib/social_security_number/country/cn.rb, line 38 def count_last_number (12 - (calc_sum(@civil_number[0..16], CONTROLCIPHERS) % MODULUS)) % MODULUS end