phlexible 3.0.0 → 3.1.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/.rubocop.yml +42 -8
  3. data/.ruby-version +1 -1
  4. data/Appraisals +18 -4
  5. data/README.md +71 -7
  6. data/Rakefile +4 -4
  7. data/gemfiles/phlex1_rails7.gemfile +24 -0
  8. data/gemfiles/phlex1_rails7.gemfile.lock +464 -0
  9. data/gemfiles/phlex1_rails8.gemfile +24 -0
  10. data/gemfiles/phlex1_rails8.gemfile.lock +463 -0
  11. data/gemfiles/phlex2_rails7.gemfile +24 -0
  12. data/gemfiles/phlex2_rails7.gemfile.lock +471 -0
  13. data/gemfiles/phlex2_rails8.gemfile +24 -0
  14. data/gemfiles/phlex2_rails8.gemfile.lock +470 -0
  15. data/lib/phlexible/page_title.rb +13 -13
  16. data/lib/phlexible/process_attributes.rb +56 -0
  17. data/lib/phlexible/rails/action_controller/implicit_render.rb +15 -7
  18. data/lib/phlexible/rails/button_to_concerns.rb +71 -70
  19. data/lib/phlexible/rails/controller_variables.rb +52 -49
  20. data/lib/phlexible/version.rb +1 -1
  21. metadata +13 -27
  22. data/Gemfile +0 -13
  23. data/Gemfile.lock +0 -257
  24. data/config/render_helper.rb +0 -27
  25. data/config/sus.rb +0 -8
  26. data/fixtures/dummy/app/controllers/articles_controller.rb +0 -4
  27. data/fixtures/dummy/app/views/articles/index.html.erb +0 -1
  28. data/fixtures/dummy/app/views/articles/link.rb +0 -9
  29. data/fixtures/dummy/app/views/articles/show.rb +0 -7
  30. data/fixtures/dummy/config/database.yml +0 -3
  31. data/fixtures/dummy/config/routes.rb +0 -5
  32. data/fixtures/dummy/config/storage.yml +0 -3
  33. data/fixtures/dummy/db/schema.rb +0 -6
  34. data/fixtures/dummy/log/.gitignore +0 -1
  35. data/fixtures/dummy/public/favicon.ico +0 -0
  36. data/fixtures/rails_helper.rb +0 -11
  37. data/gemfiles/phlex_1.gemfile +0 -14
  38. data/gemfiles/phlex_1.gemfile.lock +0 -253
  39. data/gemfiles/phlex_2.gemfile +0 -14
  40. data/gemfiles/phlex_2.gemfile.lock +0 -254
  41. data/phlexible.gemspec +0 -37
@@ -0,0 +1,470 @@
1
+ PATH
2
+ remote: ..
3
+ specs:
4
+ phlexible (3.0.0)
5
+ phlex (>= 1.10.0, < 3.0.0)
6
+ phlex-rails (>= 1.2.0, < 3.0.0)
7
+ rails (>= 7.2.0, < 9.0.0)
8
+ zeitwerk (~> 2.7.2)
9
+
10
+ GEM
11
+ remote: https://rubygems.org/
12
+ specs:
13
+ action_text-trix (2.1.16)
14
+ railties
15
+ actioncable (8.1.2)
16
+ actionpack (= 8.1.2)
17
+ activesupport (= 8.1.2)
18
+ nio4r (~> 2.0)
19
+ websocket-driver (>= 0.6.1)
20
+ zeitwerk (~> 2.6)
21
+ actionmailbox (8.1.2)
22
+ actionpack (= 8.1.2)
23
+ activejob (= 8.1.2)
24
+ activerecord (= 8.1.2)
25
+ activestorage (= 8.1.2)
26
+ activesupport (= 8.1.2)
27
+ mail (>= 2.8.0)
28
+ actionmailer (8.1.2)
29
+ actionpack (= 8.1.2)
30
+ actionview (= 8.1.2)
31
+ activejob (= 8.1.2)
32
+ activesupport (= 8.1.2)
33
+ mail (>= 2.8.0)
34
+ rails-dom-testing (~> 2.2)
35
+ actionpack (8.1.2)
36
+ actionview (= 8.1.2)
37
+ activesupport (= 8.1.2)
38
+ nokogiri (>= 1.8.5)
39
+ rack (>= 2.2.4)
40
+ rack-session (>= 1.0.1)
41
+ rack-test (>= 0.6.3)
42
+ rails-dom-testing (~> 2.2)
43
+ rails-html-sanitizer (~> 1.6)
44
+ useragent (~> 0.16)
45
+ actiontext (8.1.2)
46
+ action_text-trix (~> 2.1.15)
47
+ actionpack (= 8.1.2)
48
+ activerecord (= 8.1.2)
49
+ activestorage (= 8.1.2)
50
+ activesupport (= 8.1.2)
51
+ globalid (>= 0.6.0)
52
+ nokogiri (>= 1.8.5)
53
+ actionview (8.1.2)
54
+ activesupport (= 8.1.2)
55
+ builder (~> 3.1)
56
+ erubi (~> 1.11)
57
+ rails-dom-testing (~> 2.2)
58
+ rails-html-sanitizer (~> 1.6)
59
+ activejob (8.1.2)
60
+ activesupport (= 8.1.2)
61
+ globalid (>= 0.3.6)
62
+ activemodel (8.1.2)
63
+ activesupport (= 8.1.2)
64
+ activerecord (8.1.2)
65
+ activemodel (= 8.1.2)
66
+ activesupport (= 8.1.2)
67
+ timeout (>= 0.4.0)
68
+ activestorage (8.1.2)
69
+ actionpack (= 8.1.2)
70
+ activejob (= 8.1.2)
71
+ activerecord (= 8.1.2)
72
+ activesupport (= 8.1.2)
73
+ marcel (~> 1.0)
74
+ activesupport (8.1.2)
75
+ base64
76
+ bigdecimal
77
+ concurrent-ruby (~> 1.0, >= 1.3.1)
78
+ connection_pool (>= 2.2.5)
79
+ drb
80
+ i18n (>= 1.6, < 2)
81
+ json
82
+ logger (>= 1.4.2)
83
+ minitest (>= 5.1)
84
+ securerandom (>= 0.3)
85
+ tzinfo (~> 2.0, >= 2.0.5)
86
+ uri (>= 0.13.1)
87
+ addressable (2.8.8)
88
+ public_suffix (>= 2.0.2, < 8.0)
89
+ amazing_print (2.0.0)
90
+ appraisal (2.5.0)
91
+ bundler
92
+ rake
93
+ thor (>= 0.14.0)
94
+ ast (2.4.3)
95
+ base64 (0.3.0)
96
+ bigdecimal (4.0.1)
97
+ builder (3.3.0)
98
+ capybara (3.40.0)
99
+ addressable
100
+ matrix
101
+ mini_mime (>= 0.1.3)
102
+ nokogiri (~> 1.11)
103
+ rack (>= 1.6.0)
104
+ rack-test (>= 0.6.3)
105
+ regexp_parser (>= 1.5, < 3.0)
106
+ xpath (~> 3.2)
107
+ concurrent-ruby (1.3.6)
108
+ connection_pool (3.0.2)
109
+ crass (1.0.6)
110
+ date (3.5.1)
111
+ debug (1.11.1)
112
+ irb (~> 1.10)
113
+ reline (>= 0.3.8)
114
+ difftastic (0.8.0)
115
+ pretty_please
116
+ difftastic (0.8.0-aarch64-linux)
117
+ pretty_please
118
+ difftastic (0.8.0-arm64-darwin)
119
+ pretty_please
120
+ difftastic (0.8.0-x86_64-darwin)
121
+ pretty_please
122
+ difftastic (0.8.0-x86_64-linux)
123
+ pretty_please
124
+ dispersion (0.2.0)
125
+ prism
126
+ drb (2.2.3)
127
+ erb (6.0.1)
128
+ erubi (1.13.1)
129
+ globalid (1.3.0)
130
+ activesupport (>= 6.1)
131
+ i18n (1.14.8)
132
+ concurrent-ruby (~> 1.0)
133
+ io-console (0.8.2)
134
+ irb (1.16.0)
135
+ pp (>= 0.6.0)
136
+ rdoc (>= 4.0.0)
137
+ reline (>= 0.4.2)
138
+ json (2.18.0)
139
+ language_server-protocol (3.17.0.5)
140
+ lint_roller (1.1.0)
141
+ logger (1.7.0)
142
+ loofah (2.25.0)
143
+ crass (~> 1.0.2)
144
+ nokogiri (>= 1.12.0)
145
+ mail (2.9.0)
146
+ logger
147
+ mini_mime (>= 0.1.1)
148
+ net-imap
149
+ net-pop
150
+ net-smtp
151
+ marcel (1.1.0)
152
+ matrix (0.4.3)
153
+ maxitest (6.2.0)
154
+ minitest (>= 5.20.0, < 5.28.0)
155
+ mini_mime (1.1.5)
156
+ minitest (5.27.0)
157
+ minitest-difftastic (0.2.1)
158
+ difftastic (~> 0.6)
159
+ minitest-focus (1.4.1)
160
+ minitest (> 5.0)
161
+ minitest-spec-rails (7.4.1)
162
+ minitest (>= 5.0)
163
+ railties (>= 4.1)
164
+ net-imap (0.6.2)
165
+ date
166
+ net-protocol
167
+ net-pop (0.1.2)
168
+ net-protocol
169
+ net-protocol (0.2.2)
170
+ timeout
171
+ net-smtp (0.5.1)
172
+ net-protocol
173
+ nio4r (2.7.5)
174
+ nokogiri (1.19.0-aarch64-linux-gnu)
175
+ racc (~> 1.4)
176
+ nokogiri (1.19.0-aarch64-linux-musl)
177
+ racc (~> 1.4)
178
+ nokogiri (1.19.0-arm-linux-gnu)
179
+ racc (~> 1.4)
180
+ nokogiri (1.19.0-arm-linux-musl)
181
+ racc (~> 1.4)
182
+ nokogiri (1.19.0-arm64-darwin)
183
+ racc (~> 1.4)
184
+ nokogiri (1.19.0-x86_64-darwin)
185
+ racc (~> 1.4)
186
+ nokogiri (1.19.0-x86_64-linux-gnu)
187
+ racc (~> 1.4)
188
+ nokogiri (1.19.0-x86_64-linux-musl)
189
+ racc (~> 1.4)
190
+ parallel (1.27.0)
191
+ parser (3.3.10.1)
192
+ ast (~> 2.4.1)
193
+ racc
194
+ phlex (2.4.0)
195
+ refract (~> 1.0)
196
+ zeitwerk (~> 2.7)
197
+ phlex-rails (2.4.0)
198
+ phlex (~> 2.4.0)
199
+ railties (>= 7.1, < 9)
200
+ zeitwerk (~> 2.7)
201
+ pp (0.6.3)
202
+ prettyprint
203
+ pretty_please (0.2.0)
204
+ dispersion (~> 0.2)
205
+ prettyprint (0.2.0)
206
+ prism (1.8.0)
207
+ psych (5.3.1)
208
+ date
209
+ stringio
210
+ public_suffix (7.0.2)
211
+ racc (1.8.1)
212
+ rack (3.2.4)
213
+ rack-session (2.1.1)
214
+ base64 (>= 0.1.0)
215
+ rack (>= 3.0.0)
216
+ rack-test (2.2.0)
217
+ rack (>= 1.3)
218
+ rackup (2.3.1)
219
+ rack (>= 3)
220
+ rails (8.1.2)
221
+ actioncable (= 8.1.2)
222
+ actionmailbox (= 8.1.2)
223
+ actionmailer (= 8.1.2)
224
+ actionpack (= 8.1.2)
225
+ actiontext (= 8.1.2)
226
+ actionview (= 8.1.2)
227
+ activejob (= 8.1.2)
228
+ activemodel (= 8.1.2)
229
+ activerecord (= 8.1.2)
230
+ activestorage (= 8.1.2)
231
+ activesupport (= 8.1.2)
232
+ bundler (>= 1.15.0)
233
+ railties (= 8.1.2)
234
+ rails-dom-testing (2.3.0)
235
+ activesupport (>= 5.0.0)
236
+ minitest
237
+ nokogiri (>= 1.6)
238
+ rails-html-sanitizer (1.6.2)
239
+ loofah (~> 2.21)
240
+ 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)
241
+ railties (8.1.2)
242
+ actionpack (= 8.1.2)
243
+ activesupport (= 8.1.2)
244
+ irb (~> 1.13)
245
+ rackup (>= 1.0.0)
246
+ rake (>= 12.2)
247
+ thor (~> 1.0, >= 1.2.2)
248
+ tsort (>= 0.2)
249
+ zeitwerk (~> 2.6)
250
+ rainbow (3.1.1)
251
+ rake (13.3.1)
252
+ rdoc (7.1.0)
253
+ erb
254
+ psych (>= 4.0.0)
255
+ tsort
256
+ refract (1.1.0)
257
+ prism
258
+ zeitwerk
259
+ regexp_parser (2.11.3)
260
+ reline (0.6.3)
261
+ io-console (~> 0.5)
262
+ rubocop (1.82.1)
263
+ json (~> 2.3)
264
+ language_server-protocol (~> 3.17.0.2)
265
+ lint_roller (~> 1.1.0)
266
+ parallel (~> 1.10)
267
+ parser (>= 3.3.0.2)
268
+ rainbow (>= 2.2.2, < 4.0)
269
+ regexp_parser (>= 2.9.3, < 3.0)
270
+ rubocop-ast (>= 1.48.0, < 2.0)
271
+ ruby-progressbar (~> 1.7)
272
+ unicode-display_width (>= 2.4.0, < 4.0)
273
+ rubocop-ast (1.49.0)
274
+ parser (>= 3.3.7.2)
275
+ prism (~> 1.7)
276
+ rubocop-disable_syntax (0.2.0)
277
+ lint_roller
278
+ rubocop (>= 1.72.0)
279
+ rubocop-minitest (0.38.2)
280
+ lint_roller (~> 1.1)
281
+ rubocop (>= 1.75.0, < 2.0)
282
+ rubocop-ast (>= 1.38.0, < 2.0)
283
+ rubocop-packaging (0.6.0)
284
+ lint_roller (~> 1.1.0)
285
+ rubocop (>= 1.72.1, < 2.0)
286
+ rubocop-performance (1.26.1)
287
+ lint_roller (~> 1.1)
288
+ rubocop (>= 1.75.0, < 2.0)
289
+ rubocop-ast (>= 1.47.1, < 2.0)
290
+ rubocop-rails (2.34.3)
291
+ activesupport (>= 4.2.0)
292
+ lint_roller (~> 1.1)
293
+ rack (>= 1.1)
294
+ rubocop (>= 1.75.0, < 2.0)
295
+ rubocop-ast (>= 1.44.0, < 2.0)
296
+ rubocop-rake (0.7.1)
297
+ lint_roller (~> 1.1)
298
+ rubocop (>= 1.72.1)
299
+ ruby-progressbar (1.13.0)
300
+ securerandom (0.4.1)
301
+ stringio (3.2.0)
302
+ thor (1.5.0)
303
+ timeout (0.6.0)
304
+ tsort (0.2.0)
305
+ tzinfo (2.0.6)
306
+ concurrent-ruby (~> 1.0)
307
+ unicode-display_width (3.2.0)
308
+ unicode-emoji (~> 4.1)
309
+ unicode-emoji (4.2.0)
310
+ uri (1.1.1)
311
+ useragent (0.16.11)
312
+ websocket-driver (0.8.0)
313
+ base64
314
+ websocket-extensions (>= 0.1.0)
315
+ websocket-extensions (0.1.5)
316
+ xpath (3.2.0)
317
+ nokogiri (~> 1.8)
318
+ zeitwerk (2.7.4)
319
+
320
+ PLATFORMS
321
+ aarch64-linux
322
+ aarch64-linux-gnu
323
+ aarch64-linux-musl
324
+ arm-linux-gnu
325
+ arm-linux-musl
326
+ arm64-darwin
327
+ x86_64-darwin
328
+ x86_64-linux
329
+ x86_64-linux-gnu
330
+ x86_64-linux-musl
331
+
332
+ DEPENDENCIES
333
+ amazing_print
334
+ appraisal
335
+ capybara
336
+ debug
337
+ maxitest
338
+ minitest (~> 5.0)
339
+ minitest-difftastic
340
+ minitest-focus
341
+ minitest-spec-rails
342
+ phlex (>= 2.1.0, < 3.0.0)
343
+ phlex-rails (>= 2.1.0, < 3.0.0)
344
+ phlexible!
345
+ rails (>= 8.0.0)
346
+ rubocop-disable_syntax
347
+ rubocop-minitest
348
+ rubocop-packaging
349
+ rubocop-performance
350
+ rubocop-rails
351
+ rubocop-rake
352
+
353
+ CHECKSUMS
354
+ action_text-trix (2.1.16) sha256=f645a2c21821b8449fd1d6770708f4031c91a2eedf9ef476e9be93c64e703a8a
355
+ actioncable (8.1.2) sha256=dc31efc34cca9cdefc5c691ddb8b4b214c0ea5cd1372108cbc1377767fb91969
356
+ actionmailbox (8.1.2) sha256=058b2fb1980e5d5a894f675475fcfa45c62631103d5a2596d9610ec81581889b
357
+ actionmailer (8.1.2) sha256=f4c1d2060f653bfe908aa7fdc5a61c0e5279670de992146582f2e36f8b9175e9
358
+ actionpack (8.1.2) sha256=ced74147a1f0daafaa4bab7f677513fd4d3add574c7839958f7b4f1de44f8423
359
+ actiontext (8.1.2) sha256=0bf57da22a9c19d970779c3ce24a56be31b51c7640f2763ec64aa72e358d2d2d
360
+ actionview (8.1.2) sha256=80455b2588911c9b72cec22d240edacb7c150e800ef2234821269b2b2c3e2e5b
361
+ activejob (8.1.2) sha256=908dab3713b101859536375819f4156b07bdf4c232cc645e7538adb9e302f825
362
+ activemodel (8.1.2) sha256=e21358c11ce68aed3f9838b7e464977bc007b4446c6e4059781e1d5c03bcf33e
363
+ activerecord (8.1.2) sha256=acfbe0cadfcc50fa208011fe6f4eb01cae682ebae0ef57145ba45380c74bcc44
364
+ activestorage (8.1.2) sha256=8a63a48c3999caeee26a59441f813f94681fc35cc41aba7ce1f836add04fba76
365
+ activesupport (8.1.2) sha256=88842578ccd0d40f658289b0e8c842acfe9af751afee2e0744a7873f50b6fdae
366
+ addressable (2.8.8) sha256=7c13b8f9536cf6364c03b9d417c19986019e28f7c00ac8132da4eb0fe393b057
367
+ amazing_print (2.0.0) sha256=2e36aba46ac78d37ed27ca0e2056afe3583183bb5c64f157c246b267355e5d6a
368
+ appraisal (2.5.0) sha256=36989221be127913b0dba8d114da2001e6b2dceea7bd4951200eaba764eed3ce
369
+ ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383
370
+ base64 (0.3.0) sha256=27337aeabad6ffae05c265c450490628ef3ebd4b67be58257393227588f5a97b
371
+ bigdecimal (4.0.1) sha256=8b07d3d065a9f921c80ceaea7c9d4ae596697295b584c296fe599dd0ad01c4a7
372
+ builder (3.3.0) sha256=497918d2f9dca528fdca4b88d84e4ef4387256d984b8154e9d5d3fe5a9c8835f
373
+ capybara (3.40.0) sha256=42dba720578ea1ca65fd7a41d163dd368502c191804558f6e0f71b391054aeef
374
+ concurrent-ruby (1.3.6) sha256=6b56837e1e7e5292f9864f34b69c5a2cbc75c0cf5338f1ce9903d10fa762d5ab
375
+ connection_pool (3.0.2) sha256=33fff5ba71a12d2aa26cb72b1db8bba2a1a01823559fb01d29eb74c286e62e0a
376
+ crass (1.0.6) sha256=dc516022a56e7b3b156099abc81b6d2b08ea1ed12676ac7a5657617f012bd45d
377
+ date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0
378
+ debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6
379
+ difftastic (0.8.0) sha256=09bfb93be6b22a753d5c972db598cfc733907f6085b6d9fe8ac76c420ef233f3
380
+ difftastic (0.8.0-aarch64-linux) sha256=e79f439de7b68dccee4ea9865c0acc342ac5961bf218b7aa3c75b1362e9b46b4
381
+ difftastic (0.8.0-arm64-darwin) sha256=49dc3ef5cba13457d7dcd267356bb89c9612116702fffa860f4365c1b07df578
382
+ difftastic (0.8.0-x86_64-darwin) sha256=35defa1f13f47e91251c20cea917434e76ea2248f4ba5db2b87eb96d7bcc6140
383
+ difftastic (0.8.0-x86_64-linux) sha256=9c384dd9d2395b2b1b388922e1745f1472d19c4b3af9f83c0d22b30f6619208f
384
+ dispersion (0.2.0) sha256=64a375f82197b50633b55250d5eac976c412b7c28a7f8cbf8b5f74ced1aaf362
385
+ drb (2.2.3) sha256=0b00d6fdb50995fe4a45dea13663493c841112e4068656854646f418fda13373
386
+ erb (6.0.1) sha256=28ecdd99c5472aebd5674d6061e3c6b0a45c049578b071e5a52c2a7f13c197e5
387
+ erubi (1.13.1) sha256=a082103b0885dbc5ecf1172fede897f9ebdb745a4b97a5e8dc63953db1ee4ad9
388
+ globalid (1.3.0) sha256=05c639ad6eb4594522a0b07983022f04aa7254626ab69445a0e493aa3786ff11
389
+ i18n (1.14.8) sha256=285778639134865c5e0f6269e0b818256017e8cde89993fdfcbfb64d088824a5
390
+ io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc
391
+ irb (1.16.0) sha256=2abe56c9ac947cdcb2f150572904ba798c1e93c890c256f8429981a7675b0806
392
+ json (2.18.0) sha256=b10506aee4183f5cf49e0efc48073d7b75843ce3782c68dbeb763351c08fd505
393
+ language_server-protocol (3.17.0.5) sha256=fd1e39a51a28bf3eec959379985a72e296e9f9acfce46f6a79d31ca8760803cc
394
+ lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87
395
+ logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203
396
+ loofah (2.25.0) sha256=df5ed7ac3bac6a4ec802df3877ee5cc86d027299f8952e6243b3dac446b060e6
397
+ mail (2.9.0) sha256=6fa6673ecd71c60c2d996260f9ee3dd387d4673b8169b502134659ece6d34941
398
+ marcel (1.1.0) sha256=fdcfcfa33cc52e93c4308d40e4090a5d4ea279e160a7f6af988260fa970e0bee
399
+ matrix (0.4.3) sha256=a0d5ab7ddcc1973ff690ab361b67f359acbb16958d1dc072b8b956a286564c5b
400
+ maxitest (6.2.0) sha256=bb66472dd3f6565e4db5246826a05ce9096958d9e26ba9a8fdcae20288be1f4f
401
+ mini_mime (1.1.5) sha256=8681b7e2e4215f2a159f9400b5816d85e9d8c6c6b491e96a12797e798f8bccef
402
+ minitest (5.27.0) sha256=2d3b17f8a36fe7801c1adcffdbc38233b938eb0b4966e97a6739055a45fa77d5
403
+ minitest-difftastic (0.2.1) sha256=fc2c6e01cd839371772ed08604c9ce7b1567ee262e9dd4fef7d78665d1a99c45
404
+ minitest-focus (1.4.1) sha256=394517cbe2dcb2d992d8ffc41a3b2b6315777a4daa69239de4fefe7110dd810e
405
+ minitest-spec-rails (7.4.1) sha256=cda2638ded7cd98ab5f2bbf0eafbba9fdc4b0fc58248ad38703b12403831254f
406
+ net-imap (0.6.2) sha256=08caacad486853c61676cca0c0c47df93db02abc4a8239a8b67eb0981428acc6
407
+ net-pop (0.1.2) sha256=848b4e982013c15b2f0382792268763b748cce91c9e91e36b0f27ed26420dff3
408
+ net-protocol (0.2.2) sha256=aa73e0cba6a125369de9837b8d8ef82a61849360eba0521900e2c3713aa162a8
409
+ net-smtp (0.5.1) sha256=ed96a0af63c524fceb4b29b0d352195c30d82dd916a42f03c62a3a70e5b70736
410
+ nio4r (2.7.5) sha256=6c90168e48fb5f8e768419c93abb94ba2b892a1d0602cb06eef16d8b7df1dca1
411
+ nokogiri (1.19.0-aarch64-linux-gnu) sha256=11a97ecc3c0e7e5edcf395720b10860ef493b768f6aa80c539573530bc933767
412
+ nokogiri (1.19.0-aarch64-linux-musl) sha256=eb70507f5e01bc23dad9b8dbec2b36ad0e61d227b42d292835020ff754fb7ba9
413
+ nokogiri (1.19.0-arm-linux-gnu) sha256=572a259026b2c8b7c161fdb6469fa2d0edd2b61cd599db4bbda93289abefbfe5
414
+ nokogiri (1.19.0-arm-linux-musl) sha256=23ed90922f1a38aed555d3de4d058e90850c731c5b756d191b3dc8055948e73c
415
+ nokogiri (1.19.0-arm64-darwin) sha256=0811dfd936d5f6dd3f6d32ef790568bf29b2b7bead9ba68866847b33c9cf5810
416
+ nokogiri (1.19.0-x86_64-darwin) sha256=1dad56220b603a8edb9750cd95798bffa2b8dd9dd9aa47f664009ee5b43e3067
417
+ nokogiri (1.19.0-x86_64-linux-gnu) sha256=f482b95c713d60031d48c44ce14562f8d2ce31e3a9e8dd0ccb131e9e5a68b58c
418
+ nokogiri (1.19.0-x86_64-linux-musl) sha256=1c4ca6b381622420073ce6043443af1d321e8ed93cc18b08e2666e5bd02ffae4
419
+ parallel (1.27.0) sha256=4ac151e1806b755fb4e2dc2332cbf0e54f2e24ba821ff2d3dcf86bf6dc4ae130
420
+ parser (3.3.10.1) sha256=06f6a725d2cd91e5e7f2b7c32ba143631e1f7c8ae2fb918fc4cebec187e6a688
421
+ phlex (2.4.0) sha256=8aad2f0cd792d7b1bd287f15a1f89474c9cacac28120dc33d2a81467ae934067
422
+ phlex-rails (2.4.0) sha256=2bcddbd488681acb25753bab1887d3ac150e644244ff8ba307f2171a4d0195f5
423
+ phlexible (3.0.0)
424
+ pp (0.6.3) sha256=2951d514450b93ccfeb1df7d021cae0da16e0a7f95ee1e2273719669d0ab9df6
425
+ pretty_please (0.2.0) sha256=1f00296f946ae8ffd53db25803ed3998d615b9cc07526517dc75fcca6af3a0d3
426
+ prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193
427
+ prism (1.8.0) sha256=84453a16ef5530ea62c5f03ec16b52a459575ad4e7b9c2b360fd8ce2c39c1254
428
+ psych (5.3.1) sha256=eb7a57cef10c9d70173ff74e739d843ac3b2c019a003de48447b2963d81b1974
429
+ public_suffix (7.0.2) sha256=9114090c8e4e7135c1fd0e7acfea33afaab38101884320c65aaa0ffb8e26a857
430
+ racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f
431
+ rack (3.2.4) sha256=5d74b6f75082a643f43c1e76b419c40f0e5527fcfee1e669ac1e6b73c0ccb6f6
432
+ rack-session (2.1.1) sha256=0b6dc07dea7e4b583f58a48e8b806d4c9f1c6c9214ebc202ec94562cbea2e4e9
433
+ rack-test (2.2.0) sha256=005a36692c306ac0b4a9350355ee080fd09ddef1148a5f8b2ac636c720f5c463
434
+ rackup (2.3.1) sha256=6c79c26753778e90983761d677a48937ee3192b3ffef6bc963c0950f94688868
435
+ rails (8.1.2) sha256=5069061b23dfa8706b9f0159ae8b9d35727359103178a26962b868a680ba7d95
436
+ rails-dom-testing (2.3.0) sha256=8acc7953a7b911ca44588bf08737bc16719f431a1cc3091a292bca7317925c1d
437
+ rails-html-sanitizer (1.6.2) sha256=35fce2ca8242da8775c83b6ba9c1bcaad6751d9eb73c1abaa8403475ab89a560
438
+ railties (8.1.2) sha256=1289ece76b4f7668fc46d07e55cc992b5b8751f2ad85548b7da351b8c59f8055
439
+ rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a
440
+ rake (13.3.1) sha256=8c9e89d09f66a26a01264e7e3480ec0607f0c497a861ef16063604b1b08eb19c
441
+ rdoc (7.1.0) sha256=494899df0706c178596ca6e1d50f1b7eb285a9b2aae715be5abd742734f17363
442
+ refract (1.1.0) sha256=ee3b9627e39f7692831101e2fedd73e0d09a592ff5d5c05f171d14211fc7a9c7
443
+ regexp_parser (2.11.3) sha256=ca13f381a173b7a93450e53459075c9b76a10433caadcb2f1180f2c741fc55a4
444
+ reline (0.6.3) sha256=1198b04973565b36ec0f11542ab3f5cfeeec34823f4e54cebde90968092b1835
445
+ rubocop (1.82.1) sha256=09f1a6a654a960eda767aebea33e47603080f8e9c9a3f019bf9b94c9cab5e273
446
+ rubocop-ast (1.49.0) sha256=49c3676d3123a0923d333e20c6c2dbaaae2d2287b475273fddee0c61da9f71fd
447
+ rubocop-disable_syntax (0.2.0) sha256=1e61645773b3fc2f74e995ec65f605f7db59437c274fdfd4f385f60bf86af73e
448
+ rubocop-minitest (0.38.2) sha256=5a9dfb5a538973d0601aa51e59637d3998bb8df81233edf1ff421504c6280068
449
+ rubocop-packaging (0.6.0) sha256=fb92bd0fb48e6f8cdb1648d2249b0cd51c2497dcc87340132d22f01edbf558a7
450
+ rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834
451
+ rubocop-rails (2.34.3) sha256=10d37989024865ecda8199f311f3faca990143fbac967de943f88aca11eb9ad2
452
+ rubocop-rake (0.7.1) sha256=3797f2b6810c3e9df7376c26d5f44f3475eda59eb1adc38e6f62ecf027cbae4d
453
+ ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33
454
+ securerandom (0.4.1) sha256=cc5193d414a4341b6e225f0cb4446aceca8e50d5e1888743fac16987638ea0b1
455
+ stringio (3.2.0) sha256=c37cb2e58b4ffbd33fe5cd948c05934af997b36e0b6ca6fdf43afa234cf222e1
456
+ thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73
457
+ timeout (0.6.0) sha256=6d722ad619f96ee383a0c557ec6eb8c4ecb08af3af62098a0be5057bf00de1af
458
+ tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f
459
+ tzinfo (2.0.6) sha256=8daf828cc77bcf7d63b0e3bdb6caa47e2272dcfaf4fbfe46f8c3a9df087a829b
460
+ unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42
461
+ unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f
462
+ uri (1.1.1) sha256=379fa58d27ffb1387eaada68c749d1426738bd0f654d812fcc07e7568f5c57c6
463
+ useragent (0.16.11) sha256=700e6413ad4bb954bb63547fa098dddf7b0ebe75b40cc6f93b8d54255b173844
464
+ websocket-driver (0.8.0) sha256=ed0dba4b943c22f17f9a734817e808bc84cdce6a7e22045f5315aa57676d4962
465
+ websocket-extensions (0.1.5) sha256=1c6ba63092cda343eb53fc657110c71c754c56484aad42578495227d717a8241
466
+ xpath (3.2.0) sha256=6dfda79d91bb3b949b947ecc5919f042ef2f399b904013eb3ef6d20dd3a4082e
467
+ zeitwerk (2.7.4) sha256=2bef90f356bdafe9a6c2bd32bcd804f83a4f9b8bc27f3600fff051eb3edcec8b
468
+
469
+ BUNDLED WITH
470
+ 4.0.4
@@ -22,21 +22,21 @@ module Phlexible
22
22
 
23
23
  private
24
24
 
25
- def page_title
26
- title = []
25
+ def page_title
26
+ title = []
27
27
 
28
- klass = self.class
29
- while klass.respond_to?(:page_title)
30
- title << if klass.page_title.is_a?(Proc)
31
- instance_exec(&klass.page_title)
32
- else
33
- klass.page_title
34
- end
28
+ klass = self.class
29
+ while klass.respond_to?(:page_title)
30
+ title << if klass.page_title.is_a?(Proc)
31
+ instance_exec(&klass.page_title)
32
+ else
33
+ klass.page_title
34
+ end
35
35
 
36
- klass = klass.superclass
37
- end
36
+ klass = klass.superclass
37
+ end
38
38
 
39
- title.compact.join(' - ')
40
- end
39
+ title.compact.join(' - ')
40
+ end
41
41
  end
42
42
  end
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+
3
+ # rubocop:disable Style/DocumentDynamicEvalDefinition
4
+ module Phlexible::ProcessAttributes
5
+ if Phlex::VERSION >= '2.0.0'
6
+ def register_element(method_name, tag: method_name.name.tr('_', '-'))
7
+ super
8
+
9
+ wrapper = Module.new do
10
+ define_method(method_name) do |**attributes, &block|
11
+ attributes = process_attributes(attributes) if respond_to?(:process_attributes)
12
+ super(**attributes, &block)
13
+ end
14
+ end
15
+ prepend wrapper
16
+ end
17
+
18
+ module StandardElements
19
+ Phlex::HTML::StandardElements.public_instance_methods(false).each do |element|
20
+ class_eval(<<~RUBY, __FILE__, __LINE__ + 1)
21
+ # frozen_string_literal: true
22
+
23
+ def #{element}(**attributes, &content)
24
+ attributes = process_attributes(attributes) if respond_to?(:process_attributes)
25
+ super(**attributes, &content)
26
+ end
27
+ RUBY
28
+ end
29
+ end
30
+
31
+ module VoidElements
32
+ Phlex::HTML::VoidElements.public_instance_methods(false).each do |element|
33
+ class_eval(<<~RUBY, __FILE__, __LINE__ + 1)
34
+ # frozen_string_literal: true
35
+
36
+ def #{element}(**attributes)
37
+ attributes = process_attributes(attributes) if respond_to?(:process_attributes)
38
+ super(**attributes)
39
+ end
40
+ RUBY
41
+ end
42
+ end
43
+ end
44
+ end
45
+ # rubocop:enable Style/DocumentDynamicEvalDefinition
46
+
47
+ # rubocop:disable Rails/NegateInclude
48
+ if Phlex::VERSION >= '2.0.0'
49
+ if !Phlex::HTML::StandardElements.include?(Phlexible::ProcessAttributes::StandardElements)
50
+ Phlex::HTML::StandardElements.prepend Phlexible::ProcessAttributes::StandardElements
51
+ end
52
+ if !Phlex::HTML::VoidElements.include?(Phlexible::ProcessAttributes::VoidElements)
53
+ Phlex::HTML::VoidElements.prepend Phlexible::ProcessAttributes::VoidElements
54
+ end
55
+ end
56
+ # rubocop:enable Rails/NegateInclude
@@ -40,20 +40,28 @@ module Phlexible
40
40
  def render_plex_view(options)
41
41
  options[:action] ||= action_name
42
42
 
43
- return unless (view = phlex_view(options[:action]))
43
+ return if !(view = phlex_view(options[:action]))
44
44
 
45
45
  render view.new, options
46
46
  end
47
47
 
48
48
  private
49
49
 
50
- def phlex_view(action_name = @_action_name)
51
- phlex_view_path(action_name).camelize.safe_constantize
52
- end
50
+ def phlex_view(action_name = @_action_name)
51
+ phlex_view_path(action_name).camelize.safe_constantize
52
+ end
53
53
 
54
- def phlex_view_path(action_name)
55
- "#{controller_path}/#{action_name}_view"
56
- end
54
+ # Constructs the path to the Phlex view class for a given action.
55
+ #
56
+ # This method builds a conventional path by combining the controller's path with the
57
+ # action name, appending "_view" as a suffix. The resulting path is later camelized
58
+ # and constantized to resolve the actual Phlex view class.
59
+ #
60
+ # @param action_name [String] The name of the controller action.
61
+ # @return [String] The view path (e.g., "users/index_view" for UsersController#index).
62
+ def phlex_view_path(action_name)
63
+ "#{controller_path}/#{action_name}_view"
64
+ end
57
65
  end
58
66
  end
59
67
  end