class NinjaModel::Adapters::AdapterManager
Attributes
adapter_pools[R]
Public Class Methods
new(pools = {})
click to toggle source
# File lib/ninja_model/adapters/adapter_manager.rb, line 20 def initialize(pools = {}) @adapter_pools = pools @registered = {} end
register_adapter_class(name, klass)
click to toggle source
# File lib/ninja_model/adapters/adapter_manager.rb, line 13 def register_adapter_class(name, klass) registered[name.to_sym] = klass end
registered?(name)
click to toggle source
# File lib/ninja_model/adapters/adapter_manager.rb, line 9 def registered?(name) registered.key?(name.to_sym) end
Public Instance Methods
create_adapter(name, spec)
click to toggle source
# File lib/ninja_model/adapters/adapter_manager.rb, line 25 def create_adapter(name, spec) @adapter_pools[name] = Adapters::AdapterPool.new(spec) end
release_active_adapters!()
click to toggle source
# File lib/ninja_model/adapters/adapter_manager.rb, line 29 def release_active_adapters! @adapter_pools.each_value do |pool| pool.release_instance end end
release_all_adapters!()
click to toggle source
# File lib/ninja_model/adapters/adapter_manager.rb, line 35 def release_all_adapters! @adapter_pools.each_value do |pool| pool.shutdown! end end
remove_adapter(klass)
click to toggle source
# File lib/ninja_model/adapters/adapter_manager.rb, line 46 def remove_adapter(klass) pool = @adapter_pools[klass.name] return nil unless pool @adapter_pools.delete_if { |key, value| value == pool } pool.shutdown! pool.spec.config end
retrieve_adapter(klass)
click to toggle source
# File lib/ninja_model/adapters/adapter_manager.rb, line 41 def retrieve_adapter(klass) pool = retrieve_adapter_pool(klass) (pool && pool.instance) or raise StandardError, "Pool is empty or instance is null" end
retrieve_adapter_pool(klass)
click to toggle source
# File lib/ninja_model/adapters/adapter_manager.rb, line 54 def retrieve_adapter_pool(klass) pool = @adapter_pools[klass.name] return pool if pool return nil if NinjaModel::Base == klass retrieve_adapter_pool klass.superclass end