Module: NinjaModel::Adapters::ClassMethods
- Defined in:
- lib/ninja_model/adapters.rb
Instance Method Summary collapse
- #register_adapter(name, klass) ⇒ Object
- #retrieve_adapter ⇒ Object (also: #adapter)
- #set_adapter(spec = nil) ⇒ Object
- #shutdown_adapter(klass = self) ⇒ Object
Instance Method Details
#register_adapter(name, klass) ⇒ Object
24 25 26 27 28 29 30 |
# File 'lib/ninja_model/adapters.rb', line 24 def register_adapter(name, klass) if klass.ancestors.include?(NinjaModel::Adapters::AbstractAdapter) Adapters::AdapterManager.register_adapter_class(name, klass) else raise InvalidAdapter, "Invalid adapter: #{klass}" end end |
#retrieve_adapter ⇒ Object Also known as: adapter
55 56 57 |
# File 'lib/ninja_model/adapters.rb', line 55 def retrieve_adapter adapter_manager.retrieve_adapter(self) end |
#set_adapter(spec = nil) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/ninja_model/adapters.rb', line 32 def set_adapter(spec = nil) case spec when nil raise AdapterNotSpecified unless defined?(Rails.env) set_adapter(Rails.env) when Symbol, String if config = NinjaModel.configuration.specs[spec.to_s] set_adapter(config) else raise InvalidSpecification, "#{spec} is not configured" end when Adapters::AdapterSpecification self.adapter_manager.create_adapter(name, spec) else spec = spec.symbolize_keys raise AdapterNotSpecified, "configuration does not specify adapter: #{spec}" unless spec.key?(:adapter) adapter_name = spec[:adapter] raise InvalidAdapter, "configuration does not specify adapter" unless Adapters::AdapterManager.registered?(adapter_name) shutdown_adapter set_adapter(Adapters::AdapterSpecification.new(spec, adapter_name)) end end |
#shutdown_adapter(klass = self) ⇒ Object
60 61 62 |
# File 'lib/ninja_model/adapters.rb', line 60 def shutdown_adapter(klass = self) adapter_manager.remove_adapter(klass) end |