Module: RomanianValidators::Iban
- Defined in:
- lib/romanianvalidators/iban.rb
Constant Summary collapse
- USE_ORD =
use ord for ruby >= 1.9
''.respond_to?(:ord)
Class Method Summary collapse
-
.transpose(iban) ⇒ Object
replace letters according to algorithm algorithm conversion maps chars to ASCII value - 55.
-
.valid?(iban) ⇒ Boolean
Descrierea algoritmului: www.bnr.ro/files/d/Legislatie/EN/Reg_IBAN.pdf.
Class Method Details
.transpose(iban) ⇒ Object
replace letters according to algorithm algorithm conversion maps chars to ASCII value - 55
19 20 21 22 23 |
# 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) ⇒ Boolean
Descrierea algoritmului: www.bnr.ro/files/d/Legislatie/EN/Reg_IBAN.pdf
10 11 12 13 14 15 |
# 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 |