Class: KuwaitiCivilId::CivilIdValidator
- Inherits:
-
Object
- Object
- KuwaitiCivilId::CivilIdValidator
- Defined in:
- lib/kuwaiti_civil_id.rb
Class Method Summary collapse
Class Method Details
.valid?(id_number) ⇒ Boolean
10 11 12 13 14 15 16 17 18 19 |
# File 'lib/kuwaiti_civil_id.rb', line 10 def self.valid?(id_number) return false unless id_number.to_s.match?(/\A\d{12}$\z/) digits = id_number.to_s.chars.map(&:to_i) checksum = digits.pop coefficients = [2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2] sum = digits.zip(coefficients).sum { |d, c| d * c } calculated_checksum = 11 - (sum % 11) calculated_checksum == checksum end |