ros-apartment 3.2.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 (41) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.rubocop.yml +93 -2
  4. data/.ruby-version +1 -1
  5. data/Appraisals +15 -0
  6. data/CLAUDE.md +210 -0
  7. data/README.md +1 -1
  8. data/Rakefile +6 -5
  9. data/docs/adapters.md +177 -0
  10. data/docs/architecture.md +274 -0
  11. data/docs/elevators.md +226 -0
  12. data/docs/images/log_example.png +0 -0
  13. data/lib/apartment/CLAUDE.md +300 -0
  14. data/lib/apartment/adapters/CLAUDE.md +314 -0
  15. data/lib/apartment/adapters/abstract_adapter.rb +24 -15
  16. data/lib/apartment/adapters/jdbc_mysql_adapter.rb +1 -1
  17. data/lib/apartment/adapters/jdbc_postgresql_adapter.rb +3 -3
  18. data/lib/apartment/adapters/mysql2_adapter.rb +2 -2
  19. data/lib/apartment/adapters/postgresql_adapter.rb +42 -19
  20. data/lib/apartment/adapters/sqlite3_adapter.rb +7 -7
  21. data/lib/apartment/console.rb +1 -1
  22. data/lib/apartment/custom_console.rb +7 -7
  23. data/lib/apartment/elevators/CLAUDE.md +292 -0
  24. data/lib/apartment/elevators/domain.rb +1 -1
  25. data/lib/apartment/elevators/generic.rb +1 -1
  26. data/lib/apartment/elevators/host_hash.rb +3 -3
  27. data/lib/apartment/elevators/subdomain.rb +9 -5
  28. data/lib/apartment/log_subscriber.rb +1 -1
  29. data/lib/apartment/migrator.rb +2 -2
  30. data/lib/apartment/model.rb +1 -1
  31. data/lib/apartment/railtie.rb +3 -3
  32. data/lib/apartment/tasks/enhancements.rb +1 -1
  33. data/lib/apartment/tasks/task_helper.rb +4 -4
  34. data/lib/apartment/tenant.rb +3 -3
  35. data/lib/apartment/version.rb +1 -1
  36. data/lib/apartment.rb +15 -9
  37. data/lib/generators/apartment/install/install_generator.rb +1 -1
  38. data/lib/generators/apartment/install/templates/apartment.rb +2 -2
  39. data/lib/tasks/apartment.rake +25 -25
  40. data/ros-apartment.gemspec +3 -3
  41. metadata +22 -11
@@ -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
@@ -32,9 +32,9 @@ Gem::Specification.new do |s|
32
32
 
33
33
  s.required_ruby_version = '>= 3.1'
34
34
 
35
- s.add_dependency('activerecord', '>= 6.1.0', '< 8.1')
36
- s.add_dependency('activesupport', '>= 6.1.0', '< 8.1')
35
+ s.add_dependency('activerecord', '>= 6.1.0', '< 8.2')
36
+ s.add_dependency('activesupport', '>= 6.1.0', '< 8.2')
37
37
  s.add_dependency('parallel', '< 2.0')
38
- s.add_dependency('public_suffix', '>= 2.0.5', '<= 6.0.1')
38
+ s.add_dependency('public_suffix', '>= 2.0.5', '< 7')
39
39
  s.add_dependency('rack', '>= 1.3.6', '< 4.0')
40
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.2.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
10
  - Mauricio Novelo
11
+ autorequire:
11
12
  bindir: bin
12
13
  cert_chain: []
13
- date: 2025-01-09 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: '8.1'
25
+ version: '8.2'
25
26
  type: :runtime
26
27
  prerelease: false
27
28
  version_requirements: !ruby/object:Gem::Requirement
@@ -31,7 +32,7 @@ dependencies:
31
32
  version: 6.1.0
32
33
  - - "<"
33
34
  - !ruby/object:Gem::Version
34
- version: '8.1'
35
+ version: '8.2'
35
36
  - !ruby/object:Gem::Dependency
36
37
  name: activesupport
37
38
  requirement: !ruby/object:Gem::Requirement
@@ -41,7 +42,7 @@ dependencies:
41
42
  version: 6.1.0
42
43
  - - "<"
43
44
  - !ruby/object:Gem::Version
44
- version: '8.1'
45
+ version: '8.2'
45
46
  type: :runtime
46
47
  prerelease: false
47
48
  version_requirements: !ruby/object:Gem::Requirement
@@ -51,7 +52,7 @@ dependencies:
51
52
  version: 6.1.0
52
53
  - - "<"
53
54
  - !ruby/object:Gem::Version
54
- version: '8.1'
55
+ version: '8.2'
55
56
  - !ruby/object:Gem::Dependency
56
57
  name: parallel
57
58
  requirement: !ruby/object:Gem::Requirement
@@ -73,9 +74,9 @@ dependencies:
73
74
  - - ">="
74
75
  - !ruby/object:Gem::Version
75
76
  version: 2.0.5
76
- - - "<="
77
+ - - "<"
77
78
  - !ruby/object:Gem::Version
78
- version: 6.0.1
79
+ version: '7'
79
80
  type: :runtime
80
81
  prerelease: false
81
82
  version_requirements: !ruby/object:Gem::Requirement
@@ -83,9 +84,9 @@ dependencies:
83
84
  - - ">="
84
85
  - !ruby/object:Gem::Version
85
86
  version: 2.0.5
86
- - - "<="
87
+ - - "<"
87
88
  - !ruby/object:Gem::Version
88
- version: 6.0.1
89
+ version: '7'
89
90
  - !ruby/object:Gem::Dependency
90
91
  name: rack
91
92
  requirement: !ruby/object:Gem::Requirement
@@ -123,18 +124,25 @@ files:
123
124
  - ".rubocop.yml"
124
125
  - ".ruby-version"
125
126
  - Appraisals
127
+ - CLAUDE.md
126
128
  - CODE_OF_CONDUCT.md
127
129
  - Gemfile
128
130
  - Guardfile
129
131
  - README.md
130
132
  - Rakefile
133
+ - docs/adapters.md
134
+ - docs/architecture.md
135
+ - docs/elevators.md
136
+ - docs/images/log_example.png
131
137
  - legacy_CHANGELOG.md
132
138
  - lib/apartment.rb
139
+ - lib/apartment/CLAUDE.md
133
140
  - lib/apartment/active_record/connection_handling.rb
134
141
  - lib/apartment/active_record/internal_metadata.rb
135
142
  - lib/apartment/active_record/postgres/schema_dumper.rb
136
143
  - lib/apartment/active_record/postgresql_adapter.rb
137
144
  - lib/apartment/active_record/schema_migration.rb
145
+ - lib/apartment/adapters/CLAUDE.md
138
146
  - lib/apartment/adapters/abstract_adapter.rb
139
147
  - lib/apartment/adapters/abstract_jdbc_adapter.rb
140
148
  - lib/apartment/adapters/jdbc_mysql_adapter.rb
@@ -147,6 +155,7 @@ files:
147
155
  - lib/apartment/console.rb
148
156
  - lib/apartment/custom_console.rb
149
157
  - lib/apartment/deprecation.rb
158
+ - lib/apartment/elevators/CLAUDE.md
150
159
  - lib/apartment/elevators/domain.rb
151
160
  - lib/apartment/elevators/first_subdomain.rb
152
161
  - lib/apartment/elevators/generic.rb
@@ -172,6 +181,7 @@ licenses:
172
181
  metadata:
173
182
  github_repo: ssh://github.com/rails-on-services/apartment
174
183
  rubygems_mfa_required: 'true'
184
+ post_install_message:
175
185
  rdoc_options: []
176
186
  require_paths:
177
187
  - lib
@@ -186,7 +196,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
186
196
  - !ruby/object:Gem::Version
187
197
  version: '0'
188
198
  requirements: []
189
- rubygems_version: 3.6.2
199
+ rubygems_version: 3.5.22
200
+ signing_key:
190
201
  specification_version: 4
191
202
  summary: A Ruby gem for managing database multitenancy. Apartment Gem drop in replacement
192
203
  test_files: []