Module: Adapter
- Included in:
- Adapter
- Defined in:
- lib/adapter.rb,
lib/adapter/memory.rb,
lib/adapter/asserts.rb,
lib/adapter/version.rb,
lib/adapter/defaults.rb,
lib/adapter/exceptions.rb
Defined Under Namespace
Modules: Asserts, Defaults, Memory Classes: Error, IncompleteAPI, LockTimeout, Undefined
Constant Summary collapse
- VERSION =
'0.7.1'
Constants included from Asserts
Instance Method Summary collapse
- #[](name) ⇒ Object
-
#adapters ⇒ Object
Memoizes adapter instances based on their definitions.
- #define(name, mod = nil, &block) ⇒ Object
-
#definitions ⇒ Object
Stores the definitions for each adapter by name.
Methods included from Asserts
assert_methods_defined, assert_valid_adapter, assert_valid_module
Instance Method Details
#[](name) ⇒ Object
29 30 31 32 |
# File 'lib/adapter.rb', line 29 def [](name) assert_valid_adapter(name) adapters[name.to_sym] ||= get_adapter_instance(name) end |
#adapters ⇒ Object
Memoizes adapter instances based on their definitions
25 26 27 |
# File 'lib/adapter.rb', line 25 def adapters @adapters ||= {} end |
#define(name, mod = nil, &block) ⇒ Object
14 15 16 17 18 19 20 21 22 |
# File 'lib/adapter.rb', line 14 def define(name, mod=nil, &block) definition_module = Module.new definition_module.send(:include, Defaults) definition_module.send(:include, mod) unless mod.nil? definition_module.send(:include, Module.new(&block)) if block_given? assert_valid_module(definition_module) adapters.delete(name.to_sym) definitions[name.to_sym] = definition_module end |
#definitions ⇒ Object
Stores the definitions for each adapter by name
10 11 12 |
# File 'lib/adapter.rb', line 10 def definitions @definitions ||= {} end |