switchman 4.0.0 → 4.2.5

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.
Files changed (30) hide show
  1. checksums.yaml +4 -4
  2. data/lib/switchman/active_record/abstract_adapter.rb +10 -8
  3. data/lib/switchman/active_record/associations.rb +44 -60
  4. data/lib/switchman/active_record/attribute_methods.rb +34 -27
  5. data/lib/switchman/active_record/base.rb +12 -61
  6. data/lib/switchman/active_record/calculations.rb +38 -49
  7. data/lib/switchman/active_record/connection_pool.rb +37 -23
  8. data/lib/switchman/active_record/database_configurations.rb +7 -19
  9. data/lib/switchman/active_record/finder_methods.rb +21 -45
  10. data/lib/switchman/active_record/log_subscriber.rb +1 -10
  11. data/lib/switchman/active_record/migration.rb +14 -33
  12. data/lib/switchman/active_record/persistence.rb +1 -1
  13. data/lib/switchman/active_record/postgresql_adapter.rb +26 -12
  14. data/lib/switchman/active_record/query_cache.rb +22 -42
  15. data/lib/switchman/active_record/query_methods.rb +63 -22
  16. data/lib/switchman/active_record/reflection.rb +9 -2
  17. data/lib/switchman/active_record/relation.rb +64 -5
  18. data/lib/switchman/active_record/spawn_methods.rb +1 -5
  19. data/lib/switchman/active_record/statement_cache.rb +2 -2
  20. data/lib/switchman/active_record/table_definition.rb +1 -1
  21. data/lib/switchman/active_record/test_fixtures.rb +71 -35
  22. data/lib/switchman/arel.rb +0 -25
  23. data/lib/switchman/database_server.rb +5 -9
  24. data/lib/switchman/engine.rb +10 -5
  25. data/lib/switchman/shard.rb +10 -12
  26. data/lib/switchman/sharded_instrumenter.rb +8 -2
  27. data/lib/switchman/test_helper.rb +1 -1
  28. data/lib/switchman/version.rb +1 -1
  29. data/lib/tasks/switchman.rake +1 -1
  30. metadata +25 -159
metadata CHANGED
@@ -1,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: switchman
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0
4
+ version: 4.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cody Cutrer
8
8
  - James Williams
9
9
  - Jacob Fugal
10
- autorequire:
10
+ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2025-02-12 00:00:00.000000000 Z
13
+ date: 2026-05-28 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activerecord
@@ -18,208 +18,74 @@ dependencies:
18
18
  requirements:
19
19
  - - ">="
20
20
  - !ruby/object:Gem::Version
21
- version: '7.0'
21
+ version: '7.1'
22
22
  - - "<"
23
23
  - !ruby/object:Gem::Version
24
- version: '7.2'
24
+ version: '8.1'
25
25
  type: :runtime
26
26
  prerelease: false
27
27
  version_requirements: !ruby/object:Gem::Requirement
28
28
  requirements:
29
29
  - - ">="
30
30
  - !ruby/object:Gem::Version
31
- version: '7.0'
31
+ version: '7.1'
32
32
  - - "<"
33
33
  - !ruby/object:Gem::Version
34
- version: '7.2'
34
+ version: '8.1'
35
35
  - !ruby/object:Gem::Dependency
36
36
  name: guardrail
37
37
  requirement: !ruby/object:Gem::Requirement
38
38
  requirements:
39
39
  - - "~>"
40
40
  - !ruby/object:Gem::Version
41
- version: 3.0.1
41
+ version: 3.1.0
42
42
  type: :runtime
43
43
  prerelease: false
44
44
  version_requirements: !ruby/object:Gem::Requirement
45
45
  requirements:
46
46
  - - "~>"
47
47
  - !ruby/object:Gem::Version
48
- version: 3.0.1
48
+ version: 3.1.0
49
49
  - !ruby/object:Gem::Dependency
50
50
  name: parallel
51
51
  requirement: !ruby/object:Gem::Requirement
52
52
  requirements:
53
- - - "~>"
53
+ - - ">="
54
54
  - !ruby/object:Gem::Version
55
55
  version: '1.22'
56
+ - - "<"
57
+ - !ruby/object:Gem::Version
58
+ version: '3.0'
56
59
  type: :runtime
57
60
  prerelease: false
58
61
  version_requirements: !ruby/object:Gem::Requirement
59
62
  requirements:
60
- - - "~>"
63
+ - - ">="
61
64
  - !ruby/object:Gem::Version
62
65
  version: '1.22'
66
+ - - "<"
67
+ - !ruby/object:Gem::Version
68
+ version: '3.0'
63
69
  - !ruby/object:Gem::Dependency
64
70
  name: railties
65
71
  requirement: !ruby/object:Gem::Requirement
66
72
  requirements:
67
73
  - - ">="
68
74
  - !ruby/object:Gem::Version
69
- version: '7.0'
75
+ version: '7.1'
70
76
  - - "<"
71
77
  - !ruby/object:Gem::Version
72
- version: '7.2'
78
+ version: '8.1'
73
79
  type: :runtime
74
80
  prerelease: false
75
81
  version_requirements: !ruby/object:Gem::Requirement
76
82
  requirements:
77
83
  - - ">="
78
84
  - !ruby/object:Gem::Version
79
- version: '7.0'
85
+ version: '7.1'
80
86
  - - "<"
81
87
  - !ruby/object:Gem::Version
82
- version: '7.2'
83
- - !ruby/object:Gem::Dependency
84
- name: debug
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: '1.8'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - "~>"
95
- - !ruby/object:Gem::Version
96
- version: '1.8'
97
- - !ruby/object:Gem::Dependency
98
- name: pg
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - "~>"
102
- - !ruby/object:Gem::Version
103
- version: '1.2'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - "~>"
109
- - !ruby/object:Gem::Version
110
- version: '1.2'
111
- - !ruby/object:Gem::Dependency
112
- name: rake
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - "~>"
116
- - !ruby/object:Gem::Version
117
- version: '13.0'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - "~>"
123
- - !ruby/object:Gem::Version
124
- version: '13.0'
125
- - !ruby/object:Gem::Dependency
126
- name: rspec-mocks
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - "~>"
130
- - !ruby/object:Gem::Version
131
- version: '3.5'
132
- type: :development
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - "~>"
137
- - !ruby/object:Gem::Version
138
- version: '3.5'
139
- - !ruby/object:Gem::Dependency
140
- name: rspec-rails
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - "~>"
144
- - !ruby/object:Gem::Version
145
- version: '6.0'
146
- type: :development
147
- prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - "~>"
151
- - !ruby/object:Gem::Version
152
- version: '6.0'
153
- - !ruby/object:Gem::Dependency
154
- name: rubocop
155
- requirement: !ruby/object:Gem::Requirement
156
- requirements:
157
- - - "~>"
158
- - !ruby/object:Gem::Version
159
- version: '1.10'
160
- type: :development
161
- prerelease: false
162
- version_requirements: !ruby/object:Gem::Requirement
163
- requirements:
164
- - - "~>"
165
- - !ruby/object:Gem::Version
166
- version: '1.10'
167
- - !ruby/object:Gem::Dependency
168
- name: rubocop-inst
169
- requirement: !ruby/object:Gem::Requirement
170
- requirements:
171
- - - "~>"
172
- - !ruby/object:Gem::Version
173
- version: '1'
174
- type: :development
175
- prerelease: false
176
- version_requirements: !ruby/object:Gem::Requirement
177
- requirements:
178
- - - "~>"
179
- - !ruby/object:Gem::Version
180
- version: '1'
181
- - !ruby/object:Gem::Dependency
182
- name: rubocop-rake
183
- requirement: !ruby/object:Gem::Requirement
184
- requirements:
185
- - - "~>"
186
- - !ruby/object:Gem::Version
187
- version: '0.5'
188
- type: :development
189
- prerelease: false
190
- version_requirements: !ruby/object:Gem::Requirement
191
- requirements:
192
- - - "~>"
193
- - !ruby/object:Gem::Version
194
- version: '0.5'
195
- - !ruby/object:Gem::Dependency
196
- name: rubocop-rspec
197
- requirement: !ruby/object:Gem::Requirement
198
- requirements:
199
- - - "~>"
200
- - !ruby/object:Gem::Version
201
- version: '2.2'
202
- type: :development
203
- prerelease: false
204
- version_requirements: !ruby/object:Gem::Requirement
205
- requirements:
206
- - - "~>"
207
- - !ruby/object:Gem::Version
208
- version: '2.2'
209
- - !ruby/object:Gem::Dependency
210
- name: simplecov
211
- requirement: !ruby/object:Gem::Requirement
212
- requirements:
213
- - - "~>"
214
- - !ruby/object:Gem::Version
215
- version: '0.15'
216
- type: :development
217
- prerelease: false
218
- version_requirements: !ruby/object:Gem::Requirement
219
- requirements:
220
- - - "~>"
221
- - !ruby/object:Gem::Version
222
- version: '0.15'
88
+ version: '8.1'
223
89
  description: Sharding
224
90
  email:
225
91
  - cody@instructure.com
@@ -290,7 +156,7 @@ licenses:
290
156
  metadata:
291
157
  rubygems_mfa_required: 'true'
292
158
  source_code_uri: https://github.com/instructure/switchman
293
- post_install_message:
159
+ post_install_message:
294
160
  rdoc_options: []
295
161
  require_paths:
296
162
  - lib
@@ -298,15 +164,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
298
164
  requirements:
299
165
  - - ">="
300
166
  - !ruby/object:Gem::Version
301
- version: '3.0'
167
+ version: '3.2'
302
168
  required_rubygems_version: !ruby/object:Gem::Requirement
303
169
  requirements:
304
170
  - - ">="
305
171
  - !ruby/object:Gem::Version
306
172
  version: '0'
307
173
  requirements: []
308
- rubygems_version: 3.2.33
309
- signing_key:
174
+ rubygems_version: 3.4.19
175
+ signing_key:
310
176
  specification_version: 4
311
177
  summary: Rails sharding magic
312
178
  test_files: []