Add the ability to pass directly the connection in Redis
Example usages: * DatabaseCleaner[:redis].db = "redis://localhost:6379/0" * DatabaseCleaner[:redis].db = Redis.new
This commit is contained in:
parent
be18701c45
commit
e3aa33a0ff
|
@ -22,10 +22,16 @@ module DatabaseCleaner
|
|||
private
|
||||
|
||||
def connection
|
||||
@connection ||= url == :default ? ::Redis.new : ::Redis.new(:url => url)
|
||||
@connection ||= begin
|
||||
if url == :default
|
||||
::Redis.new
|
||||
elsif db.class.is_a?(::Redis) # pass directly the connection
|
||||
db
|
||||
else
|
||||
::Redis.new(:url => url)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
require 'spec_helper'
|
||||
require 'redis'
|
||||
require 'database_cleaner/redis/base'
|
||||
require 'database_cleaner/shared_strategy'
|
||||
|
||||
|
@ -18,10 +19,20 @@ module DatabaseCleaner
|
|||
it { should respond_to(:db) }
|
||||
it { should respond_to(:db=) }
|
||||
|
||||
it "should store my describe db" do
|
||||
url = 'redis://localhost:6379/2'
|
||||
subject.db = 'redis://localhost:6379/2'
|
||||
subject.db.should eq url
|
||||
context "when passing url" do
|
||||
it "should store my describe db" do
|
||||
url = 'redis://localhost:6379/2'
|
||||
subject.db = 'redis://localhost:6379/2'
|
||||
subject.db.should eq url
|
||||
end
|
||||
end
|
||||
|
||||
context "when passing connection" do
|
||||
it "should store my describe db" do
|
||||
connection = ::Redis.new :url => 'redis://localhost:6379/2'
|
||||
subject.db = connection
|
||||
subject.db.should eq connection
|
||||
end
|
||||
end
|
||||
|
||||
it "should default to :default" do
|
||||
|
|
Loading…
Reference in New Issue