Class: Ibanizator::Iban

Inherits:
Object
  • Object
show all
Includes:
Adamantium
Defined in:
lib/ibanizator/iban.rb,
lib/ibanizator/iban/invalid.rb,
lib/ibanizator/iban/lengths.rb,
lib/ibanizator/iban/validator.rb,
lib/ibanizator/iban/extended_data.rb,
lib/ibanizator/iban/extended_data/de.rb

Defined Under Namespace

Modules: ExtendedData Classes: Invalid, Validator

Constant Summary collapse

LENGTHS =

according to wikipedia (en.wikipedia.org/wiki/IBAN)

{
  :AL => 28,
  :AD => 24,
  :AT => 20,
  :AZ => 28,
  :BH => 22,
  :BY => 28,
  :BE => 16,
  :BA => 20,
  :BR => 29,
  :BG => 22,
  :CR => 22,
  :HR => 21,
  :CY => 28,
  :CZ => 24,
  :DK => 18,
  :DO => 28,
  :TL => 23,
  :EG => 27,
  :EE => 20,
  :FO => 18,
  :FI => 18,
  :FR => 27,
  :GE => 22,
  :DE => 22,
  :GI => 23,
  :GR => 27,
  :GL => 18,
  :GT => 28,
  :HU => 28,
  :IS => 26,
  :IQ => 23,
  :IE => 22,
  :IL => 23,
  :IT => 27,
  :JO => 30,
  :KZ => 20,
  :XK => 20,
  :KW => 30,
  :LV => 21,
  :LB => 28,
  :LI => 21,
  :LT => 20,
  :LU => 20,
  :MK => 19,
  :MT => 31,
  :MR => 27,
  :MU => 30,
  :MC => 27,
  :MD => 24,
  :ME => 22,
  :NL => 18,
  :NO => 15,
  :PK => 24,
  :PS => 29,
  :PL => 28,
  :PT => 25,
  :QA => 29,
  :RO => 24,
  :LC => 32,
  :SM => 27,
  :SA => 24,
  :RS => 22,
  :SC => 31,
  :SK => 24,
  :SI => 19,
  :ES => 24,
  :SE => 24,
  :CH => 21,
  :TN => 24,
  :TR => 26,
  :UA => 29,
  :AE => 23,
  :GB => 22,
  :VA => 22,
  :VG => 24
}.freeze

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(an_iban) ⇒ Iban

Returns a new instance of Iban.



16
17
18
# File 'lib/ibanizator/iban.rb', line 16

def initialize(an_iban)
  @iban_string = sanitize(an_iban)
end

Instance Attribute Details

#iban_stringObject (readonly) Also known as: to_s

Returns the value of attribute iban_string.



10
11
12
# File 'lib/ibanizator/iban.rb', line 10

def iban_string
  @iban_string
end

Class Method Details

.from_string(a_string) ⇒ Object



20
21
22
# File 'lib/ibanizator/iban.rb', line 20

def self.from_string(a_string)
  new(a_string)
end

Instance Method Details

#country_codeObject



24
25
26
27
# File 'lib/ibanizator/iban.rb', line 24

def country_code
  cc = iban_string[0..1].to_sym
  LENGTHS.keys.include?(cc) ? cc : :unknown
end

#extended_dataObject



30
31
32
33
34
# File 'lib/ibanizator/iban.rb', line 30

def extended_data
  if country_code == :DE
    ExtendedData::DE.new(self)
  end
end

#formatted_iban_stringObject



41
42
43
# File 'lib/ibanizator/iban.rb', line 41

def formatted_iban_string
  iban_string.scan(/.{1,4}/).join(' ')
end

#valid?Boolean

Returns:

  • (Boolean)


37
38
39
# File 'lib/ibanizator/iban.rb', line 37

def valid?
  Validator.new(self).validate
end