class SocialSecurityNumber::Fr

SocialSecurityNumber::Fr validates France INSEE code en.wikipedia.org/wiki/National_identification_number#France

Constants

REGEXP

Public Instance Methods

validate() click to toggle source
# File lib/social_security_number/country/fr.rb, line 5
def validate
  @error = if !check_by_regexp(REGEXP)
             'bad number format'
           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/fr.rb, line 17
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/fr.rb, line 21
def count_last_number
  number = @civil_number[0..12]
  department = @civil_number[5..6]
  if department == '2A'
    number = ("#{@civil_number[0..4]}19#{@civil_number[7..12]}")
  elsif department == '2B'
    number = ("#{@civil_number[0..4]}18#{@civil_number[7..12]}")
  end
  97 - (number.to_i % 97)
end