pg_objects 1.4.7 → 1.5.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 (52) hide show
  1. checksums.yaml +4 -4
  2. data/.evilution.yml +74 -0
  3. data/.github/workflows/ci.yml +1 -1
  4. data/.gitignore +3 -0
  5. data/.rubocop.yml +13 -2
  6. data/CHANGELOG.md +78 -0
  7. data/Gemfile +2 -0
  8. data/Gemfile.lock +96 -78
  9. data/README.md +174 -3
  10. data/Rakefile +2 -0
  11. data/bin/benchmark +42 -7
  12. data/bin/console +1 -0
  13. data/lib/generators/pg_objects/install/install_generator.rb +2 -0
  14. data/lib/pg_objects/config.rb +53 -2
  15. data/lib/pg_objects/db_object.rb +6 -1
  16. data/lib/pg_objects/db_object_factory.rb +11 -3
  17. data/lib/pg_objects/logger.rb +34 -3
  18. data/lib/pg_objects/manager.rb +66 -15
  19. data/lib/pg_objects/parsed_object/aggregate.rb +9 -1
  20. data/lib/pg_objects/parsed_object/base.rb +38 -0
  21. data/lib/pg_objects/parsed_object/base_type.rb +17 -0
  22. data/lib/pg_objects/parsed_object/conversion.rb +9 -1
  23. data/lib/pg_objects/parsed_object/domain.rb +16 -0
  24. data/lib/pg_objects/parsed_object/enum_type.rb +16 -0
  25. data/lib/pg_objects/parsed_object/event_trigger.rb +3 -1
  26. data/lib/pg_objects/parsed_object/extension.rb +10 -0
  27. data/lib/pg_objects/parsed_object/function.rb +9 -1
  28. data/lib/pg_objects/parsed_object/index.rb +17 -0
  29. data/lib/pg_objects/parsed_object/materialized_view.rb +9 -1
  30. data/lib/pg_objects/parsed_object/operator.rb +9 -1
  31. data/lib/pg_objects/parsed_object/operator_class.rb +9 -1
  32. data/lib/pg_objects/parsed_object/policy.rb +10 -0
  33. data/lib/pg_objects/parsed_object/range_type.rb +16 -0
  34. data/lib/pg_objects/parsed_object/rule.rb +10 -0
  35. data/lib/pg_objects/parsed_object/sequence.rb +16 -0
  36. data/lib/pg_objects/parsed_object/table.rb +9 -1
  37. data/lib/pg_objects/parsed_object/text_search_parser.rb +9 -1
  38. data/lib/pg_objects/parsed_object/text_search_template.rb +9 -1
  39. data/lib/pg_objects/parsed_object/trigger.rb +3 -1
  40. data/lib/pg_objects/parsed_object/type.rb +9 -1
  41. data/lib/pg_objects/parsed_object/view.rb +9 -1
  42. data/lib/pg_objects/parsed_object.rb +11 -0
  43. data/lib/pg_objects/parsed_object_factory.rb +52 -90
  44. data/lib/pg_objects/parser.rb +28 -12
  45. data/lib/pg_objects/railtie.rb +2 -0
  46. data/lib/pg_objects/version.rb +3 -1
  47. data/lib/pg_objects/yaml_configurable.rb +25 -7
  48. data/lib/pg_objects.rb +54 -4
  49. data/lib/tasks/pg_objects_tasks.rake +33 -8
  50. data/pg_objects.gemspec +5 -3
  51. metadata +17 -20
  52. data/.github/copilot-instructions.md +0 -131
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8dba1dd358ef2941d67d0ebc28c7536b73fb9bd6a5f512f8005f35ad39f082b4
4
- data.tar.gz: 6921b6e3749670024829fcbc0aac1b342f5042ac40150eaf29f1cf0ac1b0a3e9
3
+ metadata.gz: 1807b3da6b645e40097e8bc76bba2681eba9550b4e0312d2b815e106760afa7d
4
+ data.tar.gz: 12782fe9f8582bf759646c86a2dbfa8fecffab4afc027aea744e11640db389e6
5
5
  SHA512:
6
- metadata.gz: e16f60c1b65d6170c1a32fbfdef574233ea5e1c58a4efa2586326029a7f4cfaef90d713d53150627e8d889027728cb917dc96edbbc5e518aa8992404b6a0d0b6
7
- data.tar.gz: 819a81bbac2a05bff9df66d33c682da12e8603c740895c1f823872f04fc269cc088ff9abf8a4980cac40b74b859e9b38dbb5df40e2f76e74e0f5b811762795df
6
+ metadata.gz: 01b441d4ba5a5dcbb8d753a5550785a8a67de5a97dcf3f94acb58cbe1925885c32a942c6d28a631188d4654f57ec4324795761dca02d32f3385af374d3cca6eb
7
+ data.tar.gz: a20c356f384c0eed96665aa535d33e3521aec5cbdfd13fd486b027427629094d54de8c62b700e2b13513c744f174ae0041fda053224c00d5533a54a211418e97
data/.evilution.yml ADDED
@@ -0,0 +1,74 @@
1
+ # Evilution configuration
2
+ # See: https://github.com/marinazzio/evilution
3
+
4
+ # Per-mutation timeout in seconds (default: 30)
5
+ # timeout: 30
6
+
7
+ # Output format: text or json (default: text)
8
+ # format: text
9
+
10
+ # Minimum mutation score to pass (0.0 to 1.0, default: 0.0)
11
+ # min_score: 0.0
12
+
13
+ # Test integration: rspec, minitest (default: rspec)
14
+ # integration: rspec
15
+
16
+ # Number of parallel workers (default: 1)
17
+ # jobs: 1
18
+
19
+ # Stop after N surviving mutants (default: disabled)
20
+ # fail_fast: 1
21
+
22
+ # Generate concrete test code in suggestions, matching integration (default: false)
23
+ # suggest_tests: false
24
+
25
+ # Skip all string literal mutations inside heredocs (default: false).
26
+ # Useful for Rails apps where heredoc content (SQL, templates, fixtures)
27
+ # rarely has meaningful test coverage and produces noisy survivors.
28
+ # skip_heredoc_literals: true
29
+
30
+ # Opt into the RelatedSpecHeuristic, which appends request/integration/
31
+ # feature/system specs for mutations that touch `.includes(...)` calls
32
+ # (default: false). Off by default because the fan-out can be heavy and
33
+ # push runs over the per-mutation timeout. Enable if you need coverage
34
+ # of N+1 regressions that only surface in higher-level specs.
35
+ # related_specs_heuristic: true
36
+
37
+ # When no matching spec resolves for a mutation's source file, the
38
+ # default is to skip that mutation and mark it :unresolved in the
39
+ # report (a coverage gap signal). Set to true to fall back to running
40
+ # the entire test suite for such mutations instead (slow, high memory).
41
+ # fallback_to_full_suite: false
42
+
43
+ # Preload file required in the parent process before forking workers.
44
+ # For Rails projects, spec/rails_helper.rb or test/test_helper.rb is
45
+ # auto-detected when isolation resolves to :fork. Set to false to disable.
46
+ preload: spec/spec_helper.rb
47
+
48
+ # Hooks: Ruby files returning a Proc, keyed by lifecycle event
49
+ # hooks:
50
+ # worker_process_start: config/evilution_hooks/worker_start.rb
51
+ # mutation_insert_pre: config/evilution_hooks/mutation_pre.rb
52
+
53
+ # Per-mutation example targeting (default: true). When enabled, Evilution
54
+ # parses resolved spec files and restricts each mutation run to examples
55
+ # whose bodies reference the mutated method/class token. Set to false
56
+ # to run every example in the resolved spec files. You can also disable
57
+ # without editing the file by exporting EV_DISABLE_EXAMPLE_TARGETING=1.
58
+ # example_targeting: true
59
+
60
+ # Behavior when targeting finds no matching example (default: full_file).
61
+ # full_file - run every example in the resolved spec files
62
+ # unresolved - mark the mutation :unresolved and skip
63
+ # example_targeting_fallback: full_file
64
+
65
+ # LRU cache bounds for the spec AST parser that powers example targeting.
66
+ # example_targeting_cache:
67
+ # max_files: 50
68
+ # max_blocks: 10000
69
+
70
+ # AST patterns to skip during mutation generation (default: [])
71
+ # See docs/ast_pattern_syntax.md for pattern syntax
72
+ # ignore_patterns:
73
+ # - "call{name=info, receiver=call{name=logger}}"
74
+ # - "call{name=debug|warn}"
@@ -12,7 +12,7 @@ jobs:
12
12
  runs-on: ubuntu-latest
13
13
  strategy:
14
14
  matrix:
15
- ruby-version: ['3.2', '3.3', '3.4', '4.0']
15
+ ruby-version: ['3.3', '3.4', '4.0']
16
16
  steps:
17
17
  - name: Checkout
18
18
  uses: actions/checkout@v4
data/.gitignore CHANGED
@@ -13,3 +13,6 @@
13
13
  # rspec failure tracking
14
14
  .rspec_status
15
15
  *.gem
16
+
17
+ # test-generated SQL fixtures (created/cleaned by FixtureHelpers)
18
+ /spec/fixtures/objects/
data/.rubocop.yml CHANGED
@@ -8,7 +8,7 @@ inherit_from: .rubocop_todo.yml
8
8
 
9
9
  AllCops:
10
10
  # EnabledByDefault: true
11
- TargetRubyVersion: 3.2
11
+ TargetRubyVersion: 3.3
12
12
  # Cop names are not displayed in offense messages by default. Change behavior
13
13
  # by overriding DisplayCopNames, or by giving the -D/--display-cop-names
14
14
  # option.
@@ -186,6 +186,11 @@ RSpec/SpecFilePathFormat:
186
186
  RSpec/SpecFilePathSuffix:
187
187
  Enabled: true
188
188
 
189
+ # Integration specs describe cross-class behaviour, not a single class
190
+ RSpec/DescribeClass:
191
+ Exclude:
192
+ - 'spec/integration/**/*'
193
+
189
194
  # Style #######################################################################
190
195
 
191
196
  Style/AccessorGrouping:
@@ -217,11 +222,17 @@ Style/ExponentialNotation:
217
222
 
218
223
  # Checks if there is a magic comment to enforce string literals
219
224
  Style/FrozenStringLiteralComment:
220
- Enabled: false
225
+ Enabled: true
226
+ EnforcedStyle: always
221
227
 
222
228
  Style/HashAsLastArrayItem:
223
229
  Enabled: true
224
230
 
231
+ # Use explicit named block arguments instead of numbered parameters (_1)
232
+ Style/NumberedParameters:
233
+ EnforcedStyle: disallow
234
+ Enabled: true
235
+
225
236
  Style/HashEachMethods:
226
237
  Enabled: true
227
238
 
data/CHANGELOG.md ADDED
@@ -0,0 +1,78 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ ## [1.5.0] - 2026-07-29
11
+
12
+ ### Added
13
+
14
+ - Multi-database support: `Manager` accepts a `connection:` argument, and the
15
+ rake tasks resolve a connection class from the `PG_OBJECTS_CONNECTION_CLASS`
16
+ environment variable ([#296](https://github.com/marinazzio/pg_objects/issues/296))
17
+ - New parsed object types: enum, range, base and shell `TYPE` variants,
18
+ `DOMAIN` ([#299](https://github.com/marinazzio/pg_objects/issues/299)),
19
+ `EXTENSION`, `INDEX`, `POLICY`, `RULE`, `SEQUENCE`
20
+ ([#300](https://github.com/marinazzio/pg_objects/issues/300))
21
+ - Schema-qualified object names (`schema.name`) recognized in `--!depends_on`
22
+ directives for unambiguous dependency resolution
23
+ - Manual `db:create_objects:before` / `db:create_objects:after` rake tasks and
24
+ the `auto_hook_migrations` / `hook_tasks` settings controlling migration hooks
25
+ - `transactional` setting wrapping each run in a single database transaction
26
+ - Logger severity levels (`info`, `warn`, `error`) with an injectable output
27
+ stream; `error` messages print even in silent mode
28
+ ([#308](https://github.com/marinazzio/pg_objects/issues/308))
29
+ - `MalformedStatementError` for statements whose object name cannot be extracted
30
+ - README sections on supported object types, multiple databases, and re-run
31
+ idempotency patterns ([#307](https://github.com/marinazzio/pg_objects/issues/307))
32
+
33
+ ### Changed
34
+
35
+ - Dependency errors now carry context: `CyclicDependencyError#cycle_path`
36
+ (full A → B → A chain), `AmbiguousDependencyError#candidates`/`#referrer`,
37
+ `DependencyNotExistError#referrer`
38
+ ([#301](https://github.com/marinazzio/pg_objects/issues/301),
39
+ [#302](https://github.com/marinazzio/pg_objects/issues/302),
40
+ [#303](https://github.com/marinazzio/pg_objects/issues/303))
41
+ - YAML configuration loading is deferred to first config access and resolved
42
+ against `Rails.root` when available, fixing preloader/CWD issues
43
+ ([#304](https://github.com/marinazzio/pg_objects/issues/304))
44
+ - Object files are loaded in sorted path order, and the object list is reset on
45
+ each `load_files` call
46
+ - Statement type dispatch refactored from a Try chain to a hash lookup
47
+
48
+ ## [1.4.8] - 2026-05-15
49
+
50
+ ### Added
51
+
52
+ - Mutation testing (Evilution) development configuration
53
+
54
+ ### Changed
55
+
56
+ - Dependency updates
57
+
58
+ ## [1.4.7] - 2026-02-07
59
+
60
+ ### Changed
61
+
62
+ - Dependency updates (notably pg_query 6.2.2 in the development lockfile)
63
+
64
+ ## [1.4.6] - 2026-01-21
65
+
66
+ ### Added
67
+
68
+ - Ruby 4 support
69
+
70
+ ### Changed
71
+
72
+ - Dependency updates
73
+
74
+ [Unreleased]: https://github.com/marinazzio/pg_objects/compare/v1.5.0...HEAD
75
+ [1.5.0]: https://github.com/marinazzio/pg_objects/compare/v1.4.8...v1.5.0
76
+ [1.4.8]: https://github.com/marinazzio/pg_objects/compare/v1.4.7...v1.4.8
77
+ [1.4.7]: https://github.com/marinazzio/pg_objects/compare/v1.4.6...v1.4.7
78
+ [1.4.6]: https://github.com/marinazzio/pg_objects/compare/v1.4.5...v1.4.6
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
5
  gemspec
data/Gemfile.lock CHANGED
@@ -1,12 +1,11 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- pg_objects (1.4.7)
4
+ pg_objects (1.5.0)
5
5
  activerecord (>= 6.1.7.0, < 9)
6
6
  dry-auto_inject (~> 1)
7
7
  dry-configurable (~> 1)
8
- dry-container (= 0.11.0)
9
- dry-monads (~> 1.6)
8
+ dry-container (~> 0.11)
10
9
  memery (>= 1.5, < 1.9)
11
10
  pg_query (>= 5, < 7)
12
11
  railties (>= 4, < 9)
@@ -15,9 +14,9 @@ PATH
15
14
  GEM
16
15
  remote: https://rubygems.org/
17
16
  specs:
18
- actionpack (8.1.2)
19
- actionview (= 8.1.2)
20
- activesupport (= 8.1.2)
17
+ actionpack (8.1.3)
18
+ actionview (= 8.1.3)
19
+ activesupport (= 8.1.3)
21
20
  nokogiri (>= 1.8.5)
22
21
  rack (>= 2.2.4)
23
22
  rack-session (>= 1.0.1)
@@ -25,19 +24,19 @@ GEM
25
24
  rails-dom-testing (~> 2.2)
26
25
  rails-html-sanitizer (~> 1.6)
27
26
  useragent (~> 0.16)
28
- actionview (8.1.2)
29
- activesupport (= 8.1.2)
27
+ actionview (8.1.3)
28
+ activesupport (= 8.1.3)
30
29
  builder (~> 3.1)
31
30
  erubi (~> 1.11)
32
31
  rails-dom-testing (~> 2.2)
33
32
  rails-html-sanitizer (~> 1.6)
34
- activemodel (8.1.2)
35
- activesupport (= 8.1.2)
36
- activerecord (8.1.2)
37
- activemodel (= 8.1.2)
38
- activesupport (= 8.1.2)
33
+ activemodel (8.1.3)
34
+ activesupport (= 8.1.3)
35
+ activerecord (8.1.3)
36
+ activemodel (= 8.1.3)
37
+ activesupport (= 8.1.3)
39
38
  timeout (>= 0.4.0)
40
- activesupport (8.1.2)
39
+ activesupport (8.1.3)
41
40
  base64
42
41
  bigdecimal
43
42
  concurrent-ruby (~> 1.0, >= 1.3.1)
@@ -53,8 +52,8 @@ GEM
53
52
  ast (2.4.3)
54
53
  base64 (0.3.0)
55
54
  benchmark (0.5.0)
56
- bigdecimal (4.0.1)
57
- binding_of_caller (1.0.1)
55
+ bigdecimal (4.1.2)
56
+ binding_of_caller (2.0.0)
58
57
  debug_inspector (>= 1.2.0)
59
58
  builder (3.3.0)
60
59
  bundler-audit (0.9.3)
@@ -63,18 +62,17 @@ GEM
63
62
  byebug (13.0.0)
64
63
  reline (>= 0.6.0)
65
64
  coderay (1.1.3)
66
- concurrent-ruby (1.3.6)
65
+ concurrent-ruby (1.3.7)
67
66
  connection_pool (3.0.2)
68
- crass (1.0.6)
69
- date (3.5.1)
67
+ crass (1.0.7)
70
68
  debug_inspector (1.2.0)
71
69
  diff-lcs (1.6.2)
72
70
  drb (2.2.3)
73
- dry-auto_inject (1.1.0)
71
+ dry-auto_inject (1.2.1)
74
72
  dry-core (~> 1.1)
75
73
  zeitwerk (~> 2.6)
76
- dry-configurable (1.3.0)
77
- dry-core (~> 1.1)
74
+ dry-configurable (1.4.0)
75
+ dry-core (~> 1.0)
78
76
  zeitwerk (~> 2.6)
79
77
  dry-container (0.11.0)
80
78
  concurrent-ruby (~> 1.0)
@@ -82,58 +80,74 @@ GEM
82
80
  concurrent-ruby (~> 1.0)
83
81
  logger
84
82
  zeitwerk (~> 2.6)
85
- dry-monads (1.9.0)
86
- concurrent-ruby (~> 1.0)
87
- dry-core (~> 1.1)
88
- zeitwerk (~> 2.6)
89
- erb (6.0.1)
83
+ erb (6.0.4)
90
84
  erubi (1.13.1)
91
- faker (3.6.0)
85
+ faker (3.8.0)
92
86
  i18n (>= 1.8.11, < 2)
93
- google-protobuf (4.33.5)
87
+ google-protobuf (4.35.1)
88
+ bigdecimal
89
+ rake (~> 13.3)
90
+ google-protobuf (4.35.1-aarch64-linux-gnu)
91
+ bigdecimal
92
+ rake (~> 13.3)
93
+ google-protobuf (4.35.1-aarch64-linux-musl)
94
94
  bigdecimal
95
- rake (>= 13)
96
- i18n (1.14.8)
95
+ rake (~> 13.3)
96
+ google-protobuf (4.35.1-arm64-darwin)
97
+ bigdecimal
98
+ rake (~> 13.3)
99
+ google-protobuf (4.35.1-x86_64-darwin)
100
+ bigdecimal
101
+ rake (~> 13.3)
102
+ google-protobuf (4.35.1-x86_64-linux-gnu)
103
+ bigdecimal
104
+ rake (~> 13.3)
105
+ google-protobuf (4.35.1-x86_64-linux-musl)
106
+ bigdecimal
107
+ rake (~> 13.3)
108
+ i18n (1.15.2)
97
109
  concurrent-ruby (~> 1.0)
98
110
  io-console (0.8.2)
99
- irb (1.16.0)
111
+ irb (1.18.0)
100
112
  pp (>= 0.6.0)
113
+ prism (>= 1.3.0)
101
114
  rdoc (>= 4.0.0)
102
115
  reline (>= 0.4.2)
103
- json (2.18.0)
104
- language_server-protocol (3.17.0.5)
116
+ json (2.21.1)
117
+ language_server-protocol (3.17.0.6)
105
118
  lint_roller (1.1.0)
106
119
  logger (1.7.0)
107
- loofah (2.25.0)
120
+ loofah (2.25.2)
108
121
  crass (~> 1.0.2)
109
122
  nokogiri (>= 1.12.0)
110
123
  memery (1.8.0)
111
124
  method_source (1.1.0)
112
- minitest (6.0.1)
125
+ minitest (6.0.6)
126
+ drb (~> 2.0)
113
127
  prism (~> 1.5)
114
- nokogiri (1.19.0-aarch64-linux-gnu)
128
+ nokogiri (1.19.4-aarch64-linux-gnu)
115
129
  racc (~> 1.4)
116
- nokogiri (1.19.0-aarch64-linux-musl)
130
+ nokogiri (1.19.4-aarch64-linux-musl)
117
131
  racc (~> 1.4)
118
- nokogiri (1.19.0-arm-linux-gnu)
132
+ nokogiri (1.19.4-arm-linux-gnu)
119
133
  racc (~> 1.4)
120
- nokogiri (1.19.0-arm-linux-musl)
134
+ nokogiri (1.19.4-arm-linux-musl)
121
135
  racc (~> 1.4)
122
- nokogiri (1.19.0-arm64-darwin)
136
+ nokogiri (1.19.4-arm64-darwin)
123
137
  racc (~> 1.4)
124
- nokogiri (1.19.0-x86_64-darwin)
138
+ nokogiri (1.19.4-x86_64-darwin)
125
139
  racc (~> 1.4)
126
- nokogiri (1.19.0-x86_64-linux-gnu)
140
+ nokogiri (1.19.4-x86_64-linux-gnu)
127
141
  racc (~> 1.4)
128
- nokogiri (1.19.0-x86_64-linux-musl)
142
+ nokogiri (1.19.4-x86_64-linux-musl)
129
143
  racc (~> 1.4)
130
- parallel (1.27.0)
131
- parser (3.3.10.1)
144
+ parallel (2.1.0)
145
+ parser (3.3.11.1)
132
146
  ast (~> 2.4.1)
133
147
  racc
134
148
  pg_query (6.2.2)
135
149
  google-protobuf (>= 3.25.3)
136
- pp (0.6.3)
150
+ pp (0.6.4)
137
151
  prettyprint
138
152
  prettyprint (0.2.0)
139
153
  prism (1.9.0)
@@ -148,12 +162,9 @@ GEM
148
162
  pry-byebug (3.12.0)
149
163
  byebug (~> 13.0)
150
164
  pry (>= 0.13, < 0.17)
151
- psych (5.3.1)
152
- date
153
- stringio
154
165
  racc (1.8.1)
155
- rack (3.2.4)
156
- rack-session (2.1.1)
166
+ rack (3.2.6)
167
+ rack-session (2.1.2)
157
168
  base64 (>= 0.1.0)
158
169
  rack (>= 3.0.0)
159
170
  rack-test (2.2.0)
@@ -164,12 +175,12 @@ GEM
164
175
  activesupport (>= 5.0.0)
165
176
  minitest
166
177
  nokogiri (>= 1.6)
167
- rails-html-sanitizer (1.6.2)
168
- loofah (~> 2.21)
178
+ rails-html-sanitizer (1.7.1)
179
+ loofah (~> 2.25, >= 2.25.2)
169
180
  nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0)
170
- railties (8.1.2)
171
- actionpack (= 8.1.2)
172
- activesupport (= 8.1.2)
181
+ railties (8.1.3)
182
+ actionpack (= 8.1.3)
183
+ activesupport (= 8.1.3)
173
184
  irb (~> 1.13)
174
185
  rackup (>= 1.0.0)
175
186
  rake (>= 12.2)
@@ -177,17 +188,23 @@ GEM
177
188
  tsort (>= 0.2)
178
189
  zeitwerk (~> 2.6)
179
190
  rainbow (3.1.1)
180
- rake (13.3.1)
191
+ rake (13.4.2)
181
192
  rake-hooks (1.2.3)
182
193
  rake
183
- rdoc (7.1.0)
194
+ rbs (4.0.3)
195
+ logger
196
+ prism (>= 1.6.0)
197
+ tsort
198
+ rdoc (8.0.0)
184
199
  erb
185
- psych (>= 4.0.0)
200
+ prism (>= 1.6.0)
201
+ rbs (>= 4.0.0)
186
202
  tsort
187
- regexp_parser (2.11.3)
203
+ regexp_parser (2.12.0)
188
204
  reline (0.6.3)
189
205
  io-console (~> 0.5)
190
- rouge (4.7.0)
206
+ rouge (5.0.0)
207
+ strscan (~> 3.1)
191
208
  rspec (3.13.2)
192
209
  rspec-core (~> 3.13.0)
193
210
  rspec-expectations (~> 3.13.0)
@@ -197,37 +214,37 @@ GEM
197
214
  rspec-expectations (3.13.5)
198
215
  diff-lcs (>= 1.2.0, < 2.0)
199
216
  rspec-support (~> 3.13.0)
200
- rspec-mocks (3.13.7)
217
+ rspec-mocks (3.13.8)
201
218
  diff-lcs (>= 1.2.0, < 2.0)
202
219
  rspec-support (~> 3.13.0)
203
220
  rspec-parameterized (2.0.1)
204
221
  rspec-parameterized-core (>= 2, < 3)
205
222
  rspec-parameterized-table_syntax (>= 2, < 3)
206
- rspec-parameterized-core (2.0.1)
223
+ rspec-parameterized-core (2.0.2)
207
224
  parser
208
225
  prism
209
226
  proc_to_ast (>= 0.2.0)
210
227
  rspec (>= 2.13, < 4)
211
228
  unparser
212
- rspec-parameterized-table_syntax (2.1.0)
213
- binding_of_caller
229
+ rspec-parameterized-table_syntax (2.1.1)
230
+ binding_of_caller (>= 2)
214
231
  rspec-parameterized-core (>= 2, < 3)
215
- rspec-support (3.13.6)
216
- rubocop (1.84.1)
232
+ rspec-support (3.13.7)
233
+ rubocop (1.88.2)
217
234
  json (~> 2.3)
218
235
  language_server-protocol (~> 3.17.0.2)
219
236
  lint_roller (~> 1.1.0)
220
- parallel (~> 1.10)
237
+ parallel (>= 1.10)
221
238
  parser (>= 3.3.0.2)
222
239
  rainbow (>= 2.2.2, < 4.0)
223
240
  regexp_parser (>= 2.9.3, < 3.0)
224
241
  rubocop-ast (>= 1.49.0, < 2.0)
225
242
  ruby-progressbar (~> 1.7)
226
243
  unicode-display_width (>= 2.4.0, < 4.0)
227
- rubocop-ast (1.49.0)
244
+ rubocop-ast (1.50.0)
228
245
  parser (>= 3.3.7.2)
229
246
  prism (~> 1.7)
230
- rubocop-rails (2.34.3)
247
+ rubocop-rails (2.36.0)
231
248
  activesupport (>= 4.2.0)
232
249
  lint_roller (~> 1.1)
233
250
  rack (>= 1.1)
@@ -236,27 +253,28 @@ GEM
236
253
  rubocop-rake (0.7.1)
237
254
  lint_roller (~> 1.1)
238
255
  rubocop (>= 1.72.1)
239
- rubocop-rspec (3.9.0)
256
+ rubocop-rspec (3.10.2)
240
257
  lint_roller (~> 1.1)
241
- rubocop (~> 1.81)
258
+ regexp_parser (>= 2.0)
259
+ rubocop (~> 1.86, >= 1.86.2)
242
260
  ruby-progressbar (1.13.0)
243
261
  securerandom (0.4.1)
244
- stringio (3.2.0)
262
+ strscan (3.1.8)
245
263
  thor (1.5.0)
246
- timeout (0.6.0)
264
+ timeout (0.6.1)
247
265
  tsort (0.2.0)
248
266
  tzinfo (2.0.6)
249
267
  concurrent-ruby (~> 1.0)
250
268
  unicode-display_width (3.2.0)
251
269
  unicode-emoji (~> 4.1)
252
270
  unicode-emoji (4.2.0)
253
- unparser (0.8.1)
254
- diff-lcs (~> 1.6)
271
+ unparser (0.9.0)
272
+ diff-lcs (>= 1.6, < 3)
255
273
  parser (>= 3.3.0)
256
274
  prism (>= 1.5.1)
257
275
  uri (1.1.1)
258
276
  useragent (0.16.11)
259
- zeitwerk (2.7.4)
277
+ zeitwerk (2.8.2)
260
278
 
261
279
  PLATFORMS
262
280
  aarch64-linux