activerecord-turntable 1.1.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 35800939b99f9d4780837007b980045f01cc485a
4
+ data.tar.gz: 96ed53a4f856feb26c8e898b9009759ff25531a2
5
+ SHA512:
6
+ metadata.gz: 8ef7ecdf0f84fe4a495e0d0e65afcb801a4bf19051d6b30b86309ae3216126fe22e85143dd45ec387218a4977d628af61ed716e8ab1f473948ed57886063ec7a
7
+ data.tar.gz: df7b2a8b6220ac3814d819215441dfe6ec4858aa10a4a3fa2aeee82ad390e8713459f97abdd3d8f9218638923e3f16e74e0dce143957a0391015e7135c4cbfd9
data/.coveralls.yml ADDED
@@ -0,0 +1 @@
1
+ repo_token: cMnRYFmLywEZ2v7qZYW3l9b3iMjK5Mm3h
data/.gitignore CHANGED
@@ -5,6 +5,9 @@ pkg/*
5
5
  .DS_Store
6
6
  doc
7
7
  .yardoc
8
+ coverage
9
+ gemfiles/*.gemfile.lock
10
+ TAGS
8
11
 
9
12
  # For TextMate
10
13
  #*.tmproj
data/.travis.yml CHANGED
@@ -2,6 +2,7 @@ language: ruby
2
2
  rvm:
3
3
  - 1.9.2
4
4
  - 1.9.3
5
+ - 2.0.0
5
6
  gemfile:
6
7
  - gemfiles/rails3_0.gemfile
7
8
  - gemfiles/rails3_1.gemfile
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## activerecord-turntable 1.1.1 ##
2
+
3
+ * Enable query caching
4
+
1
5
  ## activerecord-turntable 1.1.0 ##
2
6
 
3
7
  * AR::Base.clear_active_connections! should be proxied to all shards
data/Gemfile CHANGED
@@ -1,25 +1,3 @@
1
- source :rubygems
2
- # Add dependencies required to use your gem here.
3
- # Example:
4
- # gem "activesupport", ">= 2.3.5"
1
+ source "https://rubygems.org"
5
2
 
6
- gem 'activerecord', ">= 3.1.0"
7
- gem 'activesupport', ">=3.1.0"
8
- gem "sql_tree", "=0.2.0"
9
- gem "bsearch", "~>1.5"
10
- gem "httpclient"
11
-
12
- # Add dependencies to develop your gem here.
13
- # Include everything needed to run rake, tests, features, etc.
14
- group :development, :test do
15
- gem "rake", "~>0.9.2"
16
- gem "rspec"
17
- gem "rr"
18
- gem "mysql2"
19
- gem "fabrication"
20
- gem "faker"
21
- gem "activerecord-import"
22
- gem "pry"
23
- gem "guard-rspec"
24
- gem "growl"
25
- end
3
+ gemspec
data/README.rdoc CHANGED
@@ -1,4 +1,4 @@
1
- = ActiveRecord::Turntable {<img src="https://secure.travis-ci.org/drecom/activerecord-turntable.png" />}[http://travis-ci.org/drecom/activerecord-turntable]
1
+ = ActiveRecord::Turntable {<img src="https://secure.travis-ci.org/drecom/activerecord-turntable.png" />}[http://travis-ci.org/drecom/activerecord-turntable] {<img src="https://gemnasium.com/drecom/activerecord-turntable.png" alt="Dependency Status" />}[https://gemnasium.com/drecom/activerecord-turntable] {<img src="https://coveralls.io/repos/drecom/activerecord-turntable/badge.png?branch=master" alt="Coverage Status" />}[https://coveralls.io/r/drecom/activerecord-turntable]
2
2
 
3
3
  ActiveRecord::Turntable is a database sharding extension for ActiveRecord.
4
4
 
@@ -12,7 +12,7 @@ Currently supports mysql only.
12
12
 
13
13
  Add 'activerecord-turntable' to Gemfile:
14
14
 
15
- gem 'activerecord-turntable', '1.0.1'
15
+ gem 'activerecord-turntable', '~>1.1.0'
16
16
 
17
17
  Run a bundle install:
18
18
 
@@ -31,7 +31,7 @@ Gem::Specification.new do |s|
31
31
  s.add_runtime_dependency(%q<httpclient>, [">= 0"])
32
32
 
33
33
  # development dependencies
34
- s.add_development_dependency(%q<rake>, ["~> 0.9.2"])
34
+ s.add_development_dependency(%q<rake>, ["~> 10.0.3"])
35
35
  s.add_development_dependency(%q<rspec>, [">= 0"])
36
36
  s.add_development_dependency(%q<rr>, [">= 0"])
37
37
  s.add_development_dependency(%q<mysql2>, [">= 0"])
@@ -40,9 +40,9 @@ Gem::Specification.new do |s|
40
40
  s.add_development_dependency(%q<activerecord-import>, [">= 0"])
41
41
  s.add_development_dependency(%q<pry>, [">= 0"])
42
42
  s.add_development_dependency(%q<guard-rspec>, [">= 0"])
43
+ s.add_development_dependency(%q<coveralls>, [">= 0"])
43
44
 
44
45
  if RUBY_PLATFORM =~ /darwin/
45
46
  s.add_development_dependency(%q<growl>, [">= 0"])
46
47
  end
47
48
  end
48
-
@@ -1,22 +1,7 @@
1
- source :rubygems
2
- # Add dependencies required to use your gem here.
3
- # Example:
4
- # gem "activesupport", ">= 2.3.5"
1
+ source "https://rubygems.org"
5
2
 
6
3
  gem 'activerecord', "~> 3.0.0"
7
4
  gem 'activesupport', "~> 3.0.0"
8
- gem "sql_tree", "=0.2.0"
9
- gem "bsearch", "~>1.5"
10
- gem "httpclient"
5
+ gem 'mysql2', "< 0.3"
11
6
 
12
- # Add dependencies to develop your gem here.
13
- # Include everything needed to run rake, tests, features, etc.
14
- group :development, :test do
15
- gem "rake", "~>0.9.2"
16
- gem "rspec"
17
- gem "rr"
18
- gem "mysql2", "< 0.3"
19
- gem "fabrication"
20
- gem "faker"
21
- gem "activerecord-import"
22
- end
7
+ gemspec :path => '../'
@@ -1,22 +1,6 @@
1
- source :rubygems
2
- # Add dependencies required to use your gem here.
3
- # Example:
4
- # gem "activesupport", ">= 2.3.5"
1
+ source "https://rubygems.org"
5
2
 
6
3
  gem 'activerecord', "~> 3.1.0"
7
4
  gem 'activesupport', "~> 3.1.0"
8
- gem "sql_tree", "=0.2.0"
9
- gem "bsearch", "~>1.5"
10
- gem "httpclient"
11
5
 
12
- # Add dependencies to develop your gem here.
13
- # Include everything needed to run rake, tests, features, etc.
14
- group :development, :test do
15
- gem "rake", "~>0.9.2"
16
- gem "rspec"
17
- gem "rr"
18
- gem "mysql2"
19
- gem "fabrication"
20
- gem "faker"
21
- gem "activerecord-import"
22
- end
6
+ gemspec :path => '../'
@@ -1,22 +1,6 @@
1
- source :rubygems
2
- # Add dependencies required to use your gem here.
3
- # Example:
4
- # gem "activesupport", ">= 2.3.5"
1
+ source "https://rubygems.org"
5
2
 
6
3
  gem 'activerecord', "~> 3.2.0"
7
4
  gem 'activesupport', "~> 3.2.0"
8
- gem "sql_tree", "=0.2.0"
9
- gem "bsearch", "~>1.5"
10
- gem "httpclient"
11
5
 
12
- # Add dependencies to develop your gem here.
13
- # Include everything needed to run rake, tests, features, etc.
14
- group :development, :test do
15
- gem "rake", "~>0.9.2"
16
- gem "rspec"
17
- gem "rr"
18
- gem "mysql2"
19
- gem "fabrication"
20
- gem "faker"
21
- gem "activerecord-import"
22
- end
6
+ gemspec :path => '../'
@@ -5,7 +5,7 @@ module ActiveRecord::Turntable::ActiveRecordExt
5
5
  clear_aggregation_cache
6
6
  clear_association_cache
7
7
 
8
- ::ActiveRecord::IdentityMap.without do
8
+ block = lambda {
9
9
  fresh_object = self.class.unscoped {
10
10
  finder_scope = if turntable_enabled? and self.class.primary_key != self.class.turntable_shard_key.to_s
11
11
  self.class.where(self.class.turntable_shard_key => self.send(turntable_shard_key))
@@ -15,6 +15,12 @@ module ActiveRecord::Turntable::ActiveRecordExt
15
15
  finder_scope.find(self.id, options)
16
16
  }
17
17
  @attributes.update(fresh_object.instance_variable_get('@attributes'))
18
+ }
19
+
20
+ if defined?(::ActiveRecord::IdentityMap)
21
+ ::ActiveRecord::IdentityMap.without(&block)
22
+ else
23
+ block.call
18
24
  end
19
25
 
20
26
  @attributes_cache = {}
@@ -60,7 +66,7 @@ module ActiveRecord::Turntable::ActiveRecordExt
60
66
  destroy_associations
61
67
 
62
68
  if persisted?
63
- ActiveRecord::IdentityMap.remove(self) if ActiveRecord::IdentityMap.enabled?
69
+ ActiveRecord::IdentityMap.remove(self) if defined?(ActiveRecord::IdentityMap) and ActiveRecord::IdentityMap.enabled?
64
70
  pk = klass.primary_key
65
71
  column = klass.columns_hash[pk]
66
72
  substitute = connection.substitute_at(column, 0)
@@ -82,7 +88,7 @@ module ActiveRecord::Turntable::ActiveRecordExt
82
88
  destroy_associations
83
89
 
84
90
  if persisted?
85
- ActiveRecord::IdentityMap.remove(self) if ActiveRecord::IdentityMap.enabled?
91
+ ActiveRecord::IdentityMap.remove(self) if defined?(ActiveRecord::IdentityMap) and ActiveRecord::IdentityMap.enabled?
86
92
  pk = klass.primary_key
87
93
  column = klass.columns_hash[pk]
88
94
  substitute = connection.substitute_at(column, 0)
@@ -3,6 +3,9 @@ module ActiveRecord::Turntable
3
3
  class ConnectionProxy
4
4
  include Mixable
5
5
 
6
+ # for expiring query cache
7
+ CLEAR_CACHE_METHODS = [:update, :insert, :delete, :exec_insert, :exec_update, :exec_delete, :insert_many]
8
+
6
9
  attr_writer :spec
7
10
 
8
11
  def initialize(cluster, options = {})
@@ -20,8 +23,6 @@ module ActiveRecord::Turntable
20
23
  :remove_index, :initialize_schema_information,
21
24
  :dump_schema_information, :execute_ignore_duplicate, :to => :master_connection
22
25
 
23
- # delegate :insert_many, :to => :master # ar-extensions bulk insert support
24
-
25
26
  def transaction(options = {}, &block)
26
27
  connection.transaction(options, &block)
27
28
  end
@@ -53,7 +54,31 @@ module ActiveRecord::Turntable
53
54
  end
54
55
  end
55
56
 
57
+ def cache
58
+ enable_query_cache!
59
+ yield
60
+ ensure
61
+ clear_query_cache
62
+ end
63
+
64
+ def enable_query_cache!
65
+ @model_class.turntable_connections.each do |k,v|
66
+ v.connection.enable_query_cache!
67
+ end
68
+ end
69
+
70
+ def clear_query_cache_if_needed(method)
71
+ clear_query_cache if CLEAR_CACHE_METHODS.include?(method)
72
+ end
73
+
74
+ def clear_query_cache
75
+ @model_class.turntable_connections.each do |k,v|
76
+ v.connection.clear_query_cache
77
+ end
78
+ end
79
+
56
80
  def method_missing(method, *args, &block)
81
+ clear_query_cache_if_needed(method)
57
82
  if shard_fixed?
58
83
  connection.send(method, *args, &block)
59
84
  elsif mixable?(method, *args)
@@ -1,5 +1,6 @@
1
1
  module ActiveRecord::Turntable
2
2
  module Rack
3
3
  autoload :ConnectionManagement, 'active_record/turntable/rack/connection_management'
4
+ autoload :QueryCache, 'active_record/turntable/rack/query_cache'
4
5
  end
5
6
  end
@@ -0,0 +1,43 @@
1
+ require 'active_record/query_cache'
2
+
3
+ module ActiveRecord
4
+ module Turntable
5
+ module Rack
6
+ class QueryCache < ActiveRecord::QueryCache
7
+ class BodyProxy < ActiveRecord::QueryCache::BodyProxy
8
+ def close
9
+ @target.close if @target.respond_to?(:close)
10
+ ensure
11
+ klasses = [ActiveRecord::Base, *ActiveRecord::Base.turntable_connections.values]
12
+ ActiveRecord::Base.connection_id = @connection_id
13
+ klasses.each do |k|
14
+ k.connection.clear_query_cache
15
+ unless @original_cache_value
16
+ k.connection.disable_query_cache!
17
+ end
18
+ end
19
+ end
20
+ end
21
+
22
+ def call(env)
23
+ old = ActiveRecord::Base.connection.query_cache_enabled
24
+ klasses = [ActiveRecord::Base, *ActiveRecord::Base.turntable_connections.values]
25
+ klasses.each do |k|
26
+ k.connection.enable_query_cache!
27
+ end
28
+
29
+ status, headers, body = @app.call(env)
30
+ [status, headers, BodyProxy.new(old, body, ActiveRecord::Base.connection_id)]
31
+ rescue Exception => e
32
+ klasses.each do |k|
33
+ k.connection.clear_query_cache
34
+ unless old
35
+ k.connection.disable_query_cache!
36
+ end
37
+ end
38
+ raise e
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -10,5 +10,10 @@ module ActiveRecord::Turntable
10
10
  ActiveRecord::Base.send(:include, ActiveRecord::Turntable)
11
11
  end
12
12
  end
13
+
14
+ # Swap QueryCache Middleware
15
+ initializer "turntable.swap_query_cache_middleware" do |app|
16
+ app.middleware.swap ActiveRecord::QueryCache, ActiveRecord::Turntable::Rack::QueryCache
17
+ end
13
18
  end
14
19
  end
@@ -1,5 +1,5 @@
1
1
  module ActiveRecord
2
2
  module Turntable
3
- VERSION = "1.1.0"
3
+ VERSION = "1.1.1"
4
4
  end
5
5
  end
@@ -129,7 +129,7 @@ describe ActiveRecord::Turntable::ActiveRecordExt::Persistence do
129
129
  }.to_not raise_error
130
130
  puts strio.string
131
131
 
132
- strio.string.split("\n").select {|stmt| stmt =~ /SELECT/}.should have(1).items
132
+ strio.string.split("\n").select {|stmt| stmt =~ /SELECT/ and stmt !~ /Turntable/ }.should have(1).items
133
133
  end
134
134
  end
135
135
 
data/spec/spec_helper.rb CHANGED
@@ -6,6 +6,9 @@ require 'bundler/setup'
6
6
  require 'activerecord-turntable'
7
7
  require 'turntable_helper'
8
8
 
9
+ require 'coveralls'
10
+ Coveralls.wear!
11
+
9
12
  MIGRATIONS_ROOT = File.expand_path(File.join(File.dirname(__FILE__), 'migrations'))
10
13
 
11
14
  # Requires supporting files with custom matchers and macros, etc,
metadata CHANGED
@@ -1,256 +1,239 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-turntable
3
3
  version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 1.1.0
4
+ version: 1.1.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - gussan
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-01-21 00:00:00.000000000 Z
11
+ date: 2013-05-17 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
- version_requirements: !ruby/object:Gem::Requirement
14
+ name: activerecord
15
+ requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ! '>='
17
+ - - '>='
18
18
  - !ruby/object:Gem::Version
19
19
  version: 3.0.0
20
- none: false
21
- name: activerecord
22
20
  type: :runtime
23
21
  prerelease: false
24
- requirement: !ruby/object:Gem::Requirement
22
+ version_requirements: !ruby/object:Gem::Requirement
25
23
  requirements:
26
- - - ! '>='
24
+ - - '>='
27
25
  - !ruby/object:Gem::Version
28
26
  version: 3.0.0
29
- none: false
30
27
  - !ruby/object:Gem::Dependency
31
- version_requirements: !ruby/object:Gem::Requirement
28
+ name: activesupport
29
+ requirement: !ruby/object:Gem::Requirement
32
30
  requirements:
33
- - - ! '>='
31
+ - - '>='
34
32
  - !ruby/object:Gem::Version
35
33
  version: 3.0.0
36
- none: false
37
- name: activesupport
38
34
  type: :runtime
39
35
  prerelease: false
40
- requirement: !ruby/object:Gem::Requirement
36
+ version_requirements: !ruby/object:Gem::Requirement
41
37
  requirements:
42
- - - ! '>='
38
+ - - '>='
43
39
  - !ruby/object:Gem::Version
44
40
  version: 3.0.0
45
- none: false
46
41
  - !ruby/object:Gem::Dependency
47
- version_requirements: !ruby/object:Gem::Requirement
42
+ name: sql_tree
43
+ requirement: !ruby/object:Gem::Requirement
48
44
  requirements:
49
45
  - - '='
50
46
  - !ruby/object:Gem::Version
51
47
  version: 0.2.0
52
- none: false
53
- name: sql_tree
54
48
  type: :runtime
55
49
  prerelease: false
56
- requirement: !ruby/object:Gem::Requirement
50
+ version_requirements: !ruby/object:Gem::Requirement
57
51
  requirements:
58
52
  - - '='
59
53
  - !ruby/object:Gem::Version
60
54
  version: 0.2.0
61
- none: false
62
55
  - !ruby/object:Gem::Dependency
63
- version_requirements: !ruby/object:Gem::Requirement
56
+ name: bsearch
57
+ requirement: !ruby/object:Gem::Requirement
64
58
  requirements:
65
59
  - - ~>
66
60
  - !ruby/object:Gem::Version
67
61
  version: '1.5'
68
- none: false
69
- name: bsearch
70
62
  type: :runtime
71
63
  prerelease: false
72
- requirement: !ruby/object:Gem::Requirement
64
+ version_requirements: !ruby/object:Gem::Requirement
73
65
  requirements:
74
66
  - - ~>
75
67
  - !ruby/object:Gem::Version
76
68
  version: '1.5'
77
- none: false
78
69
  - !ruby/object:Gem::Dependency
79
- version_requirements: !ruby/object:Gem::Requirement
70
+ name: httpclient
71
+ requirement: !ruby/object:Gem::Requirement
80
72
  requirements:
81
- - - ! '>='
73
+ - - '>='
82
74
  - !ruby/object:Gem::Version
83
75
  version: '0'
84
- none: false
85
- name: httpclient
86
76
  type: :runtime
87
77
  prerelease: false
88
- requirement: !ruby/object:Gem::Requirement
78
+ version_requirements: !ruby/object:Gem::Requirement
89
79
  requirements:
90
- - - ! '>='
80
+ - - '>='
91
81
  - !ruby/object:Gem::Version
92
82
  version: '0'
93
- none: false
94
83
  - !ruby/object:Gem::Dependency
95
- version_requirements: !ruby/object:Gem::Requirement
84
+ name: rake
85
+ requirement: !ruby/object:Gem::Requirement
96
86
  requirements:
97
87
  - - ~>
98
88
  - !ruby/object:Gem::Version
99
- version: 0.9.2
100
- none: false
101
- name: rake
89
+ version: 10.0.3
102
90
  type: :development
103
91
  prerelease: false
104
- requirement: !ruby/object:Gem::Requirement
92
+ version_requirements: !ruby/object:Gem::Requirement
105
93
  requirements:
106
94
  - - ~>
107
95
  - !ruby/object:Gem::Version
108
- version: 0.9.2
109
- none: false
96
+ version: 10.0.3
110
97
  - !ruby/object:Gem::Dependency
111
- version_requirements: !ruby/object:Gem::Requirement
98
+ name: rspec
99
+ requirement: !ruby/object:Gem::Requirement
112
100
  requirements:
113
- - - ! '>='
101
+ - - '>='
114
102
  - !ruby/object:Gem::Version
115
103
  version: '0'
116
- none: false
117
- name: rspec
118
104
  type: :development
119
105
  prerelease: false
120
- requirement: !ruby/object:Gem::Requirement
106
+ version_requirements: !ruby/object:Gem::Requirement
121
107
  requirements:
122
- - - ! '>='
108
+ - - '>='
123
109
  - !ruby/object:Gem::Version
124
110
  version: '0'
125
- none: false
126
111
  - !ruby/object:Gem::Dependency
127
- version_requirements: !ruby/object:Gem::Requirement
112
+ name: rr
113
+ requirement: !ruby/object:Gem::Requirement
128
114
  requirements:
129
- - - ! '>='
115
+ - - '>='
130
116
  - !ruby/object:Gem::Version
131
117
  version: '0'
132
- none: false
133
- name: rr
134
118
  type: :development
135
119
  prerelease: false
136
- requirement: !ruby/object:Gem::Requirement
120
+ version_requirements: !ruby/object:Gem::Requirement
137
121
  requirements:
138
- - - ! '>='
122
+ - - '>='
139
123
  - !ruby/object:Gem::Version
140
124
  version: '0'
141
- none: false
142
125
  - !ruby/object:Gem::Dependency
143
- version_requirements: !ruby/object:Gem::Requirement
126
+ name: mysql2
127
+ requirement: !ruby/object:Gem::Requirement
144
128
  requirements:
145
- - - ! '>='
129
+ - - '>='
146
130
  - !ruby/object:Gem::Version
147
131
  version: '0'
148
- none: false
149
- name: mysql2
150
132
  type: :development
151
133
  prerelease: false
152
- requirement: !ruby/object:Gem::Requirement
134
+ version_requirements: !ruby/object:Gem::Requirement
153
135
  requirements:
154
- - - ! '>='
136
+ - - '>='
155
137
  - !ruby/object:Gem::Version
156
138
  version: '0'
157
- none: false
158
139
  - !ruby/object:Gem::Dependency
159
- version_requirements: !ruby/object:Gem::Requirement
140
+ name: fabrication
141
+ requirement: !ruby/object:Gem::Requirement
160
142
  requirements:
161
- - - ! '>='
143
+ - - '>='
162
144
  - !ruby/object:Gem::Version
163
145
  version: '0'
164
- none: false
165
- name: fabrication
166
146
  type: :development
167
147
  prerelease: false
168
- requirement: !ruby/object:Gem::Requirement
148
+ version_requirements: !ruby/object:Gem::Requirement
169
149
  requirements:
170
- - - ! '>='
150
+ - - '>='
171
151
  - !ruby/object:Gem::Version
172
152
  version: '0'
173
- none: false
174
153
  - !ruby/object:Gem::Dependency
175
- version_requirements: !ruby/object:Gem::Requirement
154
+ name: faker
155
+ requirement: !ruby/object:Gem::Requirement
176
156
  requirements:
177
- - - ! '>='
157
+ - - '>='
178
158
  - !ruby/object:Gem::Version
179
159
  version: '0'
180
- none: false
181
- name: faker
182
160
  type: :development
183
161
  prerelease: false
184
- requirement: !ruby/object:Gem::Requirement
162
+ version_requirements: !ruby/object:Gem::Requirement
185
163
  requirements:
186
- - - ! '>='
164
+ - - '>='
187
165
  - !ruby/object:Gem::Version
188
166
  version: '0'
189
- none: false
190
167
  - !ruby/object:Gem::Dependency
191
- version_requirements: !ruby/object:Gem::Requirement
168
+ name: activerecord-import
169
+ requirement: !ruby/object:Gem::Requirement
192
170
  requirements:
193
- - - ! '>='
171
+ - - '>='
194
172
  - !ruby/object:Gem::Version
195
173
  version: '0'
196
- none: false
197
- name: activerecord-import
198
174
  type: :development
199
175
  prerelease: false
200
- requirement: !ruby/object:Gem::Requirement
176
+ version_requirements: !ruby/object:Gem::Requirement
201
177
  requirements:
202
- - - ! '>='
178
+ - - '>='
203
179
  - !ruby/object:Gem::Version
204
180
  version: '0'
205
- none: false
206
181
  - !ruby/object:Gem::Dependency
207
- version_requirements: !ruby/object:Gem::Requirement
182
+ name: pry
183
+ requirement: !ruby/object:Gem::Requirement
208
184
  requirements:
209
- - - ! '>='
185
+ - - '>='
210
186
  - !ruby/object:Gem::Version
211
187
  version: '0'
212
- none: false
213
- name: pry
214
188
  type: :development
215
189
  prerelease: false
216
- requirement: !ruby/object:Gem::Requirement
190
+ version_requirements: !ruby/object:Gem::Requirement
217
191
  requirements:
218
- - - ! '>='
192
+ - - '>='
219
193
  - !ruby/object:Gem::Version
220
194
  version: '0'
221
- none: false
222
195
  - !ruby/object:Gem::Dependency
223
- version_requirements: !ruby/object:Gem::Requirement
196
+ name: guard-rspec
197
+ requirement: !ruby/object:Gem::Requirement
224
198
  requirements:
225
- - - ! '>='
199
+ - - '>='
226
200
  - !ruby/object:Gem::Version
227
201
  version: '0'
228
- none: false
229
- name: guard-rspec
230
202
  type: :development
231
203
  prerelease: false
232
- requirement: !ruby/object:Gem::Requirement
204
+ version_requirements: !ruby/object:Gem::Requirement
233
205
  requirements:
234
- - - ! '>='
206
+ - - '>='
235
207
  - !ruby/object:Gem::Version
236
208
  version: '0'
237
- none: false
238
209
  - !ruby/object:Gem::Dependency
210
+ name: coveralls
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - '>='
214
+ - !ruby/object:Gem::Version
215
+ version: '0'
216
+ type: :development
217
+ prerelease: false
239
218
  version_requirements: !ruby/object:Gem::Requirement
240
219
  requirements:
241
- - - ! '>='
220
+ - - '>='
242
221
  - !ruby/object:Gem::Version
243
222
  version: '0'
244
- none: false
223
+ - !ruby/object:Gem::Dependency
245
224
  name: growl
225
+ requirement: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - '>='
228
+ - !ruby/object:Gem::Version
229
+ version: '0'
246
230
  type: :development
247
231
  prerelease: false
248
- requirement: !ruby/object:Gem::Requirement
232
+ version_requirements: !ruby/object:Gem::Requirement
249
233
  requirements:
250
- - - ! '>='
234
+ - - '>='
251
235
  - !ruby/object:Gem::Version
252
236
  version: '0'
253
- none: false
254
237
  description: AcviveRecord Sharding plugin
255
238
  email:
256
239
  executables: []
@@ -260,6 +243,7 @@ extra_rdoc_files:
260
243
  - README.rdoc
261
244
  - CHANGELOG.md
262
245
  files:
246
+ - .coveralls.yml
263
247
  - .document
264
248
  - .gitignore
265
249
  - .rspec
@@ -311,6 +295,7 @@ files:
311
295
  - lib/active_record/turntable/pool_proxy.rb
312
296
  - lib/active_record/turntable/rack.rb
313
297
  - lib/active_record/turntable/rack/connection_management.rb
298
+ - lib/active_record/turntable/rack/query_cache.rb
314
299
  - lib/active_record/turntable/railtie.rb
315
300
  - lib/active_record/turntable/railties/databases.rake
316
301
  - lib/active_record/turntable/seq_shard.rb
@@ -397,27 +382,26 @@ files:
397
382
  homepage: https://github.com/drecom/activerecord-turntable
398
383
  licenses:
399
384
  - MIT
385
+ metadata: {}
400
386
  post_install_message:
401
387
  rdoc_options: []
402
388
  require_paths:
403
389
  - lib
404
390
  required_ruby_version: !ruby/object:Gem::Requirement
405
391
  requirements:
406
- - - ! '>='
392
+ - - '>='
407
393
  - !ruby/object:Gem::Version
408
394
  version: '0'
409
- none: false
410
395
  required_rubygems_version: !ruby/object:Gem::Requirement
411
396
  requirements:
412
- - - ! '>='
397
+ - - '>='
413
398
  - !ruby/object:Gem::Version
414
399
  version: '0'
415
- none: false
416
400
  requirements: []
417
401
  rubyforge_project: activerecord-turntable
418
- rubygems_version: 1.8.23
402
+ rubygems_version: 2.0.2
419
403
  signing_key:
420
- specification_version: 3
404
+ specification_version: 4
421
405
  summary: ActiveRecord Sharding plugin
422
406
  test_files:
423
407
  - spec/active_record/turntable/active_record_ext/clever_load_spec.rb