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 18 19 20 |
# File 'lib/vanity/adapters.rb', line 9 def establish_connection(spec) return unless Autoconnect.should_connect? || (Autoconnect.schema_relevant? && spec[:adapter].to_s == 'active_record') 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 |
# File 'lib/vanity/adapters/redis_adapter.rb', line 7 def redis_connection(spec) require "redis" fail "redis >= 2.1 is required" unless valid_redis_version? require "redis/namespace" fail "redis-namespace >= 1.1.0 is required" unless valid_redis_namespace_version? RedisAdapter.new(spec) end |
.valid_redis_namespace_version? ⇒ Boolean
20 21 22 |
# File 'lib/vanity/adapters/redis_adapter.rb', line 20 def valid_redis_namespace_version? Gem.loaded_specs['redis'].version >= Gem::Version.create('1.1.0') end |
.valid_redis_version? ⇒ Boolean
16 17 18 |
# File 'lib/vanity/adapters/redis_adapter.rb', line 16 def valid_redis_version? Gem.loaded_specs['redis'].version >= Gem::Version.create('2.1') end |