class SocialSecurityNumber::Be

SocialSecurityNumber::Be validates Belgium National Register Number (Rijksregisternummer) en.wikipedia.org/wiki/National_identification_number#Belgium

Constants

REGEXP

Public Instance Methods

gender() click to toggle source
# File lib/social_security_number/country/be.rb, line 17
def gender
  @gender = @individual.to_i.odd? ? :male : :female
end
validate() click to toggle source
# File lib/social_security_number/country/be.rb, line 5
def validate
  @error = if !check_by_regexp(REGEXP)
             'bad number format'
           elsif !(1..997).member?(@individual.to_i)
             'individual number is invalid'
           elsif !birth_date && @month.to_i != 0 && @day.to_i != 0
             'number birth date is invalid'
           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/be.rb, line 25
def check_control_sum
  count_last_number == @control_number.to_i || count_last_number('2') == @control_number.to_i
end
count_last_number(number = '0') click to toggle source
# File lib/social_security_number/country/be.rb, line 29
def count_last_number(number = '0')
  97 - (("#{number}#{@year}#{@month}#{@day}#{@individual}").to_i % 97)
end