class SocialSecurityNumber::Validator
Constants
- SUPPORTED_COUNTRY_CODES
Attributes
civil_number[RW]
country_code[RW]
error[RW]
Public Class Methods
new(params = {})
click to toggle source
# File lib/social_security_number/validator.rb, line 9 def initialize(params = {}) @civil_number = params[:number].to_s.strip.gsub(/\s+/, '').upcase @country_code = params[:country_code].to_s.strip.gsub(/\s+/, '').upcase @birth_date = params[:birth_date] ? params[:birth_date] : nil @gender = params[:gender] ? params[:gender] : nil unless self.class::SUPPORTED_COUNTRY_CODES.include?(@country_code) raise "Unexpected country code '#{country_code}' that is not yet supported" end end
Public Instance Methods
valid?()
click to toggle source
# File lib/social_security_number/validator.rb, line 21 def valid? civil_number = SocialSecurityNumber.const_get(@country_code.capitalize).new(@civil_number) if civil_number.valid? if !@birth_date.nil? && !civil_number.birth_date.nil? && civil_number.birth_date.to_s != @birth_date.to_s @error = "birth date #{@birth_date} dont match #{civil_number.birth_date}" return false end if !@gender.nil? && !civil_number.gender.nil? && civil_number.gender.to_s.strip != @gender.to_s.strip @error = "gender #{@gender} dont match #{civil_number.gender}" return false end return true end @error = civil_number.error false end