slave_pools 1.0.0.rc3 → 1.0.0.rc4

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9e6a45beb574601032f4618737cb16626fad3b32
4
- data.tar.gz: edf4ff14ab00c4eb85551b9a977c52c362bdef43
3
+ metadata.gz: d874a3eed928f50de0897109c923c87a142b8530
4
+ data.tar.gz: 525dd736b487ef2c1c7d025742363ac2e8bbcdf5
5
5
  SHA512:
6
- metadata.gz: 2daa6e7d816fd82fb85d8f34644be0e9588ec6e34653e6887b3a866f9affb47091f82503963fc067b74e77c84c2085e5c23acc7ee0a641677015b6c8c5fbaa3b
7
- data.tar.gz: 6c3770d21e1d19b4b8bec198730bace7f95a109af22644fda294b552db13d0bbd98e5da38f37d703d8492a65e71bec445cc4161165aeee5078ea3e39eb6f75de
6
+ metadata.gz: 6671beaae7b1d6e997b973c15ae8d795c9a8cf5c11b2f2e2c374cd6881270bea3b1211f61ff94e204f99c92ee8f40fc0edc478f9ee36f5aafdd6a1ca2baabf49
7
+ data.tar.gz: 54ab55daf2d791f86c5f3d707c6bf98c4c6d5d7113b84a7ef75fa4164f6b06e61f267cee8115dfabc78f109c6f9b25d07249bceb0754533dd962c1181680d43b
@@ -12,6 +12,12 @@ module SlavePools
12
12
  :select_rows, :select, :verify!, :raw_connection, :active?, :reconnect!,
13
13
  :disconnect!, :reset_runtime, :log, :log_info
14
14
  ]
15
+ elsif ActiveRecord::VERSION::MAJOR == 4
16
+ [
17
+ :select_all, :select_one, :select_value, :select_values,
18
+ :select_rows, :select, :verify!, :raw_connection, :active?, :reconnect!,
19
+ :disconnect!, :reset_runtime, :log
20
+ ]
15
21
  else
16
22
  warn "Unsupported ActiveRecord version #{ActiveRecord.version}. Please whitelist the safe methods."
17
23
  end
@@ -1,3 +1,3 @@
1
1
  module SlavePools
2
- VERSION = "1.0.0.rc3"
2
+ VERSION = "1.0.0.rc4"
3
3
  end
data/lib/slave_pools.rb CHANGED
@@ -4,12 +4,10 @@ require 'slave_pools/pool'
4
4
  require 'slave_pools/pools'
5
5
  require 'slave_pools/active_record_extensions'
6
6
  require 'slave_pools/hijack'
7
- require 'slave_pools/observer_extensions'
8
7
  require 'slave_pools/query_cache'
9
8
  require 'slave_pools/connection_proxy'
10
9
 
11
10
  require 'slave_pools/engine' if defined? Rails
12
- ActiveRecord::Observer.send :include, SlavePools::ObserverExtensions
13
11
  ActiveRecord::Base.send :include, SlavePools::ActiveRecordExtensions
14
12
 
15
13
  module SlavePools
@@ -1,19 +1,2 @@
1
1
  class TestModel < ActiveRecord::Base
2
- has_many :test_subs
3
- end
4
-
5
- class TestSub < ActiveRecord::Base
6
- belongs_to :test_model
7
- end
8
-
9
- class TestModelObserver < ActiveRecord::Observer
10
-
11
- def after_create(test_model)
12
- ActiveRecord::Base.logger.info "in observer"
13
- TestSub.create(:test_model=>test_model)
14
- TestModel.first
15
- end
16
- end
17
-
18
-
19
-
2
+ end
@@ -1,4 +1,5 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
1
+ require_relative 'spec_helper'
2
+ require_relative 'config/test_model'
2
3
 
3
4
  describe SlavePools do
4
5
 
@@ -165,7 +166,7 @@ describe SlavePools do
165
166
 
166
167
  it 'should reload models from the master' do
167
168
  foo = TestModel.create!
168
- @master.should_receive(:select_all).and_return([{'id' => foo.id}])
169
+ @master.should_receive(:select_all).and_return(ActiveRecord::Result.new(["id"], ["1"]))
169
170
  @default_slave1.should_not_receive(:select_all)
170
171
  @default_slave2.should_not_receive(:select_all)
171
172
  foo.reload
data/spec/pool_spec.rb CHANGED
@@ -1,4 +1,4 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
1
+ require_relative 'spec_helper'
2
2
 
3
3
  describe SlavePools::Pool do
4
4
 
@@ -1,3 +1,4 @@
1
+ require 'rack'
1
2
  require_relative 'spec_helper'
2
3
 
3
4
  describe SlavePools::QueryCache do
@@ -55,6 +56,7 @@ describe SlavePools::QueryCache do
55
56
  @proxy.next_slave!
56
57
  3.times { @proxy.select_all(@sql)}
57
58
  @master.query_cache.keys.size.should == 1
59
+ [200, {}, nil]
58
60
  }
59
61
  mw.call({})
60
62
  end
@@ -75,6 +77,7 @@ describe SlavePools::QueryCache do
75
77
  @proxy.send(meths[i], '')
76
78
  @master.query_cache.keys.size.should == 0
77
79
  end
80
+ [200, {}, nil]
78
81
  }
79
82
  mw.call({})
80
83
  end
@@ -1,4 +1,4 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
1
+ require_relative 'spec_helper'
2
2
 
3
3
  describe SlavePools do
4
4
 
data/spec/spec_helper.rb CHANGED
@@ -16,7 +16,6 @@ ActiveRecord::Base.configurations = YAML::load(File.open(spec_dir + '/config/dat
16
16
  ActiveRecord::Base.establish_connection :test
17
17
  ActiveRecord::Migration.verbose = false
18
18
  ActiveRecord::Migration.create_table(:test_models, :force => true) {}
19
- ActiveRecord::Migration.create_table(:test_subs, :force => true) {|t| t.integer :test_model_id}
20
19
 
21
20
  require 'slave_pools'
22
21
  SlavePools::Engine.initializers.each(&:run)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slave_pools
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.rc3
4
+ version: 1.0.0.rc4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dan Drabik
@@ -9,20 +9,20 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-01-15 00:00:00.000000000 Z
12
+ date: 2014-03-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activerecord
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - ~>
18
+ - - '>='
19
19
  - !ruby/object:Gem::Version
20
20
  version: 3.2.12
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
- - - ~>
25
+ - - '>='
26
26
  - !ruby/object:Gem::Version
27
27
  version: 3.2.12
28
28
  - !ruby/object:Gem::Dependency
@@ -39,6 +39,20 @@ dependencies:
39
39
  - - ~>
40
40
  - !ruby/object:Gem::Version
41
41
  version: 0.3.11
42
+ - !ruby/object:Gem::Dependency
43
+ name: rack
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - '>='
47
+ - !ruby/object:Gem::Version
48
+ version: '0'
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - '>='
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
42
56
  - !ruby/object:Gem::Dependency
43
57
  name: rspec
44
58
  requirement: !ruby/object:Gem::Requirement
@@ -87,22 +101,20 @@ executables: []
87
101
  extensions: []
88
102
  extra_rdoc_files: []
89
103
  files:
90
- - LICENSE
91
- - README.md
92
- - lib/slave_pools.rb
93
104
  - lib/slave_pools/active_record_extensions.rb
94
105
  - lib/slave_pools/config.rb
95
106
  - lib/slave_pools/connection_proxy.rb
96
107
  - lib/slave_pools/engine.rb
97
108
  - lib/slave_pools/hijack.rb
98
- - lib/slave_pools/observer_extensions.rb
99
109
  - lib/slave_pools/pool.rb
100
110
  - lib/slave_pools/pools.rb
101
111
  - lib/slave_pools/query_cache.rb
102
112
  - lib/slave_pools/version.rb
113
+ - lib/slave_pools.rb
114
+ - LICENSE
115
+ - README.md
103
116
  - spec/config/test_model.rb
104
117
  - spec/connection_proxy_spec.rb
105
- - spec/observer_extensions_spec.rb
106
118
  - spec/pool_spec.rb
107
119
  - spec/query_cache_spec.rb
108
120
  - spec/slave_pools_spec.rb
@@ -127,14 +139,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
127
139
  version: '1.2'
128
140
  requirements: []
129
141
  rubyforge_project:
130
- rubygems_version: 2.2.0
142
+ rubygems_version: 2.0.3
131
143
  signing_key:
132
144
  specification_version: 4
133
145
  summary: Connection proxy for ActiveRecord for master / replica setups.
134
146
  test_files:
135
147
  - spec/config/test_model.rb
136
148
  - spec/connection_proxy_spec.rb
137
- - spec/observer_extensions_spec.rb
138
149
  - spec/pool_spec.rb
139
150
  - spec/query_cache_spec.rb
140
151
  - spec/slave_pools_spec.rb
@@ -1,19 +0,0 @@
1
- module SlavePools
2
- module ObserverExtensions
3
- def self.included(base)
4
- base.alias_method_chain :update, :masterdb
5
- end
6
-
7
- # Send observed_method(object) if the method exists.
8
- # currently replicating the update method instead of using the aliased method call to update_without_master
9
- def update_with_masterdb(observed_method, object, &block) #:nodoc:
10
- if object.class.connection.respond_to?(:with_master)
11
- object.class.connection.with_master do
12
- update_without_masterdb(observed_method, object)
13
- end
14
- else
15
- update_without_masterdb(observed_method, object)
16
- end
17
- end
18
- end
19
- end
@@ -1,21 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
- require File.expand_path(File.dirname(__FILE__) + '/config/test_model')
3
-
4
- describe SlavePools do
5
-
6
- before(:each) do
7
- reset_proxy(SlavePools.proxy)
8
- @observer = TestModelObserver.instance
9
-
10
- @test_model = TestModel.create
11
- end
12
-
13
- it "should use observers correctly" do
14
- TestSub.first.test_model_id.should == @test_model.id
15
- end
16
-
17
- it "should not throw a stack too deep error" do
18
- @test_model.should be_valid
19
- end
20
- end
21
-