ar-octopus 0.2.2 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Rakefile +1 -1
- data/ar-octopus.gemspec +2 -2
- data/lib/octopus/proxy.rb +1 -1
- data/spec/octopus/model_spec.rb +8 -0
- data/spec/octopus/replication_specs.rb +8 -0
- metadata +4 -4
data/Rakefile
CHANGED
@@ -37,7 +37,7 @@ begin
|
|
37
37
|
gem.add_development_dependency "jeweler", ">= 1.4"
|
38
38
|
gem.add_development_dependency "actionpack", ">= 2.3"
|
39
39
|
gem.add_dependency('activerecord', '>= 2.3')
|
40
|
-
gem.version = "0.
|
40
|
+
gem.version = "0.3.0"
|
41
41
|
end
|
42
42
|
Jeweler::GemcutterTasks.new
|
43
43
|
rescue LoadError
|
data/ar-octopus.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{ar-octopus}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.3.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Thiago Pradi", "Mike Perham"]
|
12
|
-
s.date = %q{2010-11-
|
12
|
+
s.date = %q{2010-11-08}
|
13
13
|
s.description = %q{This gem allows you to use sharded databases with ActiveRecord. this also provides a interface for replication and for running migrations with multiples shards.}
|
14
14
|
s.email = %q{tchandy@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
data/lib/octopus/proxy.rb
CHANGED
@@ -160,7 +160,7 @@ class Octopus::Proxy
|
|
160
160
|
end
|
161
161
|
|
162
162
|
def should_send_queries_to_replicated_databases?(method)
|
163
|
-
@replicated && method.to_s =~ /select/
|
163
|
+
@replicated && method.to_s =~ /select/ && !@block
|
164
164
|
end
|
165
165
|
|
166
166
|
def send_queries_to_selected_slave(method, *args, &block)
|
data/spec/octopus/model_spec.rb
CHANGED
@@ -5,6 +5,14 @@ describe Octopus::Model do
|
|
5
5
|
it "should return self after calling the #using method" do
|
6
6
|
User.using(:canada).should == Octopus::ScopeProxy.new(:canada, User)
|
7
7
|
end
|
8
|
+
|
9
|
+
it "should allow to send a block to the master shard" do
|
10
|
+
Octopus.using(:master) do
|
11
|
+
User.create!(:name => "Block test")
|
12
|
+
end
|
13
|
+
|
14
|
+
User.using(:master).find_by_name("Block test").should_not be_nil
|
15
|
+
end
|
8
16
|
|
9
17
|
it "should allow selecting the shards on scope" do
|
10
18
|
User.using(:canada).create!(:name => 'oi')
|
@@ -25,6 +25,14 @@ describe "when the database is replicated" do
|
|
25
25
|
Cat.find_by_name("Slave Cat 2").should be_nil
|
26
26
|
end
|
27
27
|
end
|
28
|
+
|
29
|
+
it "should allow #using syntax to send queries to master" do
|
30
|
+
Cat.create!(:name => "Master Cat")
|
31
|
+
|
32
|
+
using_enviroment :production_fully_replicated do
|
33
|
+
Cat.using(:master).find_by_name("Master Cat").should_not be_nil
|
34
|
+
end
|
35
|
+
end
|
28
36
|
|
29
37
|
it "should send the count query to a slave" do
|
30
38
|
pending()
|
metadata
CHANGED
@@ -5,9 +5,9 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 0.
|
8
|
+
- 3
|
9
|
+
- 0
|
10
|
+
version: 0.3.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Thiago Pradi
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2010-11-
|
19
|
+
date: 2010-11-08 00:00:00 -02:00
|
20
20
|
default_executable:
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|