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