jpie 0.4.4 → 1.0.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 (89) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +21 -0
  3. data/.rspec +3 -0
  4. data/.rubocop.yml +35 -110
  5. data/.travis.yml +7 -0
  6. data/Gemfile +21 -0
  7. data/Gemfile.lock +312 -0
  8. data/README.md +2072 -140
  9. data/Rakefile +3 -14
  10. data/bin/console +15 -0
  11. data/bin/setup +8 -0
  12. data/jpie.gemspec +18 -35
  13. data/kiln/app/resources/user_message_resource.rb +2 -0
  14. data/lib/jpie.rb +3 -28
  15. data/lib/json_api/active_storage/deserialization.rb +106 -0
  16. data/lib/json_api/active_storage/detection.rb +74 -0
  17. data/lib/json_api/active_storage/serialization.rb +32 -0
  18. data/lib/json_api/configuration.rb +58 -0
  19. data/lib/json_api/controllers/base_controller.rb +26 -0
  20. data/lib/json_api/controllers/concerns/controller_helpers.rb +223 -0
  21. data/lib/json_api/controllers/concerns/resource_actions.rb +657 -0
  22. data/lib/json_api/controllers/relationships_controller.rb +504 -0
  23. data/lib/json_api/controllers/resources_controller.rb +6 -0
  24. data/lib/json_api/errors/parameter_not_allowed.rb +19 -0
  25. data/lib/json_api/railtie.rb +75 -0
  26. data/lib/json_api/resources/active_storage_blob_resource.rb +11 -0
  27. data/lib/json_api/resources/resource.rb +238 -0
  28. data/lib/json_api/resources/resource_loader.rb +35 -0
  29. data/lib/json_api/routing.rb +72 -0
  30. data/lib/json_api/serialization/deserializer.rb +362 -0
  31. data/lib/json_api/serialization/serializer.rb +320 -0
  32. data/lib/json_api/support/active_storage_support.rb +85 -0
  33. data/lib/json_api/support/collection_query.rb +406 -0
  34. data/lib/json_api/support/instrumentation.rb +42 -0
  35. data/lib/json_api/support/param_helpers.rb +51 -0
  36. data/lib/json_api/support/relationship_guard.rb +16 -0
  37. data/lib/json_api/support/relationship_helpers.rb +74 -0
  38. data/lib/json_api/support/resource_identifier.rb +87 -0
  39. data/lib/json_api/support/responders.rb +100 -0
  40. data/lib/json_api/support/response_helpers.rb +10 -0
  41. data/lib/json_api/support/sort_parsing.rb +21 -0
  42. data/lib/json_api/support/type_conversion.rb +21 -0
  43. data/lib/json_api/testing/test_helper.rb +76 -0
  44. data/lib/json_api/testing.rb +3 -0
  45. data/lib/{jpie → json_api}/version.rb +2 -2
  46. data/lib/json_api.rb +50 -0
  47. data/lib/rubocop/cop/custom/hash_value_omission.rb +53 -0
  48. metadata +50 -167
  49. data/.cursor/rules/dependencies.mdc +0 -19
  50. data/.cursor/rules/examples.mdc +0 -16
  51. data/.cursor/rules/git.mdc +0 -14
  52. data/.cursor/rules/project_structure.mdc +0 -30
  53. data/.cursor/rules/security.mdc +0 -14
  54. data/.cursor/rules/style.mdc +0 -15
  55. data/.cursor/rules/testing.mdc +0 -16
  56. data/.overcommit.yml +0 -35
  57. data/CHANGELOG.md +0 -164
  58. data/LICENSE.txt +0 -21
  59. data/examples/basic_example.md +0 -146
  60. data/examples/including_related_resources.md +0 -491
  61. data/examples/pagination.md +0 -303
  62. data/examples/relationships.md +0 -114
  63. data/examples/resource_attribute_configuration.md +0 -147
  64. data/examples/resource_meta_configuration.md +0 -244
  65. data/examples/single_table_inheritance.md +0 -160
  66. data/lib/jpie/configuration.rb +0 -12
  67. data/lib/jpie/controller/crud_actions.rb +0 -141
  68. data/lib/jpie/controller/error_handling/handler_setup.rb +0 -124
  69. data/lib/jpie/controller/error_handling/handlers.rb +0 -109
  70. data/lib/jpie/controller/error_handling.rb +0 -23
  71. data/lib/jpie/controller/json_api_validation.rb +0 -193
  72. data/lib/jpie/controller/parameter_parsing.rb +0 -78
  73. data/lib/jpie/controller/related_actions.rb +0 -45
  74. data/lib/jpie/controller/relationship_actions.rb +0 -291
  75. data/lib/jpie/controller/relationship_validation.rb +0 -117
  76. data/lib/jpie/controller/rendering.rb +0 -154
  77. data/lib/jpie/controller.rb +0 -45
  78. data/lib/jpie/deserializer.rb +0 -110
  79. data/lib/jpie/errors.rb +0 -117
  80. data/lib/jpie/generators/resource_generator.rb +0 -116
  81. data/lib/jpie/generators/templates/resource.rb.erb +0 -31
  82. data/lib/jpie/railtie.rb +0 -42
  83. data/lib/jpie/resource/attributable.rb +0 -112
  84. data/lib/jpie/resource/inferrable.rb +0 -43
  85. data/lib/jpie/resource/sortable.rb +0 -93
  86. data/lib/jpie/resource.rb +0 -147
  87. data/lib/jpie/routing.rb +0 -59
  88. data/lib/jpie/rspec.rb +0 -71
  89. data/lib/jpie/serializer.rb +0 -205
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8d3cbfd72c12a023879f10c3314c321bf0210c861cffd838dc860d0497b53ae5
4
- data.tar.gz: c8caf96a60fe557f7f07ce74e9cb725370b2d410856e33c2138f0bef7f1ba141
3
+ metadata.gz: 62171c1b27fad940974c76392b5ca259c829cb798e9fd05800fb2fcc4c161da5
4
+ data.tar.gz: f870d74a22aea2d9cf754991f540c5e65dceda51196ba93f51ebffc0a6eb5de2
5
5
  SHA512:
6
- metadata.gz: dd2a288d7526fd45c3f2a30881019656a0772942d83f208e9a031d976223a8497ea29f00295d37d2c045805dae791a79f2d6d6be5c1835007dfd9ba1b6b8b4c2
7
- data.tar.gz: 99a5f5e5fb484a394ce36c6ac9f5635c2f06c820dc6c41f16d89903e7135fde2b1e32d6a1a7df5277ee3ee3f248b15651a1353fb83315e96c9525a47b8638221
6
+ metadata.gz: 3b2f514c5b3e1c722b47087805a8c99c8c81bbca4dc6b8fec11efaef88f66f31d8e35fda7d9a8872da87fc50e165830ef3e76f6a74398e61508263d0727acb3f
7
+ data.tar.gz: 60e0ebca7e4505952920df86905b142ba051d8720ec29583a119a0d204626f19141f4eeb0c3f26df6828a9751b0ce23908093fcceb14589868829bc1c2aa9b3f
data/.gitignore ADDED
@@ -0,0 +1,21 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /_yardoc/
4
+ /coverage/
5
+ /doc/
6
+ /pkg/
7
+ /spec/reports/
8
+ /tmp/
9
+
10
+ # Gem builds
11
+ *.gem
12
+
13
+ # rspec failure tracking
14
+ .rspec_status
15
+
16
+ # test log files
17
+ spec/dummy/log/*.log
18
+ spec/dummy/log/*.log.*
19
+
20
+ # dummy app tmp directory
21
+ spec/dummy/tmp/
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --format documentation
2
+ --color
3
+ --require spec_helper
data/.rubocop.yml CHANGED
@@ -1,140 +1,65 @@
1
- # frozen_string_literal: true
2
-
3
1
  require:
4
- - rubocop-performance
5
- - rubocop-rails
6
- - rubocop-rspec
2
+ - ./lib/rubocop/cop/custom/hash_value_omission.rb
7
3
 
8
4
  AllCops:
9
- TargetRubyVersion: 3.4
10
- TargetRailsVersion: 8.0
11
5
  NewCops: enable
6
+ TargetRubyVersion: 3.4
7
+ SuggestExtensions: false
12
8
  Exclude:
13
- - 'vendor/**/*'
14
- - 'bin/**/*'
15
- - 'db/schema.rb'
16
- - 'tmp/**/*'
17
- - 'spec/examples.txt'
9
+ - "vendor/**/*"
10
+ - "tmp/**/*"
11
+ - "spec/dummy/**/*"
12
+ - "**/*.gemspec"
18
13
 
19
- Layout/LineLength:
20
- Max: 120
21
- AllowedPatterns: ['\A\s*#']
22
-
23
- Style/Documentation:
14
+ Gemspec/DevelopmentDependencies:
24
15
  Enabled: false
25
16
 
26
- Style/StringLiterals:
27
- EnforcedStyle: single_quotes
28
-
29
- Style/StringLiteralsInInterpolation:
30
- EnforcedStyle: single_quotes
31
-
32
- # Naming cops
33
- Naming/PredicateName:
34
- AllowedMethods:
35
- - has_many # DSL method for defining relationships
36
- - has_one # DSL method for defining relationships
37
-
38
- Metrics/ClassLength:
39
- Max: 150
40
-
41
- Metrics/ModuleLength:
42
- Max: 150
43
-
44
- Metrics/MethodLength:
45
- Max: 20
17
+ Metrics/AbcSize:
18
+ Enabled: false
46
19
 
47
20
  Metrics/BlockLength:
48
- Exclude:
49
- - 'spec/**/*'
50
- - '*.gemspec'
51
- - 'lib/jpie/resource/**/*' # Resource modules have large class_methods blocks for DSL methods
52
- - 'lib/jpie/controller/**/*' # Controller modules have large class_methods blocks for DSL methods
53
-
54
- # Rails cops that don't apply to our gem
55
- Rails/TimeZone:
56
21
  Enabled: false
57
22
 
58
- Rails/ApplicationRecord:
23
+ Metrics/BlockNesting:
59
24
  Enabled: false
60
25
 
61
- # Gemspec cops that are acceptable for gems
62
- Gemspec/DevelopmentDependencies:
26
+ Metrics/ClassLength:
63
27
  Enabled: false
64
28
 
65
- # Capybara cops that are causing issues (rubocop bug)
66
- Capybara/RSpec/PredicateMatcher:
29
+ Metrics/CollectionLiteralLength:
67
30
  Enabled: false
68
31
 
69
- # RSpec cops that are acceptable for our test style
70
- RSpec/ExampleLength:
71
- Max: 30
72
-
73
- RSpec/MultipleExpectations:
74
- Max: 8 # Allow more expectations for complex integration tests
32
+ Metrics/CyclomaticComplexity:
33
+ Enabled: true
34
+ Max: 7
75
35
 
76
- RSpec/MultipleMemoizedHelpers:
77
- Max: 20 # Allow more helpers for complex test scenarios
78
-
79
- RSpec/NestedGroups:
80
- Max: 4
81
-
82
- RSpec/DescribeClass:
83
- Exclude:
84
- - 'spec/**/*_integration_spec.rb'
85
- - 'spec/**/*_spec.rb' # Allow integration and feature tests without class specification
86
-
87
- RSpec/ContextWording:
88
- Enabled: false # Allow flexible context descriptions for better readability
89
-
90
- RSpec/IndexedLet:
91
- Enabled: false # Allow indexed let statements for test data setup
92
-
93
- RSpec/LetSetup:
94
- Enabled: false # Allow let! for test data setup
95
-
96
- RSpec/StubbedMock:
97
- Enabled: false # Allow expect().to receive for test clarity
98
-
99
- RSpec/IteratedExpectation:
100
- Enabled: false # Allow iteration over arrays in tests
101
-
102
- RSpec/InstanceVariable:
103
- Enabled: false # Allow instance variables in tests for setup
36
+ Metrics/MethodLength:
37
+ Enabled: true
38
+ Max: 10
104
39
 
105
- RSpec/FilePath:
106
- Enabled: false
40
+ Metrics/ModuleLength:
41
+ Enabled: true
42
+ Max: 150
107
43
 
108
- RSpec/SpecFilePathFormat:
109
- Enabled: false
44
+ Metrics/ParameterLists:
45
+ Enabled: true
46
+ Max: 5
110
47
 
111
- RSpec/MultipleDescribes:
112
- Enabled: false
48
+ Metrics/PerceivedComplexity:
49
+ Enabled: true
50
+ Max: 8
113
51
 
114
- RSpec/LeakyConstantDeclaration:
52
+ Naming/PredicatePrefix:
115
53
  Enabled: false
116
54
 
117
- RSpec/VerifiedDoubles:
55
+ Style/Documentation:
118
56
  Enabled: false
119
57
 
120
- RSpec/MessageSpies:
58
+ Style/DocumentationMethod:
121
59
  Enabled: false
122
60
 
123
- # Style cops that are acceptable for test code
124
- Style/OpenStructUse:
125
- Exclude:
126
- - 'spec/**/*'
127
-
128
- # Lint cops that are acceptable for test initialization methods
129
- Lint/MissingSuper:
130
- Exclude:
131
- - 'spec/**/*'
132
-
133
- Lint/ConstantDefinitionInBlock:
134
- Exclude:
135
- - 'spec/**/*'
61
+ Style/StringLiterals:
62
+ EnforcedStyle: double_quotes
136
63
 
137
- # Rails cops that we can ignore in test support files
138
- Rails/SkipsModelValidations:
139
- Exclude:
140
- - 'spec/**/*'
64
+ Custom/HashValueOmission:
65
+ Enabled: true
data/.travis.yml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ sudo: false
3
+ language: ruby
4
+ cache: bundler
5
+ rvm:
6
+ - 2.6.10
7
+ before_install: gem install bundler -v 1.17.2
data/Gemfile ADDED
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+
5
+ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
6
+
7
+ # Specify your gem's dependencies in json_api.gemspec
8
+ gemspec
9
+
10
+ group :development, :test do
11
+ gem 'appraisal', '~> 2.4'
12
+ gem 'bundler', '~> 2.0'
13
+ gem 'json_schemer', '~> 2.4'
14
+ gem 'pundit', '~> 2.3'
15
+ gem 'rake', '~> 13.0'
16
+ gem 'rspec', '~> 3.12'
17
+ gem 'rspec-rails', '~> 6.0'
18
+ gem 'rubocop', '~> 1.0'
19
+ gem 'rubocop-rails', '~> 2.0'
20
+ gem 'sqlite3', '>= 2.1'
21
+ end
data/Gemfile.lock ADDED
@@ -0,0 +1,312 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ jpie (0.1.0)
5
+ actionpack (~> 8.0, >= 8.0.0)
6
+ rails (~> 8.0, >= 8.0.0)
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ action_text-trix (2.1.15)
12
+ railties
13
+ actioncable (8.1.1)
14
+ actionpack (= 8.1.1)
15
+ activesupport (= 8.1.1)
16
+ nio4r (~> 2.0)
17
+ websocket-driver (>= 0.6.1)
18
+ zeitwerk (~> 2.6)
19
+ actionmailbox (8.1.1)
20
+ actionpack (= 8.1.1)
21
+ activejob (= 8.1.1)
22
+ activerecord (= 8.1.1)
23
+ activestorage (= 8.1.1)
24
+ activesupport (= 8.1.1)
25
+ mail (>= 2.8.0)
26
+ actionmailer (8.1.1)
27
+ actionpack (= 8.1.1)
28
+ actionview (= 8.1.1)
29
+ activejob (= 8.1.1)
30
+ activesupport (= 8.1.1)
31
+ mail (>= 2.8.0)
32
+ rails-dom-testing (~> 2.2)
33
+ actionpack (8.1.1)
34
+ actionview (= 8.1.1)
35
+ activesupport (= 8.1.1)
36
+ nokogiri (>= 1.8.5)
37
+ rack (>= 2.2.4)
38
+ rack-session (>= 1.0.1)
39
+ rack-test (>= 0.6.3)
40
+ rails-dom-testing (~> 2.2)
41
+ rails-html-sanitizer (~> 1.6)
42
+ useragent (~> 0.16)
43
+ actiontext (8.1.1)
44
+ action_text-trix (~> 2.1.15)
45
+ actionpack (= 8.1.1)
46
+ activerecord (= 8.1.1)
47
+ activestorage (= 8.1.1)
48
+ activesupport (= 8.1.1)
49
+ globalid (>= 0.6.0)
50
+ nokogiri (>= 1.8.5)
51
+ actionview (8.1.1)
52
+ activesupport (= 8.1.1)
53
+ builder (~> 3.1)
54
+ erubi (~> 1.11)
55
+ rails-dom-testing (~> 2.2)
56
+ rails-html-sanitizer (~> 1.6)
57
+ activejob (8.1.1)
58
+ activesupport (= 8.1.1)
59
+ globalid (>= 0.3.6)
60
+ activemodel (8.1.1)
61
+ activesupport (= 8.1.1)
62
+ activerecord (8.1.1)
63
+ activemodel (= 8.1.1)
64
+ activesupport (= 8.1.1)
65
+ timeout (>= 0.4.0)
66
+ activestorage (8.1.1)
67
+ actionpack (= 8.1.1)
68
+ activejob (= 8.1.1)
69
+ activerecord (= 8.1.1)
70
+ activesupport (= 8.1.1)
71
+ marcel (~> 1.0)
72
+ activesupport (8.1.1)
73
+ base64
74
+ bigdecimal
75
+ concurrent-ruby (~> 1.0, >= 1.3.1)
76
+ connection_pool (>= 2.2.5)
77
+ drb
78
+ i18n (>= 1.6, < 2)
79
+ json
80
+ logger (>= 1.4.2)
81
+ minitest (>= 5.1)
82
+ securerandom (>= 0.3)
83
+ tzinfo (~> 2.0, >= 2.0.5)
84
+ uri (>= 0.13.1)
85
+ appraisal (2.5.0)
86
+ bundler
87
+ rake
88
+ thor (>= 0.14.0)
89
+ ast (2.4.3)
90
+ base64 (0.3.0)
91
+ bigdecimal (3.3.1)
92
+ builder (3.3.0)
93
+ concurrent-ruby (1.3.5)
94
+ connection_pool (2.5.4)
95
+ crass (1.0.6)
96
+ date (3.5.0)
97
+ diff-lcs (1.6.2)
98
+ drb (2.2.3)
99
+ erb (6.0.0)
100
+ erubi (1.13.1)
101
+ globalid (1.3.0)
102
+ activesupport (>= 6.1)
103
+ hana (1.3.7)
104
+ i18n (1.14.7)
105
+ concurrent-ruby (~> 1.0)
106
+ io-console (0.8.1)
107
+ irb (1.15.3)
108
+ pp (>= 0.6.0)
109
+ rdoc (>= 4.0.0)
110
+ reline (>= 0.4.2)
111
+ json (2.16.0)
112
+ json_schemer (2.4.0)
113
+ bigdecimal
114
+ hana (~> 1.3)
115
+ regexp_parser (~> 2.0)
116
+ simpleidn (~> 0.2)
117
+ language_server-protocol (3.17.0.5)
118
+ lint_roller (1.1.0)
119
+ logger (1.7.0)
120
+ loofah (2.24.1)
121
+ crass (~> 1.0.2)
122
+ nokogiri (>= 1.12.0)
123
+ mail (2.9.0)
124
+ logger
125
+ mini_mime (>= 0.1.1)
126
+ net-imap
127
+ net-pop
128
+ net-smtp
129
+ marcel (1.1.0)
130
+ mini_mime (1.1.5)
131
+ minitest (5.26.2)
132
+ net-imap (0.5.12)
133
+ date
134
+ net-protocol
135
+ net-pop (0.1.2)
136
+ net-protocol
137
+ net-protocol (0.2.2)
138
+ timeout
139
+ net-smtp (0.5.1)
140
+ net-protocol
141
+ nio4r (2.7.5)
142
+ nokogiri (1.18.10-aarch64-linux-gnu)
143
+ racc (~> 1.4)
144
+ nokogiri (1.18.10-aarch64-linux-musl)
145
+ racc (~> 1.4)
146
+ nokogiri (1.18.10-arm-linux-gnu)
147
+ racc (~> 1.4)
148
+ nokogiri (1.18.10-arm-linux-musl)
149
+ racc (~> 1.4)
150
+ nokogiri (1.18.10-arm64-darwin)
151
+ racc (~> 1.4)
152
+ nokogiri (1.18.10-x86_64-darwin)
153
+ racc (~> 1.4)
154
+ nokogiri (1.18.10-x86_64-linux-gnu)
155
+ racc (~> 1.4)
156
+ nokogiri (1.18.10-x86_64-linux-musl)
157
+ racc (~> 1.4)
158
+ parallel (1.27.0)
159
+ parser (3.3.10.0)
160
+ ast (~> 2.4.1)
161
+ racc
162
+ pp (0.6.3)
163
+ prettyprint
164
+ prettyprint (0.2.0)
165
+ prism (1.6.0)
166
+ psych (5.2.6)
167
+ date
168
+ stringio
169
+ pundit (2.5.2)
170
+ activesupport (>= 3.0.0)
171
+ racc (1.8.1)
172
+ rack (3.2.4)
173
+ rack-session (2.1.1)
174
+ base64 (>= 0.1.0)
175
+ rack (>= 3.0.0)
176
+ rack-test (2.2.0)
177
+ rack (>= 1.3)
178
+ rackup (2.2.1)
179
+ rack (>= 3)
180
+ rails (8.1.1)
181
+ actioncable (= 8.1.1)
182
+ actionmailbox (= 8.1.1)
183
+ actionmailer (= 8.1.1)
184
+ actionpack (= 8.1.1)
185
+ actiontext (= 8.1.1)
186
+ actionview (= 8.1.1)
187
+ activejob (= 8.1.1)
188
+ activemodel (= 8.1.1)
189
+ activerecord (= 8.1.1)
190
+ activestorage (= 8.1.1)
191
+ activesupport (= 8.1.1)
192
+ bundler (>= 1.15.0)
193
+ railties (= 8.1.1)
194
+ rails-dom-testing (2.3.0)
195
+ activesupport (>= 5.0.0)
196
+ minitest
197
+ nokogiri (>= 1.6)
198
+ rails-html-sanitizer (1.6.2)
199
+ loofah (~> 2.21)
200
+ 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)
201
+ railties (8.1.1)
202
+ actionpack (= 8.1.1)
203
+ activesupport (= 8.1.1)
204
+ irb (~> 1.13)
205
+ rackup (>= 1.0.0)
206
+ rake (>= 12.2)
207
+ thor (~> 1.0, >= 1.2.2)
208
+ tsort (>= 0.2)
209
+ zeitwerk (~> 2.6)
210
+ rainbow (3.1.1)
211
+ rake (13.3.1)
212
+ rdoc (6.15.1)
213
+ erb
214
+ psych (>= 4.0.0)
215
+ tsort
216
+ regexp_parser (2.11.3)
217
+ reline (0.6.3)
218
+ io-console (~> 0.5)
219
+ rspec (3.13.2)
220
+ rspec-core (~> 3.13.0)
221
+ rspec-expectations (~> 3.13.0)
222
+ rspec-mocks (~> 3.13.0)
223
+ rspec-core (3.13.6)
224
+ rspec-support (~> 3.13.0)
225
+ rspec-expectations (3.13.5)
226
+ diff-lcs (>= 1.2.0, < 2.0)
227
+ rspec-support (~> 3.13.0)
228
+ rspec-mocks (3.13.7)
229
+ diff-lcs (>= 1.2.0, < 2.0)
230
+ rspec-support (~> 3.13.0)
231
+ rspec-rails (6.1.5)
232
+ actionpack (>= 6.1)
233
+ activesupport (>= 6.1)
234
+ railties (>= 6.1)
235
+ rspec-core (~> 3.13)
236
+ rspec-expectations (~> 3.13)
237
+ rspec-mocks (~> 3.13)
238
+ rspec-support (~> 3.13)
239
+ rspec-support (3.13.6)
240
+ rubocop (1.81.7)
241
+ json (~> 2.3)
242
+ language_server-protocol (~> 3.17.0.2)
243
+ lint_roller (~> 1.1.0)
244
+ parallel (~> 1.10)
245
+ parser (>= 3.3.0.2)
246
+ rainbow (>= 2.2.2, < 4.0)
247
+ regexp_parser (>= 2.9.3, < 3.0)
248
+ rubocop-ast (>= 1.47.1, < 2.0)
249
+ ruby-progressbar (~> 1.7)
250
+ unicode-display_width (>= 2.4.0, < 4.0)
251
+ rubocop-ast (1.48.0)
252
+ parser (>= 3.3.7.2)
253
+ prism (~> 1.4)
254
+ rubocop-rails (2.34.0)
255
+ activesupport (>= 4.2.0)
256
+ lint_roller (~> 1.1)
257
+ rack (>= 1.1)
258
+ rubocop (>= 1.75.0, < 2.0)
259
+ rubocop-ast (>= 1.44.0, < 2.0)
260
+ ruby-progressbar (1.13.0)
261
+ securerandom (0.4.1)
262
+ simpleidn (0.2.3)
263
+ sqlite3 (2.8.0-aarch64-linux-gnu)
264
+ sqlite3 (2.8.0-aarch64-linux-musl)
265
+ sqlite3 (2.8.0-arm-linux-gnu)
266
+ sqlite3 (2.8.0-arm-linux-musl)
267
+ sqlite3 (2.8.0-arm64-darwin)
268
+ sqlite3 (2.8.0-x86_64-darwin)
269
+ sqlite3 (2.8.0-x86_64-linux-gnu)
270
+ sqlite3 (2.8.0-x86_64-linux-musl)
271
+ stringio (3.1.8)
272
+ thor (1.4.0)
273
+ timeout (0.4.4)
274
+ tsort (0.2.0)
275
+ tzinfo (2.0.6)
276
+ concurrent-ruby (~> 1.0)
277
+ unicode-display_width (3.2.0)
278
+ unicode-emoji (~> 4.1)
279
+ unicode-emoji (4.1.0)
280
+ uri (1.1.1)
281
+ useragent (0.16.11)
282
+ websocket-driver (0.8.0)
283
+ base64
284
+ websocket-extensions (>= 0.1.0)
285
+ websocket-extensions (0.1.5)
286
+ zeitwerk (2.7.3)
287
+
288
+ PLATFORMS
289
+ aarch64-linux-gnu
290
+ aarch64-linux-musl
291
+ arm-linux-gnu
292
+ arm-linux-musl
293
+ arm64-darwin
294
+ x86_64-darwin
295
+ x86_64-linux-gnu
296
+ x86_64-linux-musl
297
+
298
+ DEPENDENCIES
299
+ appraisal (~> 2.4)
300
+ bundler (~> 2.0)
301
+ jpie!
302
+ json_schemer (~> 2.4)
303
+ pundit (~> 2.3)
304
+ rake (~> 13.0)
305
+ rspec (~> 3.12)
306
+ rspec-rails (~> 6.0)
307
+ rubocop (~> 1.0)
308
+ rubocop-rails (~> 2.0)
309
+ sqlite3 (>= 2.1)
310
+
311
+ BUNDLED WITH
312
+ 2.7.2