module RomanianValidators::Iban
Constants
- USE_ORD
use ord for ruby >= 1.9
Public Instance Methods
transpose(iban)
click to toggle source
replace letters according to algorithm algorithm conversion maps chars to ASCII value - 55
# File lib/romanianvalidators/iban.rb, line 19 def transpose(iban) iban.upcase.gsub(/[A-Z]/) do |s| USE_ORD ? (s[0].ord - 55).to_s : (s[0].to_i - 55).to_s end end
valid?(iban)
click to toggle source
Descrierea algoritmului: www.bnr.ro/files/d/Legislatie/EN/Reg_IBAN.pdf
# File lib/romanianvalidators/iban.rb, line 10 def valid?(iban) return false if iban.size < 3 transpose((iban.slice(4, iban.size) + iban[0..3])).to_i % 97 == 1 rescue false end