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