Module: ZaIdValidator
- Defined in:
- lib/za-id-validator.rb
Instance Method Summary collapse
- #a(id) ⇒ Object
- #b(id) ⇒ Object
- #c(id) ⇒ Object
- #d(id) ⇒ Object
- #length_is_valid?(id) ⇒ Boolean
- #validate_za_identity_number?(id) ⇒ Boolean
- #z(id) ⇒ Object
Instance Method Details
#a(id) ⇒ Object
11 12 13 |
# File 'lib/za-id-validator.rb', line 11 def a(id) id.chars.to_a.values_at(0,2,4,6,8,10).inject(0) { |sum, v| sum += v.to_i } end |
#b(id) ⇒ Object
15 16 17 |
# File 'lib/za-id-validator.rb', line 15 def b(id) id.chars.to_a.values_at(1,3,5,7,9,11).join end |
#c(id) ⇒ Object
19 20 21 |
# File 'lib/za-id-validator.rb', line 19 def c(id) (b(id).to_i * 2).to_s.chars.to_a.inject(0) { |sum, v| sum += v.to_i } end |
#d(id) ⇒ Object
23 24 25 |
# File 'lib/za-id-validator.rb', line 23 def d(id) a(id) + c(id) end |
#length_is_valid?(id) ⇒ Boolean
7 8 9 |
# File 'lib/za-id-validator.rb', line 7 def length_is_valid?(id) id =~ /^\d{13}$/ end |
#validate_za_identity_number?(id) ⇒ Boolean
3 4 5 |
# File 'lib/za-id-validator.rb', line 3 def validate_za_identity_number?(id) length_is_valid? end |
#z(id) ⇒ Object
27 28 29 |
# File 'lib/za-id-validator.rb', line 27 def z(id) 10 - (d(id) % 10) end |