Module: Vanity::Adapters
- Defined in:
- lib/vanity/adapters.rb,
lib/vanity/adapters/mock_adapter.rb,
lib/vanity/adapters/redis_adapter.rb,
lib/vanity/adapters/mongodb_adapter.rb,
lib/vanity/adapters/abstract_adapter.rb,
lib/vanity/adapters/active_record_adapter.rb
Defined Under Namespace
Classes: AbstractAdapter, ActiveRecordAdapter, MockAdapter, MongodbAdapter, RedisAdapter
Class Method Summary collapse
-
.active_record_connection(spec) ⇒ Object
Creates new ActiveRecord connection and returns ActiveRecordAdapter.
-
.establish_connection(spec) ⇒ Object
Creates new connection to underlying datastore and returns suitable adapter (adapter object extends AbstractAdapter and wraps the connection).
-
.mock_connection(spec) ⇒ Object
Creates and returns new MockAdapter.
-
.mongo_connection(spec) ⇒ Object
(also: mongodb_connection)
Creates new connection to MongoDB and returns MongoAdapter.
-
.redis_connection(spec) ⇒ Object
Creates new connection to Redis and returns RedisAdapter.
- .valid_redis_namespace_version? ⇒ Boolean
- .valid_redis_version? ⇒ Boolean
Class Method Details
.active_record_connection(spec) ⇒ Object
Creates new ActiveRecord connection and returns ActiveRecordAdapter.
5 6 7 8 |
# File 'lib/vanity/adapters/active_record_adapter.rb', line 5 def active_record_connection(spec) require "active_record" ActiveRecordAdapter.new(spec) end |
.establish_connection(spec) ⇒ Object
Creates new connection to underlying datastore and returns suitable adapter (adapter object extends AbstractAdapter and wraps the connection).
9 10 11 12 13 14 15 16 17 |
# File 'lib/vanity/adapters.rb', line 9 def establish_connection(spec) begin require "vanity/adapters/#{spec[:adapter]}_adapter" rescue LoadError raise "Could not find #{spec[:adapter]} in your load path" end adapter_method = "#{spec[:adapter]}_connection" send(adapter_method, spec) end |
.mock_connection(spec) ⇒ Object
Creates and returns new MockAdapter.
7 8 9 |
# File 'lib/vanity/adapters/mock_adapter.rb', line 7 def mock_connection(spec) MockAdapter.new(spec) end |
.mongo_connection(spec) ⇒ Object Also known as: mongodb_connection
Creates new connection to MongoDB and returns MongoAdapter.
7 8 9 10 |
# File 'lib/vanity/adapters/mongodb_adapter.rb', line 7 def mongo_connection(spec) require "mongo" MongodbAdapter.new(spec) end |
.redis_connection(spec) ⇒ Object
Creates new connection to Redis and returns RedisAdapter.
7 8 9 10 11 12 13 14 15 |
# File 'lib/vanity/adapters/redis_adapter.rb', line 7 def redis_connection(spec) require "redis" raise "redis >= 2.1 is required" unless valid_redis_version? require "redis/namespace" raise "redis-namespace >= 1.1.0 is required" unless valid_redis_namespace_version? RedisAdapter.new(spec) end |
.valid_redis_namespace_version? ⇒ Boolean
21 22 23 |
# File 'lib/vanity/adapters/redis_adapter.rb', line 21 def valid_redis_namespace_version? Gem.loaded_specs['redis-namespace'].version >= Gem::Version.create('1.1.0') end |
.valid_redis_version? ⇒ Boolean
17 18 19 |
# File 'lib/vanity/adapters/redis_adapter.rb', line 17 def valid_redis_version? Gem.loaded_specs['redis'].version >= Gem::Version.create('2.1') end |