class BankCodeResolver

Attributes

name[RW]
number[RW]

Public Class Methods

bank_options() click to toggle source
# File lib/SingaporeBankCodes.rb, line 25
def self.bank_options
  SingaporeBankCode::BankAccount.decendants
end
new(args) click to toggle source
# File lib/SingaporeBankCodes.rb, line 16
def initialize(args)
  @name   = args.fetch(:name).delete(' ').upcase
  @number = args.fetch(:number)
  raise ArgumentError.new "Name(#{@name}) needs to be one of #{BankCodeResolver.bank_options}" unless BankCodeResolver.bank_options.include?(@name)
  @bank_account      = Object.const_get(@name.delete(' ').upcase).new(@number)
  min_length = @bank_account.min_length
  raise ArgumentError.new "Account number needs to be at least #{min_length}" unless (@number.to_s.length >= min_length)
end

Public Instance Methods

get_result() click to toggle source
# File lib/SingaporeBankCodes.rb, line 29
def get_result
  bank_code, branch_code, branch_name, resolved_number, swift_code = @bank_account.resolve!
  {
    'bank_code' => bank_code, 
    'branch_code' => branch_code, 
    'branch_name' => branch_name,
    'account_number' => resolved_number,
    'swift_code' => swift_code
  }
end