activerecord-turntable 1.1.0 → 1.1.1

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 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