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

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

Returns:

  • (Boolean)


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