ros-apartment 3.1.0 → 3.3.0

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 (49) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.rubocop.yml +142 -8
  4. data/.ruby-version +1 -1
  5. data/Appraisals +125 -30
  6. data/CLAUDE.md +210 -0
  7. data/CODE_OF_CONDUCT.md +71 -0
  8. data/Gemfile +15 -0
  9. data/README.md +49 -31
  10. data/Rakefile +44 -25
  11. data/docs/adapters.md +177 -0
  12. data/docs/architecture.md +274 -0
  13. data/docs/elevators.md +226 -0
  14. data/docs/images/log_example.png +0 -0
  15. data/lib/apartment/CLAUDE.md +300 -0
  16. data/lib/apartment/active_record/connection_handling.rb +2 -2
  17. data/lib/apartment/active_record/postgres/schema_dumper.rb +20 -0
  18. data/lib/apartment/active_record/postgresql_adapter.rb +19 -4
  19. data/lib/apartment/adapters/CLAUDE.md +314 -0
  20. data/lib/apartment/adapters/abstract_adapter.rb +24 -15
  21. data/lib/apartment/adapters/jdbc_mysql_adapter.rb +1 -1
  22. data/lib/apartment/adapters/jdbc_postgresql_adapter.rb +3 -3
  23. data/lib/apartment/adapters/mysql2_adapter.rb +2 -2
  24. data/lib/apartment/adapters/postgresql_adapter.rb +55 -36
  25. data/lib/apartment/adapters/sqlite3_adapter.rb +7 -7
  26. data/lib/apartment/console.rb +1 -1
  27. data/lib/apartment/custom_console.rb +7 -7
  28. data/lib/apartment/deprecation.rb +2 -5
  29. data/lib/apartment/elevators/CLAUDE.md +292 -0
  30. data/lib/apartment/elevators/domain.rb +1 -1
  31. data/lib/apartment/elevators/generic.rb +1 -1
  32. data/lib/apartment/elevators/host_hash.rb +3 -3
  33. data/lib/apartment/elevators/subdomain.rb +9 -5
  34. data/lib/apartment/log_subscriber.rb +1 -1
  35. data/lib/apartment/migrator.rb +17 -5
  36. data/lib/apartment/model.rb +1 -1
  37. data/lib/apartment/railtie.rb +3 -3
  38. data/lib/apartment/tasks/enhancements.rb +1 -1
  39. data/lib/apartment/tasks/task_helper.rb +6 -4
  40. data/lib/apartment/tenant.rb +3 -3
  41. data/lib/apartment/version.rb +1 -1
  42. data/lib/apartment.rb +23 -11
  43. data/lib/generators/apartment/install/install_generator.rb +1 -1
  44. data/lib/generators/apartment/install/templates/apartment.rb +2 -2
  45. data/lib/tasks/apartment.rake +25 -25
  46. data/ros-apartment.gemspec +10 -35
  47. metadata +44 -245
  48. data/.rubocop_todo.yml +0 -439
  49. /data/{CHANGELOG.md → legacy_CHANGELOG.md} +0 -0
@@ -4,9 +4,9 @@ require 'apartment/migrator'
4
4
  require 'apartment/tasks/task_helper'
5
5
  require 'parallel'
6
6
 
7
- apartment_namespace = namespace :apartment do
8
- desc 'Create all tenants'
9
- task :create do
7
+ apartment_namespace = namespace(:apartment) do
8
+ desc('Create all tenants')
9
+ task(create: :environment) do
10
10
  Apartment::TaskHelper.warn_if_tenants_empty
11
11
 
12
12
  Apartment::TaskHelper.tenants.each do |tenant|
@@ -14,8 +14,8 @@ apartment_namespace = namespace :apartment do
14
14
  end
15
15
  end
16
16
 
17
- desc 'Drop all tenants'
18
- task :drop do
17
+ desc('Drop all tenants')
18
+ task(drop: :environment) do
19
19
  Apartment::TaskHelper.tenants.each do |tenant|
20
20
  puts("Dropping #{tenant} tenant")
21
21
  Apartment::Tenant.drop(tenant)
@@ -24,16 +24,16 @@ apartment_namespace = namespace :apartment do
24
24
  end
25
25
  end
26
26
 
27
- desc 'Migrate all tenants'
28
- task :migrate do
27
+ desc('Migrate all tenants')
28
+ task(migrate: :environment) do
29
29
  Apartment::TaskHelper.warn_if_tenants_empty
30
30
  Apartment::TaskHelper.each_tenant do |tenant|
31
31
  Apartment::TaskHelper.migrate_tenant(tenant)
32
32
  end
33
33
  end
34
34
 
35
- desc 'Seed all tenants'
36
- task :seed do
35
+ desc('Seed all tenants')
36
+ task(seed: :environment) do
37
37
  Apartment::TaskHelper.warn_if_tenants_empty
38
38
 
39
39
  Apartment::TaskHelper.each_tenant do |tenant|
@@ -47,53 +47,53 @@ apartment_namespace = namespace :apartment do
47
47
  end
48
48
  end
49
49
 
50
- desc 'Rolls the migration back to the previous version (specify steps w/ STEP=n) across all tenants.'
51
- task :rollback do
50
+ desc('Rolls the migration back to the previous version (specify steps w/ STEP=n) across all tenants.')
51
+ task(rollback: :environment) do
52
52
  Apartment::TaskHelper.warn_if_tenants_empty
53
53
 
54
54
  step = ENV['STEP'] ? ENV['STEP'].to_i : 1
55
55
 
56
56
  Apartment::TaskHelper.each_tenant do |tenant|
57
57
  puts("Rolling back #{tenant} tenant")
58
- Apartment::Migrator.rollback tenant, step
58
+ Apartment::Migrator.rollback(tenant, step)
59
59
  rescue Apartment::TenantNotFound => e
60
60
  puts e.message
61
61
  end
62
62
  end
63
63
 
64
- namespace :migrate do
65
- desc 'Runs the "up" for a given migration VERSION across all tenants.'
66
- task :up do
64
+ namespace(:migrate) do
65
+ desc('Runs the "up" for a given migration VERSION across all tenants.')
66
+ task(up: :environment) do
67
67
  Apartment::TaskHelper.warn_if_tenants_empty
68
68
 
69
- version = ENV['VERSION'] ? ENV['VERSION'].to_i : nil
70
- raise 'VERSION is required' unless version
69
+ version = ENV['VERSION']&.to_i
70
+ raise('VERSION is required') unless version
71
71
 
72
72
  Apartment::TaskHelper.each_tenant do |tenant|
73
73
  puts("Migrating #{tenant} tenant up")
74
- Apartment::Migrator.run :up, tenant, version
74
+ Apartment::Migrator.run(:up, tenant, version)
75
75
  rescue Apartment::TenantNotFound => e
76
76
  puts e.message
77
77
  end
78
78
  end
79
79
 
80
- desc 'Runs the "down" for a given migration VERSION across all tenants.'
81
- task :down do
80
+ desc('Runs the "down" for a given migration VERSION across all tenants.')
81
+ task(down: :environment) do
82
82
  Apartment::TaskHelper.warn_if_tenants_empty
83
83
 
84
- version = ENV['VERSION'] ? ENV['VERSION'].to_i : nil
85
- raise 'VERSION is required' unless version
84
+ version = ENV['VERSION']&.to_i
85
+ raise('VERSION is required') unless version
86
86
 
87
87
  Apartment::TaskHelper.each_tenant do |tenant|
88
88
  puts("Migrating #{tenant} tenant down")
89
- Apartment::Migrator.run :down, tenant, version
89
+ Apartment::Migrator.run(:down, tenant, version)
90
90
  rescue Apartment::TenantNotFound => e
91
91
  puts e.message
92
92
  end
93
93
  end
94
94
 
95
- desc 'Rolls back the tenant one migration and re migrate up (options: STEP=x, VERSION=x).'
96
- task :redo do
95
+ desc('Rolls back the tenant one migration and re migrate up (options: STEP=x, VERSION=x).')
96
+ task(:redo) do
97
97
  if ENV['VERSION']
98
98
  apartment_namespace['migrate:down'].invoke
99
99
  apartment_namespace['migrate:up'].invoke
@@ -7,10 +7,10 @@ Gem::Specification.new do |s|
7
7
  s.name = 'ros-apartment'
8
8
  s.version = Apartment::VERSION
9
9
 
10
- s.authors = ['Ryan Brunner', 'Brad Robertson', 'Rui Baltazar']
10
+ s.authors = ['Ryan Brunner', 'Brad Robertson', 'Rui Baltazar', 'Mauricio Novelo']
11
11
  s.summary = 'A Ruby gem for managing database multitenancy. Apartment Gem drop in replacement'
12
12
  s.description = 'Apartment allows Rack applications to deal with database multitenancy through ActiveRecord'
13
- s.email = ['ryan@influitive.com', 'brad@influitive.com', 'rui.p.baltazar@gmail.com']
13
+ s.email = ['ryan@influitive.com', 'brad@influitive.com', 'rui.p.baltazar@gmail.com', 'mauricio@campusesp.com']
14
14
  # Specify which files should be added to the gem when it is released.
15
15
  # The `git ls-files -z` loads the files in the RubyGem that have been
16
16
  # added into git.
@@ -21,45 +21,20 @@ Gem::Specification.new do |s|
21
21
  end
22
22
  end
23
23
  s.executables = s.files.grep(%r{^bin/}).map { |f| File.basename(f) }
24
- s.test_files = s.files.grep(%r{^(test|spec|features)/})
25
24
  s.require_paths = ['lib']
26
25
 
27
26
  s.homepage = 'https://github.com/rails-on-services/apartment'
28
27
  s.licenses = ['MIT']
29
28
  s.metadata = {
30
- 'github_repo' => 'ssh://github.com/rails-on-services/apartment'
29
+ 'github_repo' => 'ssh://github.com/rails-on-services/apartment',
30
+ 'rubygems_mfa_required' => 'true',
31
31
  }
32
32
 
33
- s.required_ruby_version = '>= 3.0', '< 3.4'
33
+ s.required_ruby_version = '>= 3.1'
34
34
 
35
- s.add_dependency 'activerecord', '>= 6.1.0', '< 7.2'
36
- s.add_dependency 'parallel', '< 2.0'
37
- s.add_dependency 'public_suffix', '>= 2.0.5', '< 6.0'
38
- s.add_dependency 'rack', '>= 1.3.6', '< 4.0'
39
-
40
- s.add_development_dependency 'appraisal', '~> 2.2'
41
- s.add_development_dependency 'bundler', '>= 1.3', '< 3.0'
42
- s.add_development_dependency 'guard-rspec', '~> 4.2'
43
- s.add_development_dependency 'pry'
44
- s.add_development_dependency 'rake', '~> 13.0'
45
- s.add_development_dependency 'rspec', '~> 3.4'
46
- s.add_development_dependency 'rspec_junit_formatter'
47
- s.add_development_dependency 'rspec-rails', '~> 6.1'
48
- s.add_development_dependency 'rubocop', '~> 1.63'
49
- s.add_development_dependency 'rubocop-performance', '~> 1.21'
50
- s.add_development_dependency 'rubocop-rails', '~> 2.24'
51
- s.add_development_dependency 'rubocop-rspec', '~> 2.29'
52
-
53
- if defined?(JRUBY_VERSION)
54
- s.add_development_dependency 'activerecord-jdbc-adapter'
55
- s.add_development_dependency 'activerecord-jdbcmysql-adapter'
56
- s.add_development_dependency 'activerecord-jdbcpostgresql-adapter'
57
- s.add_development_dependency 'jdbc-mysql'
58
- s.add_development_dependency 'jdbc-postgres'
59
- else
60
- s.add_development_dependency 'mysql2', '~> 0.5'
61
- s.add_development_dependency 'pg', '~> 1.5'
62
- s.add_development_dependency 'sqlite3', '< 2.0'
63
- s.add_development_dependency 'trilogy', '< 3.0'
64
- end
35
+ s.add_dependency('activerecord', '>= 6.1.0', '< 8.2')
36
+ s.add_dependency('activesupport', '>= 6.1.0', '< 8.2')
37
+ s.add_dependency('parallel', '< 2.0')
38
+ s.add_dependency('public_suffix', '>= 2.0.5', '< 7')
39
+ s.add_dependency('rack', '>= 1.3.6', '< 4.0')
65
40
  end
metadata CHANGED
@@ -1,16 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ros-apartment
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.0
4
+ version: 3.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Brunner
8
8
  - Brad Robertson
9
9
  - Rui Baltazar
10
- autorequire:
10
+ - Mauricio Novelo
11
+ autorequire:
11
12
  bindir: bin
12
13
  cert_chain: []
13
- date: 2024-05-28 00:00:00.000000000 Z
14
+ date: 2025-11-24 00:00:00.000000000 Z
14
15
  dependencies:
15
16
  - !ruby/object:Gem::Dependency
16
17
  name: activerecord
@@ -21,7 +22,7 @@ dependencies:
21
22
  version: 6.1.0
22
23
  - - "<"
23
24
  - !ruby/object:Gem::Version
24
- version: '7.2'
25
+ version: '8.2'
25
26
  type: :runtime
26
27
  prerelease: false
27
28
  version_requirements: !ruby/object:Gem::Requirement
@@ -31,297 +32,88 @@ dependencies:
31
32
  version: 6.1.0
32
33
  - - "<"
33
34
  - !ruby/object:Gem::Version
34
- version: '7.2'
35
+ version: '8.2'
35
36
  - !ruby/object:Gem::Dependency
36
- name: parallel
37
- requirement: !ruby/object:Gem::Requirement
38
- requirements:
39
- - - "<"
40
- - !ruby/object:Gem::Version
41
- version: '2.0'
42
- type: :runtime
43
- prerelease: false
44
- version_requirements: !ruby/object:Gem::Requirement
45
- requirements:
46
- - - "<"
47
- - !ruby/object:Gem::Version
48
- version: '2.0'
49
- - !ruby/object:Gem::Dependency
50
- name: public_suffix
37
+ name: activesupport
51
38
  requirement: !ruby/object:Gem::Requirement
52
39
  requirements:
53
40
  - - ">="
54
41
  - !ruby/object:Gem::Version
55
- version: 2.0.5
42
+ version: 6.1.0
56
43
  - - "<"
57
44
  - !ruby/object:Gem::Version
58
- version: '6.0'
45
+ version: '8.2'
59
46
  type: :runtime
60
47
  prerelease: false
61
48
  version_requirements: !ruby/object:Gem::Requirement
62
49
  requirements:
63
50
  - - ">="
64
51
  - !ruby/object:Gem::Version
65
- version: 2.0.5
52
+ version: 6.1.0
66
53
  - - "<"
67
54
  - !ruby/object:Gem::Version
68
- version: '6.0'
55
+ version: '8.2'
69
56
  - !ruby/object:Gem::Dependency
70
- name: rack
57
+ name: parallel
71
58
  requirement: !ruby/object:Gem::Requirement
72
59
  requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: 1.3.6
76
60
  - - "<"
77
61
  - !ruby/object:Gem::Version
78
- version: '4.0'
62
+ version: '2.0'
79
63
  type: :runtime
80
64
  prerelease: false
81
65
  version_requirements: !ruby/object:Gem::Requirement
82
66
  requirements:
83
- - - ">="
84
- - !ruby/object:Gem::Version
85
- version: 1.3.6
86
67
  - - "<"
87
68
  - !ruby/object:Gem::Version
88
- version: '4.0'
89
- - !ruby/object:Gem::Dependency
90
- name: appraisal
91
- requirement: !ruby/object:Gem::Requirement
92
- requirements:
93
- - - "~>"
94
- - !ruby/object:Gem::Version
95
- version: '2.2'
96
- type: :development
97
- prerelease: false
98
- version_requirements: !ruby/object:Gem::Requirement
99
- requirements:
100
- - - "~>"
101
- - !ruby/object:Gem::Version
102
- version: '2.2'
69
+ version: '2.0'
103
70
  - !ruby/object:Gem::Dependency
104
- name: bundler
71
+ name: public_suffix
105
72
  requirement: !ruby/object:Gem::Requirement
106
73
  requirements:
107
74
  - - ">="
108
75
  - !ruby/object:Gem::Version
109
- version: '1.3'
76
+ version: 2.0.5
110
77
  - - "<"
111
78
  - !ruby/object:Gem::Version
112
- version: '3.0'
113
- type: :development
79
+ version: '7'
80
+ type: :runtime
114
81
  prerelease: false
115
82
  version_requirements: !ruby/object:Gem::Requirement
116
83
  requirements:
117
84
  - - ">="
118
85
  - !ruby/object:Gem::Version
119
- version: '1.3'
86
+ version: 2.0.5
120
87
  - - "<"
121
88
  - !ruby/object:Gem::Version
122
- version: '3.0'
123
- - !ruby/object:Gem::Dependency
124
- name: guard-rspec
125
- requirement: !ruby/object:Gem::Requirement
126
- requirements:
127
- - - "~>"
128
- - !ruby/object:Gem::Version
129
- version: '4.2'
130
- type: :development
131
- prerelease: false
132
- version_requirements: !ruby/object:Gem::Requirement
133
- requirements:
134
- - - "~>"
135
- - !ruby/object:Gem::Version
136
- version: '4.2'
137
- - !ruby/object:Gem::Dependency
138
- name: pry
139
- requirement: !ruby/object:Gem::Requirement
140
- requirements:
141
- - - ">="
142
- - !ruby/object:Gem::Version
143
- version: '0'
144
- type: :development
145
- prerelease: false
146
- version_requirements: !ruby/object:Gem::Requirement
147
- requirements:
148
- - - ">="
149
- - !ruby/object:Gem::Version
150
- version: '0'
151
- - !ruby/object:Gem::Dependency
152
- name: rake
153
- requirement: !ruby/object:Gem::Requirement
154
- requirements:
155
- - - "~>"
156
- - !ruby/object:Gem::Version
157
- version: '13.0'
158
- type: :development
159
- prerelease: false
160
- version_requirements: !ruby/object:Gem::Requirement
161
- requirements:
162
- - - "~>"
163
- - !ruby/object:Gem::Version
164
- version: '13.0'
165
- - !ruby/object:Gem::Dependency
166
- name: rspec
167
- requirement: !ruby/object:Gem::Requirement
168
- requirements:
169
- - - "~>"
170
- - !ruby/object:Gem::Version
171
- version: '3.4'
172
- type: :development
173
- prerelease: false
174
- version_requirements: !ruby/object:Gem::Requirement
175
- requirements:
176
- - - "~>"
177
- - !ruby/object:Gem::Version
178
- version: '3.4'
89
+ version: '7'
179
90
  - !ruby/object:Gem::Dependency
180
- name: rspec_junit_formatter
91
+ name: rack
181
92
  requirement: !ruby/object:Gem::Requirement
182
93
  requirements:
183
94
  - - ">="
184
95
  - !ruby/object:Gem::Version
185
- version: '0'
186
- type: :development
187
- prerelease: false
188
- version_requirements: !ruby/object:Gem::Requirement
189
- requirements:
190
- - - ">="
191
- - !ruby/object:Gem::Version
192
- version: '0'
193
- - !ruby/object:Gem::Dependency
194
- name: rspec-rails
195
- requirement: !ruby/object:Gem::Requirement
196
- requirements:
197
- - - "~>"
198
- - !ruby/object:Gem::Version
199
- version: '6.1'
200
- type: :development
201
- prerelease: false
202
- version_requirements: !ruby/object:Gem::Requirement
203
- requirements:
204
- - - "~>"
205
- - !ruby/object:Gem::Version
206
- version: '6.1'
207
- - !ruby/object:Gem::Dependency
208
- name: rubocop
209
- requirement: !ruby/object:Gem::Requirement
210
- requirements:
211
- - - "~>"
212
- - !ruby/object:Gem::Version
213
- version: '1.63'
214
- type: :development
215
- prerelease: false
216
- version_requirements: !ruby/object:Gem::Requirement
217
- requirements:
218
- - - "~>"
219
- - !ruby/object:Gem::Version
220
- version: '1.63'
221
- - !ruby/object:Gem::Dependency
222
- name: rubocop-performance
223
- requirement: !ruby/object:Gem::Requirement
224
- requirements:
225
- - - "~>"
226
- - !ruby/object:Gem::Version
227
- version: '1.21'
228
- type: :development
229
- prerelease: false
230
- version_requirements: !ruby/object:Gem::Requirement
231
- requirements:
232
- - - "~>"
233
- - !ruby/object:Gem::Version
234
- version: '1.21'
235
- - !ruby/object:Gem::Dependency
236
- name: rubocop-rails
237
- requirement: !ruby/object:Gem::Requirement
238
- requirements:
239
- - - "~>"
240
- - !ruby/object:Gem::Version
241
- version: '2.24'
242
- type: :development
243
- prerelease: false
244
- version_requirements: !ruby/object:Gem::Requirement
245
- requirements:
246
- - - "~>"
247
- - !ruby/object:Gem::Version
248
- version: '2.24'
249
- - !ruby/object:Gem::Dependency
250
- name: rubocop-rspec
251
- requirement: !ruby/object:Gem::Requirement
252
- requirements:
253
- - - "~>"
254
- - !ruby/object:Gem::Version
255
- version: '2.29'
256
- type: :development
257
- prerelease: false
258
- version_requirements: !ruby/object:Gem::Requirement
259
- requirements:
260
- - - "~>"
261
- - !ruby/object:Gem::Version
262
- version: '2.29'
263
- - !ruby/object:Gem::Dependency
264
- name: mysql2
265
- requirement: !ruby/object:Gem::Requirement
266
- requirements:
267
- - - "~>"
268
- - !ruby/object:Gem::Version
269
- version: '0.5'
270
- type: :development
271
- prerelease: false
272
- version_requirements: !ruby/object:Gem::Requirement
273
- requirements:
274
- - - "~>"
275
- - !ruby/object:Gem::Version
276
- version: '0.5'
277
- - !ruby/object:Gem::Dependency
278
- name: pg
279
- requirement: !ruby/object:Gem::Requirement
280
- requirements:
281
- - - "~>"
282
- - !ruby/object:Gem::Version
283
- version: '1.5'
284
- type: :development
285
- prerelease: false
286
- version_requirements: !ruby/object:Gem::Requirement
287
- requirements:
288
- - - "~>"
289
- - !ruby/object:Gem::Version
290
- version: '1.5'
291
- - !ruby/object:Gem::Dependency
292
- name: sqlite3
293
- requirement: !ruby/object:Gem::Requirement
294
- requirements:
96
+ version: 1.3.6
295
97
  - - "<"
296
98
  - !ruby/object:Gem::Version
297
- version: '2.0'
298
- type: :development
99
+ version: '4.0'
100
+ type: :runtime
299
101
  prerelease: false
300
102
  version_requirements: !ruby/object:Gem::Requirement
301
103
  requirements:
302
- - - "<"
303
- - !ruby/object:Gem::Version
304
- version: '2.0'
305
- - !ruby/object:Gem::Dependency
306
- name: trilogy
307
- requirement: !ruby/object:Gem::Requirement
308
- requirements:
309
- - - "<"
104
+ - - ">="
310
105
  - !ruby/object:Gem::Version
311
- version: '3.0'
312
- type: :development
313
- prerelease: false
314
- version_requirements: !ruby/object:Gem::Requirement
315
- requirements:
106
+ version: 1.3.6
316
107
  - - "<"
317
108
  - !ruby/object:Gem::Version
318
- version: '3.0'
109
+ version: '4.0'
319
110
  description: Apartment allows Rack applications to deal with database multitenancy
320
111
  through ActiveRecord
321
112
  email:
322
113
  - ryan@influitive.com
323
114
  - brad@influitive.com
324
115
  - rui.p.baltazar@gmail.com
116
+ - mauricio@campusesp.com
325
117
  executables: []
326
118
  extensions: []
327
119
  extra_rdoc_files: []
@@ -330,19 +122,27 @@ files:
330
122
  - ".pryrc"
331
123
  - ".rspec"
332
124
  - ".rubocop.yml"
333
- - ".rubocop_todo.yml"
334
125
  - ".ruby-version"
335
126
  - Appraisals
336
- - CHANGELOG.md
127
+ - CLAUDE.md
128
+ - CODE_OF_CONDUCT.md
337
129
  - Gemfile
338
130
  - Guardfile
339
131
  - README.md
340
132
  - Rakefile
133
+ - docs/adapters.md
134
+ - docs/architecture.md
135
+ - docs/elevators.md
136
+ - docs/images/log_example.png
137
+ - legacy_CHANGELOG.md
341
138
  - lib/apartment.rb
139
+ - lib/apartment/CLAUDE.md
342
140
  - lib/apartment/active_record/connection_handling.rb
343
141
  - lib/apartment/active_record/internal_metadata.rb
142
+ - lib/apartment/active_record/postgres/schema_dumper.rb
344
143
  - lib/apartment/active_record/postgresql_adapter.rb
345
144
  - lib/apartment/active_record/schema_migration.rb
145
+ - lib/apartment/adapters/CLAUDE.md
346
146
  - lib/apartment/adapters/abstract_adapter.rb
347
147
  - lib/apartment/adapters/abstract_jdbc_adapter.rb
348
148
  - lib/apartment/adapters/jdbc_mysql_adapter.rb
@@ -355,6 +155,7 @@ files:
355
155
  - lib/apartment/console.rb
356
156
  - lib/apartment/custom_console.rb
357
157
  - lib/apartment/deprecation.rb
158
+ - lib/apartment/elevators/CLAUDE.md
358
159
  - lib/apartment/elevators/domain.rb
359
160
  - lib/apartment/elevators/first_subdomain.rb
360
161
  - lib/apartment/elevators/generic.rb
@@ -379,7 +180,8 @@ licenses:
379
180
  - MIT
380
181
  metadata:
381
182
  github_repo: ssh://github.com/rails-on-services/apartment
382
- post_install_message:
183
+ rubygems_mfa_required: 'true'
184
+ post_install_message:
383
185
  rdoc_options: []
384
186
  require_paths:
385
187
  - lib
@@ -387,18 +189,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
387
189
  requirements:
388
190
  - - ">="
389
191
  - !ruby/object:Gem::Version
390
- version: '3.0'
391
- - - "<"
392
- - !ruby/object:Gem::Version
393
- version: '3.4'
192
+ version: '3.1'
394
193
  required_rubygems_version: !ruby/object:Gem::Requirement
395
194
  requirements:
396
195
  - - ">="
397
196
  - !ruby/object:Gem::Version
398
197
  version: '0'
399
198
  requirements: []
400
- rubygems_version: 3.5.10
401
- signing_key:
199
+ rubygems_version: 3.5.22
200
+ signing_key:
402
201
  specification_version: 4
403
202
  summary: A Ruby gem for managing database multitenancy. Apartment Gem drop in replacement
404
203
  test_files: []