Sha256: 54041542feb4f5dc2d004b1ae26b33f5d0611b1b6373d3bed064db8e721ea756

Contents?: true

Size: 597 Bytes

Versions: 1

Compression:

Stored size: 597 Bytes

Contents

#see: http://geramat.blogs.sapo.pt/13528.html
module Citizenship
  def self.valid_identification_card!(number, check_digit)
    id_number, check_digit = String(number).delete(' '), String(check_digit)

    raise IdentificationCardError, :size unless id_number.size == 7 or id_number.size == 8
    raise IdentificationCardError, :invalid_check_digit unless decimal_check_digit_match?(id_number, check_digit)
    number
  end

  def self.valid_identification_card?(number, check_digit)
    valid_identification_card!(number, check_digit)
    true
  rescue IdentificationCardError
    false
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
citizenship-1.0.0 lib/citizenship/identification_card.rb