class BanksApi::Bank

Attributes

mutex[R]
registry[R]

Public Class Methods

new() click to toggle source
# File lib/banks_api/bank.rb, line 12
def initialize
  @registry = {}
  @mutex = Monitor.new
end

Public Instance Methods

get_bank_api(bank_name) click to toggle source
# File lib/banks_api/bank.rb, line 23
def get_bank_api(bank_name)
  with_mutex do
    registry.fetch(bank_name.to_s)
  end
end
register_bank(bank_name, api_class) click to toggle source
# File lib/banks_api/bank.rb, line 17
def register_bank(bank_name, api_class)
  with_mutex do
    registry[bank_name.to_s] = api_class
  end
end

Private Instance Methods

with_mutex() { || ... } click to toggle source
# File lib/banks_api/bank.rb, line 33
def with_mutex
  mutex.synchronize { yield }
end