activerecord-turntable 1.1.2 → 2.0.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (144) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +5 -0
  3. data/.travis.yml +3 -5
  4. data/CHANGELOG.md +70 -0
  5. data/Guardfile +7 -5
  6. data/README.md +490 -0
  7. data/Rakefile +37 -22
  8. data/activerecord-turntable.gemspec +37 -34
  9. data/gemfiles/rails4_0.gemfile +6 -0
  10. data/gemfiles/rails4_1.gemfile +6 -0
  11. data/lib/active_record/turntable/active_record_ext/abstract_adapter.rb +14 -29
  12. data/lib/active_record/turntable/active_record_ext/activerecord_import_ext.rb +45 -0
  13. data/lib/active_record/turntable/active_record_ext/acts_as_archive_extension.rb +21 -0
  14. data/lib/active_record/turntable/active_record_ext/association.rb +85 -0
  15. data/lib/active_record/turntable/active_record_ext/association_preloader.rb +37 -0
  16. data/lib/active_record/turntable/active_record_ext/clever_load.rb +33 -76
  17. data/lib/active_record/turntable/active_record_ext/connection_handler_extension.rb +31 -0
  18. data/lib/active_record/turntable/active_record_ext/database_tasks.rb +81 -0
  19. data/lib/active_record/turntable/active_record_ext/fixtures.rb +54 -42
  20. data/lib/active_record/turntable/active_record_ext/locking_optimistic.rb +101 -0
  21. data/lib/active_record/turntable/active_record_ext/log_subscriber.rb +28 -46
  22. data/lib/active_record/turntable/active_record_ext/migration_proxy.rb +7 -0
  23. data/lib/active_record/turntable/active_record_ext/persistence.rb +96 -94
  24. data/lib/active_record/turntable/active_record_ext/relation.rb +31 -0
  25. data/lib/active_record/turntable/active_record_ext/schema_dumper.rb +18 -28
  26. data/lib/active_record/turntable/active_record_ext/transactions.rb +9 -3
  27. data/lib/active_record/turntable/active_record_ext.rb +26 -11
  28. data/lib/active_record/turntable/algorithm/base.rb +1 -1
  29. data/lib/active_record/turntable/algorithm/range_bsearch_algorithm.rb +1 -1
  30. data/lib/active_record/turntable/algorithm.rb +7 -3
  31. data/lib/active_record/turntable/base.rb +67 -14
  32. data/lib/active_record/turntable/cluster.rb +46 -2
  33. data/lib/active_record/turntable/config.rb +1 -1
  34. data/lib/active_record/turntable/connection_proxy/mixable.rb +7 -29
  35. data/lib/active_record/turntable/connection_proxy.rb +61 -72
  36. data/lib/active_record/turntable/error.rb +5 -6
  37. data/lib/active_record/turntable/helpers.rb +5 -1
  38. data/lib/active_record/turntable/migration.rb +9 -49
  39. data/lib/active_record/turntable/mixer/fader/calculate_shards_sum_result.rb +13 -2
  40. data/lib/active_record/turntable/mixer/fader/select_shards_merge_result.rb +17 -6
  41. data/lib/active_record/turntable/mixer/fader/specified_shard.rb +3 -1
  42. data/lib/active_record/turntable/mixer/fader.rb +12 -10
  43. data/lib/active_record/turntable/mixer.rb +59 -29
  44. data/lib/active_record/turntable/plugin.rb +6 -0
  45. data/lib/active_record/turntable/pool_proxy.rb +12 -19
  46. data/lib/active_record/turntable/rack/query_cache.rb +20 -23
  47. data/lib/active_record/turntable/rack.rb +4 -2
  48. data/lib/active_record/turntable/railtie.rb +4 -3
  49. data/lib/active_record/turntable/railties/databases.rake +81 -122
  50. data/lib/active_record/turntable/seq_shard.rb +1 -1
  51. data/lib/active_record/turntable/sequencer/api.rb +1 -1
  52. data/lib/active_record/turntable/sequencer/barrage.rb +28 -0
  53. data/lib/active_record/turntable/sequencer.rb +27 -9
  54. data/lib/active_record/turntable/shard.rb +2 -2
  55. data/lib/active_record/turntable/sql_tree_patch.rb +1 -1
  56. data/lib/active_record/turntable/version.rb +1 -1
  57. data/lib/active_record/turntable.rb +26 -16
  58. data/lib/generators/templates/turntable.yml +9 -7
  59. data/spec/active_record/turntable/active_record_ext/association_preloader_spec.rb +78 -0
  60. data/spec/active_record/turntable/active_record_ext/association_spec.rb +72 -0
  61. data/spec/active_record/turntable/active_record_ext/clever_load_spec.rb +25 -46
  62. data/spec/active_record/turntable/active_record_ext/locking_optimistic_spec.rb +28 -0
  63. data/spec/active_record/turntable/active_record_ext/persistence_spec.rb +46 -25
  64. data/spec/active_record/turntable/algorithm/range_algorithm_spec.rb +4 -4
  65. data/spec/active_record/turntable/algorithm/range_bsearch_algorithm_spec.rb +35 -0
  66. data/spec/active_record/turntable/algorithm_spec.rb +28 -12
  67. data/spec/active_record/turntable/base_spec.rb +1 -1
  68. data/spec/active_record/turntable/cluster_spec.rb +27 -5
  69. data/spec/active_record/turntable/config_spec.rb +2 -2
  70. data/spec/active_record/turntable/connection_proxy_spec.rb +112 -45
  71. data/spec/active_record/turntable/finder_spec.rb +24 -11
  72. data/spec/active_record/turntable/mixer_spec.rb +21 -21
  73. data/spec/active_record/turntable/rack/query_cache_spec.rb +19 -0
  74. data/spec/active_record/turntable/sequencer/api_spec.rb +38 -0
  75. data/spec/active_record/turntable/sequencer/barrage_spec.rb +22 -0
  76. data/spec/active_record/turntable/sequencer/mysql_spec.rb +22 -0
  77. data/spec/active_record/turntable/shard_spec.rb +1 -1
  78. data/spec/active_record/turntable/transaction_spec.rb +35 -0
  79. data/spec/active_record/turntable_spec.rb +4 -4
  80. data/spec/config/database.yml +24 -34
  81. data/spec/config/turntable.yml +18 -1
  82. data/spec/fabricators/turntable_fabricator.rb +0 -2
  83. data/spec/models/card.rb +3 -0
  84. data/spec/models/cards_user.rb +10 -0
  85. data/spec/models/cards_users_histories.rb +7 -0
  86. data/spec/models/events_users_history.rb +7 -0
  87. data/spec/models/user.rb +7 -0
  88. data/spec/models/user_status.rb +6 -0
  89. data/spec/spec_helper.rb +10 -4
  90. data/spec/support/matchers/be_saved_to.rb +6 -0
  91. data/spec/support/turntable_helper.rb +29 -0
  92. metadata +124 -74
  93. data/README.rdoc +0 -294
  94. data/gemfiles/rails3_0.gemfile +0 -7
  95. data/gemfiles/rails3_1.gemfile +0 -6
  96. data/gemfiles/rails3_2.gemfile +0 -6
  97. data/lib/active_record/turntable/compatible.rb +0 -19
  98. data/sample_app/.gitignore +0 -16
  99. data/sample_app/Gemfile +0 -41
  100. data/sample_app/README.rdoc +0 -261
  101. data/sample_app/Rakefile +0 -7
  102. data/sample_app/app/assets/images/rails.png +0 -0
  103. data/sample_app/app/assets/javascripts/application.js +0 -15
  104. data/sample_app/app/assets/stylesheets/application.css +0 -13
  105. data/sample_app/app/controllers/application_controller.rb +0 -3
  106. data/sample_app/app/helpers/application_helper.rb +0 -2
  107. data/sample_app/app/mailers/.gitkeep +0 -0
  108. data/sample_app/app/models/.gitkeep +0 -0
  109. data/sample_app/app/models/user.rb +0 -4
  110. data/sample_app/app/views/layouts/application.html.erb +0 -14
  111. data/sample_app/config/application.rb +0 -65
  112. data/sample_app/config/boot.rb +0 -6
  113. data/sample_app/config/database.yml +0 -70
  114. data/sample_app/config/environment.rb +0 -5
  115. data/sample_app/config/environments/development.rb +0 -37
  116. data/sample_app/config/environments/production.rb +0 -67
  117. data/sample_app/config/environments/test.rb +0 -37
  118. data/sample_app/config/initializers/backtrace_silencers.rb +0 -7
  119. data/sample_app/config/initializers/inflections.rb +0 -15
  120. data/sample_app/config/initializers/mime_types.rb +0 -5
  121. data/sample_app/config/initializers/secret_token.rb +0 -7
  122. data/sample_app/config/initializers/session_store.rb +0 -8
  123. data/sample_app/config/initializers/wrap_parameters.rb +0 -14
  124. data/sample_app/config/locales/en.yml +0 -5
  125. data/sample_app/config/routes.rb +0 -58
  126. data/sample_app/config/turntable.yml +0 -64
  127. data/sample_app/config.ru +0 -4
  128. data/sample_app/db/migrate/20120316073058_create_users.rb +0 -11
  129. data/sample_app/db/seeds.rb +0 -7
  130. data/sample_app/lib/assets/.gitkeep +0 -0
  131. data/sample_app/lib/tasks/.gitkeep +0 -0
  132. data/sample_app/log/.gitkeep +0 -0
  133. data/sample_app/public/404.html +0 -26
  134. data/sample_app/public/422.html +0 -26
  135. data/sample_app/public/500.html +0 -25
  136. data/sample_app/public/favicon.ico +0 -0
  137. data/sample_app/public/index.html +0 -241
  138. data/sample_app/public/robots.txt +0 -5
  139. data/sample_app/script/rails +0 -6
  140. data/sample_app/vendor/assets/javascripts/.gitkeep +0 -0
  141. data/sample_app/vendor/assets/stylesheets/.gitkeep +0 -0
  142. data/sample_app/vendor/plugins/.gitkeep +0 -0
  143. data/spec/test_models.rb +0 -27
  144. data/spec/turntable_helper.rb +0 -29
@@ -3,7 +3,8 @@ test:
3
3
  user_cluster:
4
4
  algorithm: range_bsearch
5
5
  seq:
6
- connection: user_seq_1
6
+ user_seq:
7
+ connection: turntable_user_seq_test
7
8
  shards:
8
9
  - connection: user_shard_1
9
10
  less_than: 20000
@@ -15,3 +16,19 @@ test:
15
16
  less_than: 80000
16
17
  - connection: user_shard_3
17
18
  less_than: 10000000
19
+ event_cluster:
20
+ algorithm: range_bsearch
21
+ seq:
22
+ user_seq:
23
+ connection: turntable_user_seq_test
24
+ shards:
25
+ - connection: user_shard_4
26
+ less_than: 20000
27
+ - connection: user_shard_5
28
+ less_than: 40000
29
+ - connection: user_shard_4
30
+ less_than: 60000
31
+ - connection: user_shard_5
32
+ less_than: 80000
33
+ - connection: user_shard_6
34
+ less_than: 10000000
@@ -1,5 +1,4 @@
1
1
  # load models
2
- require File.expand_path(File.join(File.dirname(File.dirname(__FILE__)),'./test_models'))
3
2
 
4
3
  # Fabrication
5
4
  Fabricator(:user_status) do
@@ -11,4 +10,3 @@ Fabricator(:user) do
11
10
  nickname { Faker::Name.name }
12
11
  user_status { Fabricator(:user_status) }
13
12
  end
14
-
@@ -0,0 +1,3 @@
1
+ class Card < ActiveRecord::Base
2
+ belongs_to :cards_user
3
+ end
@@ -0,0 +1,10 @@
1
+ class CardsUser < ActiveRecord::Base
2
+ turntable :user_cluster, :user_id
3
+ sequencer :user_seq
4
+
5
+ belongs_to :user
6
+ belongs_to :card
7
+ has_many :cards_users_histories
8
+ has_many :events_users_histories
9
+ has_many :events_users_histories_with_foreign_shard_key, class_name: "EventsUsersHistory", foreign_shard_key: :user_id
10
+ end
@@ -0,0 +1,7 @@
1
+ class CardsUsersHistory < ActiveRecord::Base
2
+ turntable :user_cluster, :user_id
3
+ sequencer :user_seq
4
+
5
+ belongs_to :user
6
+ belongs_to :cards_user
7
+ end
@@ -0,0 +1,7 @@
1
+ class EventsUsersHistory < ActiveRecord::Base
2
+ turntable :event_cluster, :events_user_id
3
+ sequencer :user_seq
4
+
5
+ belongs_to :user
6
+ belongs_to :cards_user
7
+ end
@@ -0,0 +1,7 @@
1
+ class User < ActiveRecord::Base
2
+ # shard by surrogate_key
3
+ turntable :user_cluster, :id
4
+ sequencer :user_seq
5
+ has_one :user_status
6
+ has_many :cards_users
7
+ end
@@ -0,0 +1,6 @@
1
+ class UserStatus < ActiveRecord::Base
2
+ # shard by other key
3
+ turntable :user_cluster, :user_id
4
+ sequencer :user_seq
5
+ belongs_to :user
6
+ end
data/spec/spec_helper.rb CHANGED
@@ -2,9 +2,11 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
2
  $LOAD_PATH.unshift(File.dirname(__FILE__))
3
3
  require 'rubygems'
4
4
  require 'bundler/setup'
5
+ require 'rspec/its'
6
+ require 'rspec/collection_matchers'
7
+ require 'webmock/rspec'
5
8
 
6
9
  require 'activerecord-turntable'
7
- require 'turntable_helper'
8
10
 
9
11
  require 'coveralls'
10
12
  Coveralls.wear!
@@ -13,14 +15,18 @@ MIGRATIONS_ROOT = File.expand_path(File.join(File.dirname(__FILE__), 'migrations
13
15
 
14
16
  # Requires supporting files with custom matchers and macros, etc,
15
17
  # in ./support/ and its subdirectories.
18
+ ActiveRecord::Base.configurations = YAML.load_file(File.join(File.dirname(__FILE__), 'config/database.yml'))
19
+ ActiveRecord::Base.establish_connection(:test)
20
+
16
21
  Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
17
22
 
18
23
  RSpec.configure do |config|
19
- config.filter_run :focus => true
20
- config.run_all_when_everything_filtered = true
24
+ include TurntableHelper
21
25
 
22
- config.mock_framework = :rr
26
+ config.filter_run focus: true
27
+ config.run_all_when_everything_filtered = true
23
28
 
24
29
  config.before(:each) do
30
+ Dir[File.join(File.dirname(File.dirname(__FILE__)), 'spec/models/*.rb')].each { |f| require f }
25
31
  end
26
32
  end
@@ -0,0 +1,6 @@
1
+ RSpec::Matchers.define :be_saved_to do |shard|
2
+ match do |actual|
3
+ persisted_actual = actual.with_shard(shard) { actual.class.find(actual.id) }
4
+ persisted_actual && actual == persisted_actual
5
+ end
6
+ end
@@ -0,0 +1,29 @@
1
+ require 'active_record'
2
+
3
+ module TurntableHelper
4
+ def reload_turntable!(config_file_name = nil)
5
+ ActiveRecord::Base.send(:include, ActiveRecord::Turntable)
6
+ ActiveRecord::Base.turntable_config_file = config_file_name
7
+ ActiveRecord::Turntable::Config.load!(ActiveRecord::Base.turntable_config_file, :test)
8
+ end
9
+
10
+ def establish_connection_to(env = :test)
11
+ silence_warnings {
12
+ Object.const_set('RAILS_ENV', env.to_s)
13
+ Object.const_set('Rails', Object.new)
14
+ allow(Rails).to receive(:env) { ActiveSupport::StringInquirer.new(RAILS_ENV) }
15
+ ActiveRecord::Base.logger = Logger.new("/dev/null")
16
+ }
17
+ ActiveRecord::Base.establish_connection(env)
18
+ end
19
+
20
+ def truncate_shard
21
+ ActiveRecord::Base.descendants.each do |klass|
22
+ klass.delete_all
23
+ end
24
+ end
25
+
26
+ def migrate(version)
27
+ ActiveRecord::Migrator.run(:up, MIGRATIONS_ROOT, version)
28
+ end
29
+ end
metadata CHANGED
@@ -1,14 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-turntable
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.2
4
+ version: 2.0.0.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - gussan
8
+ - sue445
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2014-04-22 00:00:00.000000000 Z
12
+ date: 2014-11-09 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: activerecord
@@ -16,28 +17,28 @@ dependencies:
16
17
  requirements:
17
18
  - - ">="
18
19
  - !ruby/object:Gem::Version
19
- version: 3.0.0
20
+ version: 4.0.0
20
21
  type: :runtime
21
22
  prerelease: false
22
23
  version_requirements: !ruby/object:Gem::Requirement
23
24
  requirements:
24
25
  - - ">="
25
26
  - !ruby/object:Gem::Version
26
- version: 3.0.0
27
+ version: 4.0.0
27
28
  - !ruby/object:Gem::Dependency
28
29
  name: activesupport
29
30
  requirement: !ruby/object:Gem::Requirement
30
31
  requirements:
31
32
  - - ">="
32
33
  - !ruby/object:Gem::Version
33
- version: 3.0.0
34
+ version: 4.0.0
34
35
  type: :runtime
35
36
  prerelease: false
36
37
  version_requirements: !ruby/object:Gem::Requirement
37
38
  requirements:
38
39
  - - ">="
39
40
  - !ruby/object:Gem::Version
40
- version: 3.0.0
41
+ version: 4.0.0
41
42
  - !ruby/object:Gem::Dependency
42
43
  name: sql_tree
43
44
  requirement: !ruby/object:Gem::Requirement
@@ -80,22 +81,64 @@ dependencies:
80
81
  - - ">="
81
82
  - !ruby/object:Gem::Version
82
83
  version: '0'
84
+ - !ruby/object:Gem::Dependency
85
+ name: activerecord-import
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - ">="
89
+ - !ruby/object:Gem::Version
90
+ version: '0'
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
98
+ - !ruby/object:Gem::Dependency
99
+ name: barrage
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
105
+ type: :development
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ version: '0'
112
+ - !ruby/object:Gem::Dependency
113
+ name: mysql2
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - ">="
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
83
126
  - !ruby/object:Gem::Dependency
84
127
  name: rake
85
128
  requirement: !ruby/object:Gem::Requirement
86
129
  requirements:
87
- - - "~>"
130
+ - - ">="
88
131
  - !ruby/object:Gem::Version
89
- version: 10.0.3
132
+ version: '0'
90
133
  type: :development
91
134
  prerelease: false
92
135
  version_requirements: !ruby/object:Gem::Requirement
93
136
  requirements:
94
- - - "~>"
137
+ - - ">="
95
138
  - !ruby/object:Gem::Version
96
- version: 10.0.3
139
+ version: '0'
97
140
  - !ruby/object:Gem::Dependency
98
- name: rspec
141
+ name: rack
99
142
  requirement: !ruby/object:Gem::Requirement
100
143
  requirements:
101
144
  - - ">="
@@ -109,7 +152,21 @@ dependencies:
109
152
  - !ruby/object:Gem::Version
110
153
  version: '0'
111
154
  - !ruby/object:Gem::Dependency
112
- name: rr
155
+ name: rspec
156
+ requirement: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - "~>"
159
+ - !ruby/object:Gem::Version
160
+ version: 3.1.0
161
+ type: :development
162
+ prerelease: false
163
+ version_requirements: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - "~>"
166
+ - !ruby/object:Gem::Version
167
+ version: 3.1.0
168
+ - !ruby/object:Gem::Dependency
169
+ name: rspec-its
113
170
  requirement: !ruby/object:Gem::Requirement
114
171
  requirements:
115
172
  - - ">="
@@ -123,7 +180,7 @@ dependencies:
123
180
  - !ruby/object:Gem::Version
124
181
  version: '0'
125
182
  - !ruby/object:Gem::Dependency
126
- name: mysql2
183
+ name: rspec-collection_matchers
127
184
  requirement: !ruby/object:Gem::Requirement
128
185
  requirements:
129
186
  - - ">="
@@ -165,7 +222,7 @@ dependencies:
165
222
  - !ruby/object:Gem::Version
166
223
  version: '0'
167
224
  - !ruby/object:Gem::Dependency
168
- name: activerecord-import
225
+ name: webmock
169
226
  requirement: !ruby/object:Gem::Requirement
170
227
  requirements:
171
228
  - - ">="
@@ -234,13 +291,13 @@ dependencies:
234
291
  - - ">="
235
292
  - !ruby/object:Gem::Version
236
293
  version: '0'
237
- description: ActiveRecord Sharding plugin
294
+ description: ActiveRecord sharding extension
238
295
  email:
239
296
  executables: []
240
297
  extensions: []
241
298
  extra_rdoc_files:
242
299
  - LICENSE.txt
243
- - README.rdoc
300
+ - README.md
244
301
  - CHANGELOG.md
245
302
  files:
246
303
  - ".coveralls.yml"
@@ -252,20 +309,28 @@ files:
252
309
  - Gemfile
253
310
  - Guardfile
254
311
  - LICENSE.txt
255
- - README.rdoc
312
+ - README.md
256
313
  - Rakefile
257
314
  - activerecord-turntable.gemspec
258
- - gemfiles/rails3_0.gemfile
259
- - gemfiles/rails3_1.gemfile
260
- - gemfiles/rails3_2.gemfile
315
+ - gemfiles/rails4_0.gemfile
316
+ - gemfiles/rails4_1.gemfile
261
317
  - lib/active_record/turntable.rb
262
318
  - lib/active_record/turntable/active_record_ext.rb
263
319
  - lib/active_record/turntable/active_record_ext/.gitkeep
264
320
  - lib/active_record/turntable/active_record_ext/abstract_adapter.rb
321
+ - lib/active_record/turntable/active_record_ext/activerecord_import_ext.rb
322
+ - lib/active_record/turntable/active_record_ext/acts_as_archive_extension.rb
323
+ - lib/active_record/turntable/active_record_ext/association.rb
324
+ - lib/active_record/turntable/active_record_ext/association_preloader.rb
265
325
  - lib/active_record/turntable/active_record_ext/clever_load.rb
326
+ - lib/active_record/turntable/active_record_ext/connection_handler_extension.rb
327
+ - lib/active_record/turntable/active_record_ext/database_tasks.rb
266
328
  - lib/active_record/turntable/active_record_ext/fixtures.rb
329
+ - lib/active_record/turntable/active_record_ext/locking_optimistic.rb
267
330
  - lib/active_record/turntable/active_record_ext/log_subscriber.rb
331
+ - lib/active_record/turntable/active_record_ext/migration_proxy.rb
268
332
  - lib/active_record/turntable/active_record_ext/persistence.rb
333
+ - lib/active_record/turntable/active_record_ext/relation.rb
269
334
  - lib/active_record/turntable/active_record_ext/schema_dumper.rb
270
335
  - lib/active_record/turntable/active_record_ext/sequencer.rb
271
336
  - lib/active_record/turntable/active_record_ext/transactions.rb
@@ -276,7 +341,6 @@ files:
276
341
  - lib/active_record/turntable/algorithm/range_bsearch_algorithm.rb
277
342
  - lib/active_record/turntable/base.rb
278
343
  - lib/active_record/turntable/cluster.rb
279
- - lib/active_record/turntable/compatible.rb
280
344
  - lib/active_record/turntable/config.rb
281
345
  - lib/active_record/turntable/connection_proxy.rb
282
346
  - lib/active_record/turntable/connection_proxy/mixable.rb
@@ -292,6 +356,7 @@ files:
292
356
  - lib/active_record/turntable/mixer/fader/select_shards_merge_result.rb
293
357
  - lib/active_record/turntable/mixer/fader/specified_shard.rb
294
358
  - lib/active_record/turntable/mixer/fader/update_shards_merge_result.rb
359
+ - lib/active_record/turntable/plugin.rb
295
360
  - lib/active_record/turntable/pool_proxy.rb
296
361
  - lib/active_record/turntable/rack.rb
297
362
  - lib/active_record/turntable/rack/connection_management.rb
@@ -301,6 +366,7 @@ files:
301
366
  - lib/active_record/turntable/seq_shard.rb
302
367
  - lib/active_record/turntable/sequencer.rb
303
368
  - lib/active_record/turntable/sequencer/api.rb
369
+ - lib/active_record/turntable/sequencer/barrage.rb
304
370
  - lib/active_record/turntable/sequencer/mysql.rb
305
371
  - lib/active_record/turntable/shard.rb
306
372
  - lib/active_record/turntable/sql_tree_patch.rb
@@ -308,55 +374,14 @@ files:
308
374
  - lib/activerecord-turntable.rb
309
375
  - lib/generators/active_record/turntable/install_generator.rb
310
376
  - lib/generators/templates/turntable.yml
311
- - sample_app/.gitignore
312
- - sample_app/Gemfile
313
- - sample_app/README.rdoc
314
- - sample_app/Rakefile
315
- - sample_app/app/assets/images/rails.png
316
- - sample_app/app/assets/javascripts/application.js
317
- - sample_app/app/assets/stylesheets/application.css
318
- - sample_app/app/controllers/application_controller.rb
319
- - sample_app/app/helpers/application_helper.rb
320
- - sample_app/app/mailers/.gitkeep
321
- - sample_app/app/models/.gitkeep
322
- - sample_app/app/models/user.rb
323
- - sample_app/app/views/layouts/application.html.erb
324
- - sample_app/config.ru
325
- - sample_app/config/application.rb
326
- - sample_app/config/boot.rb
327
- - sample_app/config/database.yml
328
- - sample_app/config/environment.rb
329
- - sample_app/config/environments/development.rb
330
- - sample_app/config/environments/production.rb
331
- - sample_app/config/environments/test.rb
332
- - sample_app/config/initializers/backtrace_silencers.rb
333
- - sample_app/config/initializers/inflections.rb
334
- - sample_app/config/initializers/mime_types.rb
335
- - sample_app/config/initializers/secret_token.rb
336
- - sample_app/config/initializers/session_store.rb
337
- - sample_app/config/initializers/wrap_parameters.rb
338
- - sample_app/config/locales/en.yml
339
- - sample_app/config/routes.rb
340
- - sample_app/config/turntable.yml
341
- - sample_app/db/migrate/20120316073058_create_users.rb
342
- - sample_app/db/seeds.rb
343
- - sample_app/lib/assets/.gitkeep
344
- - sample_app/lib/tasks/.gitkeep
345
- - sample_app/log/.gitkeep
346
- - sample_app/public/404.html
347
- - sample_app/public/422.html
348
- - sample_app/public/500.html
349
- - sample_app/public/favicon.ico
350
- - sample_app/public/index.html
351
- - sample_app/public/robots.txt
352
- - sample_app/script/rails
353
- - sample_app/vendor/assets/javascripts/.gitkeep
354
- - sample_app/vendor/assets/stylesheets/.gitkeep
355
- - sample_app/vendor/plugins/.gitkeep
356
377
  - script/performance/algorithm
378
+ - spec/active_record/turntable/active_record_ext/association_preloader_spec.rb
379
+ - spec/active_record/turntable/active_record_ext/association_spec.rb
357
380
  - spec/active_record/turntable/active_record_ext/clever_load_spec.rb
381
+ - spec/active_record/turntable/active_record_ext/locking_optimistic_spec.rb
358
382
  - spec/active_record/turntable/active_record_ext/persistence_spec.rb
359
383
  - spec/active_record/turntable/algorithm/range_algorithm_spec.rb
384
+ - spec/active_record/turntable/algorithm/range_bsearch_algorithm_spec.rb
360
385
  - spec/active_record/turntable/algorithm_spec.rb
361
386
  - spec/active_record/turntable/base_spec.rb
362
387
  - spec/active_record/turntable/cluster_spec.rb
@@ -365,7 +390,12 @@ files:
365
390
  - spec/active_record/turntable/finder_spec.rb
366
391
  - spec/active_record/turntable/mixer/fader_spec.rb
367
392
  - spec/active_record/turntable/mixer_spec.rb
393
+ - spec/active_record/turntable/rack/query_cache_spec.rb
394
+ - spec/active_record/turntable/sequencer/api_spec.rb
395
+ - spec/active_record/turntable/sequencer/barrage_spec.rb
396
+ - spec/active_record/turntable/sequencer/mysql_spec.rb
368
397
  - spec/active_record/turntable/shard_spec.rb
398
+ - spec/active_record/turntable/transaction_spec.rb
369
399
  - spec/active_record/turntable_spec.rb
370
400
  - spec/config/database.yml
371
401
  - spec/config/turntable.yml
@@ -376,9 +406,15 @@ files:
376
406
  - spec/migrations/002_create_user_statuses.rb
377
407
  - spec/migrations/003_create_cards.rb
378
408
  - spec/migrations/004_create_cards_users.rb
409
+ - spec/models/card.rb
410
+ - spec/models/cards_user.rb
411
+ - spec/models/cards_users_histories.rb
412
+ - spec/models/events_users_history.rb
413
+ - spec/models/user.rb
414
+ - spec/models/user_status.rb
379
415
  - spec/spec_helper.rb
380
- - spec/test_models.rb
381
- - spec/turntable_helper.rb
416
+ - spec/support/matchers/be_saved_to.rb
417
+ - spec/support/turntable_helper.rb
382
418
  homepage: https://github.com/drecom/activerecord-turntable
383
419
  licenses:
384
420
  - MIT
@@ -394,19 +430,23 @@ required_ruby_version: !ruby/object:Gem::Requirement
394
430
  version: '0'
395
431
  required_rubygems_version: !ruby/object:Gem::Requirement
396
432
  requirements:
397
- - - ">="
433
+ - - ">"
398
434
  - !ruby/object:Gem::Version
399
- version: '0'
435
+ version: 1.3.1
400
436
  requirements: []
401
437
  rubyforge_project: activerecord-turntable
402
438
  rubygems_version: 2.2.2
403
439
  signing_key:
404
440
  specification_version: 4
405
- summary: ActiveRecord Sharding plugin
441
+ summary: ActiveRecord sharding extension
406
442
  test_files:
443
+ - spec/active_record/turntable/active_record_ext/association_preloader_spec.rb
444
+ - spec/active_record/turntable/active_record_ext/association_spec.rb
407
445
  - spec/active_record/turntable/active_record_ext/clever_load_spec.rb
446
+ - spec/active_record/turntable/active_record_ext/locking_optimistic_spec.rb
408
447
  - spec/active_record/turntable/active_record_ext/persistence_spec.rb
409
448
  - spec/active_record/turntable/algorithm/range_algorithm_spec.rb
449
+ - spec/active_record/turntable/algorithm/range_bsearch_algorithm_spec.rb
410
450
  - spec/active_record/turntable/algorithm_spec.rb
411
451
  - spec/active_record/turntable/base_spec.rb
412
452
  - spec/active_record/turntable/cluster_spec.rb
@@ -415,7 +455,12 @@ test_files:
415
455
  - spec/active_record/turntable/finder_spec.rb
416
456
  - spec/active_record/turntable/mixer/fader_spec.rb
417
457
  - spec/active_record/turntable/mixer_spec.rb
458
+ - spec/active_record/turntable/rack/query_cache_spec.rb
459
+ - spec/active_record/turntable/sequencer/api_spec.rb
460
+ - spec/active_record/turntable/sequencer/barrage_spec.rb
461
+ - spec/active_record/turntable/sequencer/mysql_spec.rb
418
462
  - spec/active_record/turntable/shard_spec.rb
463
+ - spec/active_record/turntable/transaction_spec.rb
419
464
  - spec/active_record/turntable_spec.rb
420
465
  - spec/config/database.yml
421
466
  - spec/config/turntable.yml
@@ -426,7 +471,12 @@ test_files:
426
471
  - spec/migrations/002_create_user_statuses.rb
427
472
  - spec/migrations/003_create_cards.rb
428
473
  - spec/migrations/004_create_cards_users.rb
474
+ - spec/models/card.rb
475
+ - spec/models/cards_user.rb
476
+ - spec/models/cards_users_histories.rb
477
+ - spec/models/events_users_history.rb
478
+ - spec/models/user.rb
479
+ - spec/models/user_status.rb
429
480
  - spec/spec_helper.rb
430
- - spec/test_models.rb
431
- - spec/turntable_helper.rb
432
- has_rdoc:
481
+ - spec/support/matchers/be_saved_to.rb
482
+ - spec/support/turntable_helper.rb