class JpBank::Bank

Public Class Methods

codes() click to toggle source
# File lib/jp_bank/bank.rb, line 5
def self.codes
  self.load_banks unless @bank_codes
  @bank_codes.keys
end
fetch_bank_from_code(code) click to toggle source
# File lib/jp_bank/bank.rb, line 10
def self.fetch_bank_from_code(code)
  self.load_banks unless @bank_codes
  code = '%04d' % code if code.is_a?(Integer)
  @bank_codes[code]
end
fetch_bank_from_name(name) click to toggle source
# File lib/jp_bank/bank.rb, line 16
def self.fetch_bank_from_name(name)
  self.load_banks unless @bank_names
  @bank_names[name]
end
find(code_or_name) click to toggle source
# File lib/jp_bank/bank.rb, line 21
def self.find(code_or_name)
  self.fetch_bank_from_code(code_or_name) or 
    self.fetch_bank_from_name(code_or_name)
end
find!(code_or_name) click to toggle source
# File lib/jp_bank/bank.rb, line 26
def self.find!(code_or_name)
  bank = find(code_or_name)
  raise NotFound if bank.nil?
  bank
end
new(data) click to toggle source
# File lib/jp_bank/bank.rb, line 32
def initialize(data)
  @data = data
end

Private Class Methods

data_file_paths() click to toggle source
# File lib/jp_bank/bank.rb, line 59
def self.data_file_paths
  [ File.expand_path('../data/banks.yml', __FILE__) ]
end
load_banks() click to toggle source
# File lib/jp_bank/bank.rb, line 45
def self.load_banks
  require 'yaml' 

  @banks = data_file_paths.inject([]) do |data, data_path|
    data + YAML.load_file(data_path)
  end.map { |data| new(data) }
  @bank_codes = {}
  @banks.each do |bank|
    @bank_codes[bank.code] = bank
  end
  @bank_names = {}
  @banks.each { |bank| @bank_names[bank.name] = bank }
end

Public Instance Methods

code() click to toggle source
# File lib/jp_bank/bank.rb, line 36
def code
  @data['code']
end
name() click to toggle source
# File lib/jp_bank/bank.rb, line 40
def name
  @data['name']
end