nacelle 0.5.0 → 0.6.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 149ec09f11d092901205917fe830613e48928b109d1f306b3ead009603c0c16b
4
- data.tar.gz: 926f46c7a25c0f0fd11b1c2d066be53516932691df831cb12bc0d6e6a7a76f42
3
+ metadata.gz: bc7d2280de3747f26a968df1e8862382c8e8ac5617ef3f9db4cf8159f8b2c249
4
+ data.tar.gz: 17cd8e85dd59919c94d15f07d08d0a51dbb5f8ad1a4e05d3d6267efde41e8a35
5
5
  SHA512:
6
- metadata.gz: b616c08dc70b7590733542be6c37ddba074c82f5790d26ca8790ddb8b793b47a2b37e6823e07eb1502e8ee6bcb9c908e385e741337ec48e0f3936c631e48314d
7
- data.tar.gz: cef7e5fb3816f4cd577d905b4e8c1e41f504035c3e21fb218d39d5511853cd05c1d4229cbadf07f46e7c0fdbab189400812ff41f413566c2f6048bbdf8ec18da
6
+ metadata.gz: d5ce4bb55a621b8a014a4f76437ccd11015841dd2eb631a22fbdb389321d2009ff601b1a0e71c962a8c06122bec581a43d38a763adafc64a3ce0ad422cc91ebe
7
+ data.tar.gz: 398ed215fb0759151e64c7af48e516ea58d1c2c330cb05e06e145aeb32a9bd5411aafb1760b25e71bd01ee3e57caba50e8bfcece4dd09c6665250912ccb2da0f
@@ -5,8 +5,8 @@ jobs:
5
5
  strategy:
6
6
  fail-fast: false
7
7
  matrix:
8
- gemfile: [ rails_6.0, rails_6.1, rails_7.0 ]
9
- ruby: [ 2.7, '3.0', 3.1 ]
8
+ gemfile: [ rails_7.2, rails_8.0, rails_8.1 ]
9
+ ruby: [ 3.2, 3.3, 3.4 ]
10
10
 
11
11
  runs-on: ubuntu-latest
12
12
  env: # $BUNDLE_GEMFILE must be set at the job level, so it is set for all steps
data/Appraisals CHANGED
@@ -1,15 +1,11 @@
1
- appraise "rails-6.0" do
2
- gem "rails", "~>6.0.0"
3
- gem "sprockets", "~>3.0"
1
+ appraise "rails-7.2" do
2
+ gem "rails", "~>7.2.0"
4
3
  end
5
4
 
6
- appraise "rails-6.1" do
7
- gem "rails", "~>6.1.0"
8
- gem "sprockets", "~>3.0"
5
+ appraise "rails-8.0" do
6
+ gem "rails", "~>8.0.0"
9
7
  end
10
8
 
11
- appraise "rails-7.0" do
12
- gem "rails", "~>7.0.0"
13
- gem "sprockets", "~>3.0"
9
+ appraise "rails-8.1" do
10
+ gem "rails", "~>8.1.0"
14
11
  end
15
-
data/CLAUDE.md ADDED
@@ -0,0 +1,96 @@
1
+ # CLAUDE.md
2
+
3
+ This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4
+
5
+ ## Project Overview
6
+
7
+ Nacelle is a Rails engine that enables embedding dynamic cell components into CMS content. It works by parsing `<cell>` tags in HTML responses and replacing them with rendered cell content via a controller after filter.
8
+
9
+ ## Core Architecture
10
+
11
+ ### Cell Execution Flow
12
+
13
+ 1. **Request Processing**: HTML responses flow through `Nacelle::AfterFilter` global controller after filter (registered in `lib/nacelle.rb:11`)
14
+ 2. **Tag Parsing**: AfterFilter scans the response body for `<cell>` tags using regex and XML parsing (`lib/nacelle/after_filter.rb:38-46`)
15
+ 3. **Cell Instantiation**: Tags like `<cell name="my_account/form" />` are converted to `MyAccountCell#form` calls
16
+ 4. **Rendering**: Cells render their views from `app/cells/` directory structure
17
+
18
+ ### Key Components
19
+
20
+ - **Nacelle::Cell** (`lib/nacelle/cell.rb`): Base class for all cells
21
+ - Provides controller context (request, session, cookies) to cells
22
+ - Implements custom rendering that looks up views in `app/cells/` directory
23
+ - Supports helper modules and helper methods
24
+ - Has cache key/timestamp methods for fragment caching
25
+
26
+ - **Nacelle::AfterFilter** (`lib/nacelle/after_filter.rb`): Middleware that processes HTML responses
27
+ - Only processes `text/html` content types
28
+ - Parses `<cell name="cell_name/action" attr="value" />` tags
29
+ - Instantiates cell classes and invokes actions with attributes
30
+
31
+ - **Nacelle::HasCells** (`lib/nacelle/has_cells.rb`): ActiveRecord mixin
32
+ - Use `has_cells :column_name` to scan model columns for embedded cells
33
+ - Returns array of cell classes found in the content
34
+
35
+ - **Nacelle::CellsSerializer** (`lib/nacelle/cells_serializer.rb`): JSON API for CKEditor integration
36
+ - Endpoint at `/nacelle/cells.json` lists all available cells and their actions
37
+ - Discovers cells by requiring all files in `app/cells/*.rb`
38
+ - Optionally loads form HTML from `app/cells/{cell}/{action}_form.html.erb`
39
+
40
+ ### Cell Conventions
41
+
42
+ - Cell classes must inherit from `Nacelle::Cell` to appear in CKEditor
43
+ - Cell class names follow pattern: `{Name}Cell` (e.g., `TestCell`, `MyAccountCell`)
44
+ - Cell views live in `app/cells/{cell_name}/{action}.html.erb`
45
+ - Actions can accept zero arguments or a hash of attributes
46
+ - Action methods are alphabetically ordered in the CKEditor menu
47
+
48
+ ## Development Commands
49
+
50
+ ### Running Tests
51
+ ```bash
52
+ bundle exec rake # Run all specs (default task)
53
+ bundle exec rspec # Run all specs
54
+ bundle exec rspec spec/acceptance/nacelle_spec.rb # Run specific spec file
55
+ ```
56
+
57
+ ### Testing Across Rails Versions
58
+ ```bash
59
+ bundle exec appraisal install # Install dependencies for all Rails versions
60
+ bundle exec appraisal rails-7.1 rspec # Run specs against specific Rails version
61
+ ```
62
+
63
+ ## Testing Setup
64
+
65
+ The test suite uses RSpec with Capybara for acceptance testing. The spec creates a minimal Rails test app inline (`spec/acceptance/nacelle_spec.rb:5-16`) to test the engine's middleware behavior in a realistic environment.
66
+
67
+ When writing new tests:
68
+ - Place acceptance tests in `spec/acceptance/`
69
+ - The test app is configured with `secret_key_base`, `eager_load: false`, and `hosts: nil`
70
+ - Test cells should inherit from `Nacelle::Cell` and set `view_path` appropriately
71
+
72
+ ## File Structure
73
+
74
+ ```
75
+ lib/nacelle/
76
+ ├── cell.rb # Base cell class with rendering logic
77
+ ├── after_filter.rb # Middleware for processing <cell> tags
78
+ ├── has_cells.rb # ActiveRecord mixin for scanning content
79
+ └── cells_serializer.rb # JSON API for CKEditor integration
80
+
81
+ app/
82
+ ├── controllers/nacelle/
83
+ │ └── cells_controller.rb # Serves JSON list of cells
84
+ └── assets/javascripts/
85
+ ├── nacelle/ckeditor.js # CKEditor integration entry point
86
+ └── ckeditor/plugins/cells/ # CKEditor plugin for inserting cells
87
+ ```
88
+
89
+ ## Important Implementation Details
90
+
91
+ - Cell tag parsing uses `Hash.from_xml` (requires Nokogiri backend)
92
+ - The AfterFilter runs on all ActionController::Base after_actions
93
+ - Cell names in tags use underscore format: `<cell name="my_account/form" />`
94
+ - Cell classes use CamelCase: `MyAccountCell`
95
+ - Action arity is checked to determine whether to pass attributes hash
96
+ - Missing cells/actions render error message: `<strong>Cell "{name} {action}" not found!</strong>`
data/Gemfile CHANGED
@@ -3,5 +3,4 @@ source 'https://rubygems.org'
3
3
  # Specify your gem's dependencies in nacelle.gemspec
4
4
  gemspec
5
5
 
6
- gem "rails", "~>7.0.0"
7
- gem "sprockets", "~>3.0"
6
+ gem "rails", "~>8.0.0"
@@ -0,0 +1 @@
1
+ //= link_tree ../javascripts .js
@@ -2,7 +2,6 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- gem "rails", "~>6.0.0"
6
- gem "sprockets", "~>3.0"
5
+ gem "rails", "~>7.2.0"
7
6
 
8
7
  gemspec path: "../"
@@ -0,0 +1,254 @@
1
+ PATH
2
+ remote: ..
3
+ specs:
4
+ nacelle (0.6.0)
5
+ rails
6
+ sprockets-rails
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ actioncable (7.2.3)
12
+ actionpack (= 7.2.3)
13
+ activesupport (= 7.2.3)
14
+ nio4r (~> 2.0)
15
+ websocket-driver (>= 0.6.1)
16
+ zeitwerk (~> 2.6)
17
+ actionmailbox (7.2.3)
18
+ actionpack (= 7.2.3)
19
+ activejob (= 7.2.3)
20
+ activerecord (= 7.2.3)
21
+ activestorage (= 7.2.3)
22
+ activesupport (= 7.2.3)
23
+ mail (>= 2.8.0)
24
+ actionmailer (7.2.3)
25
+ actionpack (= 7.2.3)
26
+ actionview (= 7.2.3)
27
+ activejob (= 7.2.3)
28
+ activesupport (= 7.2.3)
29
+ mail (>= 2.8.0)
30
+ rails-dom-testing (~> 2.2)
31
+ actionpack (7.2.3)
32
+ actionview (= 7.2.3)
33
+ activesupport (= 7.2.3)
34
+ cgi
35
+ nokogiri (>= 1.8.5)
36
+ racc
37
+ rack (>= 2.2.4, < 3.3)
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 (7.2.3)
44
+ actionpack (= 7.2.3)
45
+ activerecord (= 7.2.3)
46
+ activestorage (= 7.2.3)
47
+ activesupport (= 7.2.3)
48
+ globalid (>= 0.6.0)
49
+ nokogiri (>= 1.8.5)
50
+ actionview (7.2.3)
51
+ activesupport (= 7.2.3)
52
+ builder (~> 3.1)
53
+ cgi
54
+ erubi (~> 1.11)
55
+ rails-dom-testing (~> 2.2)
56
+ rails-html-sanitizer (~> 1.6)
57
+ activejob (7.2.3)
58
+ activesupport (= 7.2.3)
59
+ globalid (>= 0.3.6)
60
+ activemodel (7.2.3)
61
+ activesupport (= 7.2.3)
62
+ activerecord (7.2.3)
63
+ activemodel (= 7.2.3)
64
+ activesupport (= 7.2.3)
65
+ timeout (>= 0.4.0)
66
+ activestorage (7.2.3)
67
+ actionpack (= 7.2.3)
68
+ activejob (= 7.2.3)
69
+ activerecord (= 7.2.3)
70
+ activesupport (= 7.2.3)
71
+ marcel (~> 1.0)
72
+ activesupport (7.2.3)
73
+ base64
74
+ benchmark (>= 0.3)
75
+ bigdecimal
76
+ concurrent-ruby (~> 1.0, >= 1.3.1)
77
+ connection_pool (>= 2.2.5)
78
+ drb
79
+ i18n (>= 1.6, < 2)
80
+ logger (>= 1.4.2)
81
+ minitest (>= 5.1)
82
+ securerandom (>= 0.3)
83
+ tzinfo (~> 2.0, >= 2.0.5)
84
+ addressable (2.8.7)
85
+ public_suffix (>= 2.0.2, < 7.0)
86
+ appraisal (2.5.0)
87
+ bundler
88
+ rake
89
+ thor (>= 0.14.0)
90
+ base64 (0.3.0)
91
+ benchmark (0.5.0)
92
+ bigdecimal (3.3.1)
93
+ builder (3.3.0)
94
+ byebug (12.0.0)
95
+ capybara (3.40.0)
96
+ addressable
97
+ matrix
98
+ mini_mime (>= 0.1.3)
99
+ nokogiri (~> 1.11)
100
+ rack (>= 1.6.0)
101
+ rack-test (>= 0.6.3)
102
+ regexp_parser (>= 1.5, < 3.0)
103
+ xpath (~> 3.2)
104
+ cgi (0.5.0)
105
+ concurrent-ruby (1.3.5)
106
+ connection_pool (2.5.4)
107
+ crass (1.0.6)
108
+ date (3.5.0)
109
+ diff-lcs (1.6.2)
110
+ drb (2.2.3)
111
+ erb (5.1.3)
112
+ erubi (1.13.1)
113
+ globalid (1.3.0)
114
+ activesupport (>= 6.1)
115
+ i18n (1.14.7)
116
+ concurrent-ruby (~> 1.0)
117
+ io-console (0.8.1)
118
+ irb (1.15.3)
119
+ pp (>= 0.6.0)
120
+ rdoc (>= 4.0.0)
121
+ reline (>= 0.4.2)
122
+ logger (1.7.0)
123
+ loofah (2.24.1)
124
+ crass (~> 1.0.2)
125
+ nokogiri (>= 1.12.0)
126
+ mail (2.9.0)
127
+ logger
128
+ mini_mime (>= 0.1.1)
129
+ net-imap
130
+ net-pop
131
+ net-smtp
132
+ marcel (1.1.0)
133
+ matrix (0.4.3)
134
+ mini_mime (1.1.5)
135
+ minitest (5.26.0)
136
+ net-imap (0.5.12)
137
+ date
138
+ net-protocol
139
+ net-pop (0.1.2)
140
+ net-protocol
141
+ net-protocol (0.2.2)
142
+ timeout
143
+ net-smtp (0.5.1)
144
+ net-protocol
145
+ nio4r (2.7.5)
146
+ nokogiri (1.18.10-x86_64-linux-gnu)
147
+ racc (~> 1.4)
148
+ pp (0.6.3)
149
+ prettyprint
150
+ prettyprint (0.2.0)
151
+ psych (5.2.6)
152
+ date
153
+ stringio
154
+ public_suffix (6.0.2)
155
+ racc (1.8.1)
156
+ rack (3.2.4)
157
+ rack-session (2.1.1)
158
+ base64 (>= 0.1.0)
159
+ rack (>= 3.0.0)
160
+ rack-test (2.2.0)
161
+ rack (>= 1.3)
162
+ rackup (2.2.1)
163
+ rack (>= 3)
164
+ rails (7.2.3)
165
+ actioncable (= 7.2.3)
166
+ actionmailbox (= 7.2.3)
167
+ actionmailer (= 7.2.3)
168
+ actionpack (= 7.2.3)
169
+ actiontext (= 7.2.3)
170
+ actionview (= 7.2.3)
171
+ activejob (= 7.2.3)
172
+ activemodel (= 7.2.3)
173
+ activerecord (= 7.2.3)
174
+ activestorage (= 7.2.3)
175
+ activesupport (= 7.2.3)
176
+ bundler (>= 1.15.0)
177
+ railties (= 7.2.3)
178
+ rails-dom-testing (2.3.0)
179
+ activesupport (>= 5.0.0)
180
+ minitest
181
+ nokogiri (>= 1.6)
182
+ rails-html-sanitizer (1.6.2)
183
+ loofah (~> 2.21)
184
+ 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)
185
+ railties (7.2.3)
186
+ actionpack (= 7.2.3)
187
+ activesupport (= 7.2.3)
188
+ cgi
189
+ irb (~> 1.13)
190
+ rackup (>= 1.0.0)
191
+ rake (>= 12.2)
192
+ thor (~> 1.0, >= 1.2.2)
193
+ tsort (>= 0.2)
194
+ zeitwerk (~> 2.6)
195
+ rake (13.3.1)
196
+ rdoc (6.15.1)
197
+ erb
198
+ psych (>= 4.0.0)
199
+ tsort
200
+ regexp_parser (2.11.3)
201
+ reline (0.6.2)
202
+ io-console (~> 0.5)
203
+ rspec (3.13.2)
204
+ rspec-core (~> 3.13.0)
205
+ rspec-expectations (~> 3.13.0)
206
+ rspec-mocks (~> 3.13.0)
207
+ rspec-core (3.13.6)
208
+ rspec-support (~> 3.13.0)
209
+ rspec-expectations (3.13.5)
210
+ diff-lcs (>= 1.2.0, < 2.0)
211
+ rspec-support (~> 3.13.0)
212
+ rspec-mocks (3.13.7)
213
+ diff-lcs (>= 1.2.0, < 2.0)
214
+ rspec-support (~> 3.13.0)
215
+ rspec-support (3.13.6)
216
+ securerandom (0.4.1)
217
+ sprockets (4.2.2)
218
+ concurrent-ruby (~> 1.0)
219
+ logger
220
+ rack (>= 2.2.4, < 4)
221
+ sprockets-rails (3.5.2)
222
+ actionpack (>= 6.1)
223
+ activesupport (>= 6.1)
224
+ sprockets (>= 3.0.0)
225
+ stringio (3.1.7)
226
+ thor (1.4.0)
227
+ timeout (0.4.4)
228
+ tsort (0.2.0)
229
+ tzinfo (2.0.6)
230
+ concurrent-ruby (~> 1.0)
231
+ useragent (0.16.11)
232
+ websocket-driver (0.8.0)
233
+ base64
234
+ websocket-extensions (>= 0.1.0)
235
+ websocket-extensions (0.1.5)
236
+ xpath (3.2.0)
237
+ nokogiri (~> 1.8)
238
+ zeitwerk (2.7.3)
239
+
240
+ PLATFORMS
241
+ x86_64-linux
242
+
243
+ DEPENDENCIES
244
+ appraisal
245
+ bundler
246
+ byebug
247
+ capybara
248
+ nacelle!
249
+ rails (~> 7.2.0)
250
+ rake
251
+ rspec
252
+
253
+ BUNDLED WITH
254
+ 2.4.19
@@ -2,7 +2,6 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- gem "rails", "~>7.0.0"
6
- gem "sprockets", "~>3.0"
5
+ gem "rails", "~>8.0.0"
7
6
 
8
7
  gemspec path: "../"
@@ -0,0 +1,251 @@
1
+ PATH
2
+ remote: ..
3
+ specs:
4
+ nacelle (0.6.0)
5
+ rails
6
+ sprockets-rails
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ actioncable (8.0.4)
12
+ actionpack (= 8.0.4)
13
+ activesupport (= 8.0.4)
14
+ nio4r (~> 2.0)
15
+ websocket-driver (>= 0.6.1)
16
+ zeitwerk (~> 2.6)
17
+ actionmailbox (8.0.4)
18
+ actionpack (= 8.0.4)
19
+ activejob (= 8.0.4)
20
+ activerecord (= 8.0.4)
21
+ activestorage (= 8.0.4)
22
+ activesupport (= 8.0.4)
23
+ mail (>= 2.8.0)
24
+ actionmailer (8.0.4)
25
+ actionpack (= 8.0.4)
26
+ actionview (= 8.0.4)
27
+ activejob (= 8.0.4)
28
+ activesupport (= 8.0.4)
29
+ mail (>= 2.8.0)
30
+ rails-dom-testing (~> 2.2)
31
+ actionpack (8.0.4)
32
+ actionview (= 8.0.4)
33
+ activesupport (= 8.0.4)
34
+ nokogiri (>= 1.8.5)
35
+ rack (>= 2.2.4)
36
+ rack-session (>= 1.0.1)
37
+ rack-test (>= 0.6.3)
38
+ rails-dom-testing (~> 2.2)
39
+ rails-html-sanitizer (~> 1.6)
40
+ useragent (~> 0.16)
41
+ actiontext (8.0.4)
42
+ actionpack (= 8.0.4)
43
+ activerecord (= 8.0.4)
44
+ activestorage (= 8.0.4)
45
+ activesupport (= 8.0.4)
46
+ globalid (>= 0.6.0)
47
+ nokogiri (>= 1.8.5)
48
+ actionview (8.0.4)
49
+ activesupport (= 8.0.4)
50
+ builder (~> 3.1)
51
+ erubi (~> 1.11)
52
+ rails-dom-testing (~> 2.2)
53
+ rails-html-sanitizer (~> 1.6)
54
+ activejob (8.0.4)
55
+ activesupport (= 8.0.4)
56
+ globalid (>= 0.3.6)
57
+ activemodel (8.0.4)
58
+ activesupport (= 8.0.4)
59
+ activerecord (8.0.4)
60
+ activemodel (= 8.0.4)
61
+ activesupport (= 8.0.4)
62
+ timeout (>= 0.4.0)
63
+ activestorage (8.0.4)
64
+ actionpack (= 8.0.4)
65
+ activejob (= 8.0.4)
66
+ activerecord (= 8.0.4)
67
+ activesupport (= 8.0.4)
68
+ marcel (~> 1.0)
69
+ activesupport (8.0.4)
70
+ base64
71
+ benchmark (>= 0.3)
72
+ bigdecimal
73
+ concurrent-ruby (~> 1.0, >= 1.3.1)
74
+ connection_pool (>= 2.2.5)
75
+ drb
76
+ i18n (>= 1.6, < 2)
77
+ logger (>= 1.4.2)
78
+ minitest (>= 5.1)
79
+ securerandom (>= 0.3)
80
+ tzinfo (~> 2.0, >= 2.0.5)
81
+ uri (>= 0.13.1)
82
+ addressable (2.8.7)
83
+ public_suffix (>= 2.0.2, < 7.0)
84
+ appraisal (2.5.0)
85
+ bundler
86
+ rake
87
+ thor (>= 0.14.0)
88
+ base64 (0.3.0)
89
+ benchmark (0.5.0)
90
+ bigdecimal (3.3.1)
91
+ builder (3.3.0)
92
+ byebug (12.0.0)
93
+ capybara (3.40.0)
94
+ addressable
95
+ matrix
96
+ mini_mime (>= 0.1.3)
97
+ nokogiri (~> 1.11)
98
+ rack (>= 1.6.0)
99
+ rack-test (>= 0.6.3)
100
+ regexp_parser (>= 1.5, < 3.0)
101
+ xpath (~> 3.2)
102
+ concurrent-ruby (1.3.5)
103
+ connection_pool (2.5.4)
104
+ crass (1.0.6)
105
+ date (3.5.0)
106
+ diff-lcs (1.6.2)
107
+ drb (2.2.3)
108
+ erb (5.1.3)
109
+ erubi (1.13.1)
110
+ globalid (1.3.0)
111
+ activesupport (>= 6.1)
112
+ i18n (1.14.7)
113
+ concurrent-ruby (~> 1.0)
114
+ io-console (0.8.1)
115
+ irb (1.15.3)
116
+ pp (>= 0.6.0)
117
+ rdoc (>= 4.0.0)
118
+ reline (>= 0.4.2)
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
+ matrix (0.4.3)
131
+ mini_mime (1.1.5)
132
+ minitest (5.26.0)
133
+ net-imap (0.5.12)
134
+ date
135
+ net-protocol
136
+ net-pop (0.1.2)
137
+ net-protocol
138
+ net-protocol (0.2.2)
139
+ timeout
140
+ net-smtp (0.5.1)
141
+ net-protocol
142
+ nio4r (2.7.5)
143
+ nokogiri (1.18.10-x86_64-linux-gnu)
144
+ racc (~> 1.4)
145
+ pp (0.6.3)
146
+ prettyprint
147
+ prettyprint (0.2.0)
148
+ psych (5.2.6)
149
+ date
150
+ stringio
151
+ public_suffix (6.0.2)
152
+ racc (1.8.1)
153
+ rack (3.2.4)
154
+ rack-session (2.1.1)
155
+ base64 (>= 0.1.0)
156
+ rack (>= 3.0.0)
157
+ rack-test (2.2.0)
158
+ rack (>= 1.3)
159
+ rackup (2.2.1)
160
+ rack (>= 3)
161
+ rails (8.0.4)
162
+ actioncable (= 8.0.4)
163
+ actionmailbox (= 8.0.4)
164
+ actionmailer (= 8.0.4)
165
+ actionpack (= 8.0.4)
166
+ actiontext (= 8.0.4)
167
+ actionview (= 8.0.4)
168
+ activejob (= 8.0.4)
169
+ activemodel (= 8.0.4)
170
+ activerecord (= 8.0.4)
171
+ activestorage (= 8.0.4)
172
+ activesupport (= 8.0.4)
173
+ bundler (>= 1.15.0)
174
+ railties (= 8.0.4)
175
+ rails-dom-testing (2.3.0)
176
+ activesupport (>= 5.0.0)
177
+ minitest
178
+ nokogiri (>= 1.6)
179
+ rails-html-sanitizer (1.6.2)
180
+ loofah (~> 2.21)
181
+ 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)
182
+ railties (8.0.4)
183
+ actionpack (= 8.0.4)
184
+ activesupport (= 8.0.4)
185
+ irb (~> 1.13)
186
+ rackup (>= 1.0.0)
187
+ rake (>= 12.2)
188
+ thor (~> 1.0, >= 1.2.2)
189
+ tsort (>= 0.2)
190
+ zeitwerk (~> 2.6)
191
+ rake (13.3.1)
192
+ rdoc (6.15.1)
193
+ erb
194
+ psych (>= 4.0.0)
195
+ tsort
196
+ regexp_parser (2.11.3)
197
+ reline (0.6.2)
198
+ io-console (~> 0.5)
199
+ rspec (3.13.2)
200
+ rspec-core (~> 3.13.0)
201
+ rspec-expectations (~> 3.13.0)
202
+ rspec-mocks (~> 3.13.0)
203
+ rspec-core (3.13.6)
204
+ rspec-support (~> 3.13.0)
205
+ rspec-expectations (3.13.5)
206
+ diff-lcs (>= 1.2.0, < 2.0)
207
+ rspec-support (~> 3.13.0)
208
+ rspec-mocks (3.13.7)
209
+ diff-lcs (>= 1.2.0, < 2.0)
210
+ rspec-support (~> 3.13.0)
211
+ rspec-support (3.13.6)
212
+ securerandom (0.4.1)
213
+ sprockets (4.2.2)
214
+ concurrent-ruby (~> 1.0)
215
+ logger
216
+ rack (>= 2.2.4, < 4)
217
+ sprockets-rails (3.5.2)
218
+ actionpack (>= 6.1)
219
+ activesupport (>= 6.1)
220
+ sprockets (>= 3.0.0)
221
+ stringio (3.1.7)
222
+ thor (1.4.0)
223
+ timeout (0.4.4)
224
+ tsort (0.2.0)
225
+ tzinfo (2.0.6)
226
+ concurrent-ruby (~> 1.0)
227
+ uri (1.1.0)
228
+ useragent (0.16.11)
229
+ websocket-driver (0.8.0)
230
+ base64
231
+ websocket-extensions (>= 0.1.0)
232
+ websocket-extensions (0.1.5)
233
+ xpath (3.2.0)
234
+ nokogiri (~> 1.8)
235
+ zeitwerk (2.7.3)
236
+
237
+ PLATFORMS
238
+ x86_64-linux
239
+
240
+ DEPENDENCIES
241
+ appraisal
242
+ bundler
243
+ byebug
244
+ capybara
245
+ nacelle!
246
+ rails (~> 8.0.0)
247
+ rake
248
+ rspec
249
+
250
+ BUNDLED WITH
251
+ 2.4.19
@@ -2,7 +2,6 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- gem "rails", "~>6.1.0"
6
- gem "sprockets", "~>3.0"
5
+ gem "rails", "~>8.1.0"
7
6
 
8
7
  gemspec path: "../"