Module: Croatia::PIN
- Defined in:
- lib/croatia/pin.rb
Overview
OIB - Osobni Identifikacijski Broj PIN - Personal Identification Number
Class Method Summary collapse
Class Method Details
.valid?(pin) ⇒ Boolean
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/croatia/pin.rb', line 6 def self.valid?(pin) return false unless pin pin = pin.to_s.strip return false unless pin.match?(/\A\d{11}\Z/) digits = pin.chars.map(&:to_i) control = digits.pop checksum = 10 digits.each do |digit| checksum = (checksum + digit) % 10 checksum = (checksum == 0 ? 10 : checksum) * 2 % 11 end expected_control = (11 - checksum) % 10 control == expected_control end |