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 +7 -0
- data/.coveralls.yml +1 -0
- data/.gitignore +3 -0
- data/.travis.yml +1 -0
- data/CHANGELOG.md +4 -0
- data/Gemfile +2 -24
- data/README.rdoc +2 -2
- data/activerecord-turntable.gemspec +2 -2
- data/gemfiles/rails3_0.gemfile +3 -18
- data/gemfiles/rails3_1.gemfile +2 -18
- data/gemfiles/rails3_2.gemfile +2 -18
- data/lib/active_record/turntable/active_record_ext/persistence.rb +9 -3
- data/lib/active_record/turntable/connection_proxy.rb +27 -2
- data/lib/active_record/turntable/rack.rb +1 -0
- data/lib/active_record/turntable/rack/query_cache.rb +43 -0
- data/lib/active_record/turntable/railtie.rb +5 -0
- data/lib/active_record/turntable/version.rb +1 -1
- data/spec/active_record/turntable/active_record_ext/persistence_spec.rb +1 -1
- data/spec/spec_helper.rb +3 -0
- metadata +92 -108
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
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
data/Gemfile
CHANGED
|
@@ -1,25 +1,3 @@
|
|
|
1
|
-
source
|
|
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
|
-
|
|
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
|
|
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.
|
|
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
|
-
|
data/gemfiles/rails3_0.gemfile
CHANGED
|
@@ -1,22 +1,7 @@
|
|
|
1
|
-
source
|
|
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
|
|
9
|
-
gem "bsearch", "~>1.5"
|
|
10
|
-
gem "httpclient"
|
|
5
|
+
gem 'mysql2', "< 0.3"
|
|
11
6
|
|
|
12
|
-
|
|
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 => '../'
|
data/gemfiles/rails3_1.gemfile
CHANGED
|
@@ -1,22 +1,6 @@
|
|
|
1
|
-
source
|
|
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
|
-
|
|
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 => '../'
|
data/gemfiles/rails3_2.gemfile
CHANGED
|
@@ -1,22 +1,6 @@
|
|
|
1
|
-
source
|
|
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
|
-
|
|
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
|
-
|
|
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)
|
|
@@ -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
|
|
@@ -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
|
-
|
|
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-
|
|
11
|
+
date: 2013-05-17 00:00:00.000000000 Z
|
|
13
12
|
dependencies:
|
|
14
13
|
- !ruby/object:Gem::Dependency
|
|
15
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
84
|
+
name: rake
|
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
|
96
86
|
requirements:
|
|
97
87
|
- - ~>
|
|
98
88
|
- !ruby/object:Gem::Version
|
|
99
|
-
version: 0.
|
|
100
|
-
none: false
|
|
101
|
-
name: rake
|
|
89
|
+
version: 10.0.3
|
|
102
90
|
type: :development
|
|
103
91
|
prerelease: false
|
|
104
|
-
|
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
105
93
|
requirements:
|
|
106
94
|
- - ~>
|
|
107
95
|
- !ruby/object:Gem::Version
|
|
108
|
-
version: 0.
|
|
109
|
-
none: false
|
|
96
|
+
version: 10.0.3
|
|
110
97
|
- !ruby/object:Gem::Dependency
|
|
111
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
402
|
+
rubygems_version: 2.0.2
|
|
419
403
|
signing_key:
|
|
420
|
-
specification_version:
|
|
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
|