class SocialSecurityNumber::Ie
SocialSecurityNumber::Ie
validates Ireland Personal Public Service Number (PPS No
) en.wikipedia.org/wiki/Personal_Public_Service_Number www.welfare.ie/en/Pages/Extension-of-the-Personal-Public-Service-Number-Range.aspx
Constants
- CONTROLCIPHERS
- MODULUS
- REGEXP
Public Instance Methods
validate()
click to toggle source
# File lib/social_security_number/country/ie.rb, line 6 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/ie.rb, line 22 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/ie.rb, line 26 def count_last_simbol sum = calc_sum(@individual, CONTROLCIPHERS) alfabet = %w[W A B C D E F G H I J K L M N O P Q R S U V] value = if @civil_number[-1] != @control_number.to_s alfabet.index(@civil_number[-1]).to_i else 0 end last_simbol = (sum + (value * 9)) % MODULUS 'WABCDEFGHIJKLMNOPQRSTUV'[last_simbol] end