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