view_component 3.25.0 → 4.0.0.alpha1

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 (60) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/concerns/view_component/preview_actions.rb +2 -9
  3. data/app/controllers/view_components_system_test_controller.rb +17 -29
  4. data/app/views/test_mailer/test_asset_email.html.erb +1 -0
  5. data/app/views/view_components/preview.html.erb +1 -9
  6. data/docs/CHANGELOG.md +77 -17
  7. data/lib/view_component/base.rb +49 -100
  8. data/lib/view_component/collection.rb +12 -19
  9. data/lib/view_component/compiler.rb +50 -74
  10. data/lib/view_component/config.rb +0 -21
  11. data/lib/view_component/deprecation.rb +1 -1
  12. data/lib/view_component/engine.rb +3 -82
  13. data/lib/view_component/errors.rb +16 -22
  14. data/lib/view_component/inline_template.rb +2 -4
  15. data/lib/view_component/instrumentation.rb +5 -11
  16. data/lib/view_component/preview.rb +3 -12
  17. data/lib/view_component/request_details.rb +30 -0
  18. data/lib/view_component/slot.rb +3 -6
  19. data/lib/view_component/slotable.rb +30 -37
  20. data/lib/view_component/system_test_helpers.rb +1 -2
  21. data/lib/view_component/template.rb +106 -83
  22. data/lib/view_component/test_helpers.rb +22 -42
  23. data/lib/view_component/translatable.rb +24 -23
  24. data/lib/view_component/use_helpers.rb +3 -4
  25. data/lib/view_component/version.rb +3 -3
  26. data/lib/view_component.rb +0 -1
  27. metadata +88 -124
  28. data/app/assets/vendor/prism.css +0 -4
  29. data/app/assets/vendor/prism.min.js +0 -12
  30. data/app/helpers/preview_helper.rb +0 -85
  31. data/app/views/view_components/_preview_source.html.erb +0 -17
  32. data/lib/rails/generators/abstract_generator.rb +0 -56
  33. data/lib/rails/generators/component/component_generator.rb +0 -67
  34. data/lib/rails/generators/component/templates/component.rb.tt +0 -16
  35. data/lib/rails/generators/erb/component_generator.rb +0 -33
  36. data/lib/rails/generators/erb/templates/component.html.erb.tt +0 -1
  37. data/lib/rails/generators/haml/component_generator.rb +0 -22
  38. data/lib/rails/generators/haml/templates/component.html.haml.tt +0 -1
  39. data/lib/rails/generators/locale/component_generator.rb +0 -46
  40. data/lib/rails/generators/preview/component_generator.rb +0 -39
  41. data/lib/rails/generators/preview/templates/component_preview.rb.tt +0 -9
  42. data/lib/rails/generators/rspec/component_generator.rb +0 -31
  43. data/lib/rails/generators/rspec/templates/component_spec.rb.tt +0 -15
  44. data/lib/rails/generators/slim/component_generator.rb +0 -22
  45. data/lib/rails/generators/slim/templates/component.html.slim.tt +0 -1
  46. data/lib/rails/generators/stimulus/component_generator.rb +0 -44
  47. data/lib/rails/generators/stimulus/templates/component_controller.js.tt +0 -7
  48. data/lib/rails/generators/stimulus/templates/component_controller.ts.tt +0 -9
  49. data/lib/rails/generators/tailwindcss/component_generator.rb +0 -11
  50. data/lib/rails/generators/tailwindcss/templates/component.html.erb.tt +0 -1
  51. data/lib/rails/generators/test_unit/component_generator.rb +0 -20
  52. data/lib/rails/generators/test_unit/templates/component_test.rb.tt +0 -12
  53. data/lib/view_component/component_error.rb +0 -6
  54. data/lib/view_component/rails/tasks/view_component.rake +0 -20
  55. data/lib/view_component/render_component_helper.rb +0 -10
  56. data/lib/view_component/render_component_to_string_helper.rb +0 -9
  57. data/lib/view_component/render_monkey_patch.rb +0 -13
  58. data/lib/view_component/render_to_string_monkey_patch.rb +0 -13
  59. data/lib/view_component/rendering_component_helper.rb +0 -9
  60. data/lib/view_component/rendering_monkey_patch.rb +0 -13
@@ -12,13 +12,12 @@ module ViewComponent::UseHelpers
12
12
  helper_method_name = full_helper_method_name(helper_method, prefix: prefix, source: from)
13
13
 
14
14
  class_eval(<<-RUBY, __FILE__, __LINE__ + 1)
15
- def #{helper_method_name}(*args, &block)
15
+ def #{helper_method_name}(...)
16
16
  raise HelpersCalledBeforeRenderError if view_context.nil?
17
17
 
18
18
  #{define_helper(helper_method: helper_method, source: from)}
19
19
  end
20
20
  RUBY
21
- ruby2_keywords(helper_method_name) if respond_to?(:ruby2_keywords, true)
22
21
  end
23
22
 
24
23
  private
@@ -34,9 +33,9 @@ module ViewComponent::UseHelpers
34
33
  end
35
34
 
36
35
  def define_helper(helper_method:, source:)
37
- return "__vc_original_view_context.#{helper_method}(*args, &block)" unless source.present?
36
+ return "__vc_original_view_context.#{helper_method}(...)" unless source.present?
38
37
 
39
- "#{source}.instance_method(:#{helper_method}).bind(self).call(*args, &block)"
38
+ "#{source}.instance_method(:#{helper_method}).bind(self).call(...)"
40
39
  end
41
40
  end
42
41
  end
@@ -2,10 +2,10 @@
2
2
 
3
3
  module ViewComponent
4
4
  module VERSION
5
- MAJOR = 3
6
- MINOR = 25
5
+ MAJOR = 4
6
+ MINOR = 0
7
7
  PATCH = 0
8
- PRE = nil
8
+ PRE = "alpha1"
9
9
 
10
10
  STRING = [MAJOR, MINOR, PATCH, PRE].compact.join(".")
11
11
  end
@@ -10,7 +10,6 @@ module ViewComponent
10
10
  autoload :CaptureCompatibility
11
11
  autoload :Compiler
12
12
  autoload :CompileCache
13
- autoload :ComponentError
14
13
  autoload :Config
15
14
  autoload :Deprecation
16
15
  autoload :InlineTemplate
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: view_component
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.25.0
4
+ version: 4.0.0.alpha1
5
5
  platform: ruby
6
6
  authors:
7
7
  - ViewComponent Team
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2026-06-05 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: activesupport
@@ -16,34 +15,20 @@ dependencies:
16
15
  requirements:
17
16
  - - ">="
18
17
  - !ruby/object:Gem::Version
19
- version: 5.2.0
18
+ version: 7.1.0
20
19
  - - "<"
21
20
  - !ruby/object:Gem::Version
22
- version: '8.2'
21
+ version: '8.1'
23
22
  type: :runtime
24
23
  prerelease: false
25
24
  version_requirements: !ruby/object:Gem::Requirement
26
25
  requirements:
27
26
  - - ">="
28
27
  - !ruby/object:Gem::Version
29
- version: 5.2.0
28
+ version: 7.1.0
30
29
  - - "<"
31
30
  - !ruby/object:Gem::Version
32
- version: '8.2'
33
- - !ruby/object:Gem::Dependency
34
- name: method_source
35
- requirement: !ruby/object:Gem::Requirement
36
- requirements:
37
- - - "~>"
38
- - !ruby/object:Gem::Version
39
- version: '1.0'
40
- type: :runtime
41
- prerelease: false
42
- version_requirements: !ruby/object:Gem::Requirement
43
- requirements:
44
- - - "~>"
45
- - !ruby/object:Gem::Version
46
- version: '1.0'
31
+ version: '8.1'
47
32
  - !ruby/object:Gem::Dependency
48
33
  name: concurrent-ruby
49
34
  requirement: !ruby/object:Gem::Requirement
@@ -62,44 +47,44 @@ dependencies:
62
47
  name: allocation_stats
63
48
  requirement: !ruby/object:Gem::Requirement
64
49
  requirements:
65
- - - "~>"
50
+ - - ">="
66
51
  - !ruby/object:Gem::Version
67
- version: 0.1.5
52
+ version: '0'
68
53
  type: :development
69
54
  prerelease: false
70
55
  version_requirements: !ruby/object:Gem::Requirement
71
56
  requirements:
72
- - - "~>"
57
+ - - ">="
73
58
  - !ruby/object:Gem::Version
74
- version: 0.1.5
59
+ version: '0'
75
60
  - !ruby/object:Gem::Dependency
76
61
  name: appraisal
77
62
  requirement: !ruby/object:Gem::Requirement
78
63
  requirements:
79
64
  - - "~>"
80
65
  - !ruby/object:Gem::Version
81
- version: '2.4'
66
+ version: '2'
82
67
  type: :development
83
68
  prerelease: false
84
69
  version_requirements: !ruby/object:Gem::Requirement
85
70
  requirements:
86
71
  - - "~>"
87
72
  - !ruby/object:Gem::Version
88
- version: '2.4'
73
+ version: '2'
89
74
  - !ruby/object:Gem::Dependency
90
75
  name: benchmark-ips
91
76
  requirement: !ruby/object:Gem::Requirement
92
77
  requirements:
93
78
  - - "~>"
94
79
  - !ruby/object:Gem::Version
95
- version: 2.13.0
80
+ version: '2'
96
81
  type: :development
97
82
  prerelease: false
98
83
  version_requirements: !ruby/object:Gem::Requirement
99
84
  requirements:
100
85
  - - "~>"
101
86
  - !ruby/object:Gem::Version
102
- version: 2.13.0
87
+ version: '2'
103
88
  - !ruby/object:Gem::Dependency
104
89
  name: better_html
105
90
  requirement: !ruby/object:Gem::Requirement
@@ -144,20 +129,6 @@ dependencies:
144
129
  version: '3'
145
130
  - !ruby/object:Gem::Dependency
146
131
  name: cuprite
147
- requirement: !ruby/object:Gem::Requirement
148
- requirements:
149
- - - "~>"
150
- - !ruby/object:Gem::Version
151
- version: '0.15'
152
- type: :development
153
- prerelease: false
154
- version_requirements: !ruby/object:Gem::Requirement
155
- requirements:
156
- - - "~>"
157
- - !ruby/object:Gem::Version
158
- version: '0.15'
159
- - !ruby/object:Gem::Dependency
160
- name: debug
161
132
  requirement: !ruby/object:Gem::Requirement
162
133
  requirements:
163
134
  - - ">="
@@ -227,33 +198,33 @@ dependencies:
227
198
  - !ruby/object:Gem::Version
228
199
  version: '1'
229
200
  - !ruby/object:Gem::Dependency
230
- name: minitest
201
+ name: method_source
231
202
  requirement: !ruby/object:Gem::Requirement
232
203
  requirements:
233
204
  - - "~>"
234
205
  - !ruby/object:Gem::Version
235
- version: '5.18'
206
+ version: '1'
236
207
  type: :development
237
208
  prerelease: false
238
209
  version_requirements: !ruby/object:Gem::Requirement
239
210
  requirements:
240
211
  - - "~>"
241
212
  - !ruby/object:Gem::Version
242
- version: '5.18'
213
+ version: '1'
243
214
  - !ruby/object:Gem::Dependency
244
- name: pry
215
+ name: minitest
245
216
  requirement: !ruby/object:Gem::Requirement
246
217
  requirements:
247
218
  - - "~>"
248
219
  - !ruby/object:Gem::Version
249
- version: '0.13'
220
+ version: '5'
250
221
  type: :development
251
222
  prerelease: false
252
223
  version_requirements: !ruby/object:Gem::Requirement
253
224
  requirements:
254
225
  - - "~>"
255
226
  - !ruby/object:Gem::Version
256
- version: '0.13'
227
+ version: '5'
257
228
  - !ruby/object:Gem::Dependency
258
229
  name: puma
259
230
  requirement: !ruby/object:Gem::Requirement
@@ -274,140 +245,154 @@ dependencies:
274
245
  requirements:
275
246
  - - "~>"
276
247
  - !ruby/object:Gem::Version
277
- version: '13.0'
248
+ version: '13'
278
249
  type: :development
279
250
  prerelease: false
280
251
  version_requirements: !ruby/object:Gem::Requirement
281
252
  requirements:
282
253
  - - "~>"
283
254
  - !ruby/object:Gem::Version
284
- version: '13.0'
255
+ version: '13'
256
+ - !ruby/object:Gem::Dependency
257
+ name: redis
258
+ requirement: !ruby/object:Gem::Requirement
259
+ requirements:
260
+ - - ">="
261
+ - !ruby/object:Gem::Version
262
+ version: '0'
263
+ type: :development
264
+ prerelease: false
265
+ version_requirements: !ruby/object:Gem::Requirement
266
+ requirements:
267
+ - - ">="
268
+ - !ruby/object:Gem::Version
269
+ version: '0'
285
270
  - !ruby/object:Gem::Dependency
286
271
  name: rspec-rails
287
272
  requirement: !ruby/object:Gem::Requirement
288
273
  requirements:
289
274
  - - "~>"
290
275
  - !ruby/object:Gem::Version
291
- version: '5'
276
+ version: '7'
292
277
  type: :development
293
278
  prerelease: false
294
279
  version_requirements: !ruby/object:Gem::Requirement
295
280
  requirements:
296
281
  - - "~>"
297
282
  - !ruby/object:Gem::Version
298
- version: '5'
283
+ version: '7'
299
284
  - !ruby/object:Gem::Dependency
300
285
  name: rubocop-md
301
286
  requirement: !ruby/object:Gem::Requirement
302
287
  requirements:
303
288
  - - "~>"
304
289
  - !ruby/object:Gem::Version
305
- version: '1'
290
+ version: '2'
306
291
  type: :development
307
292
  prerelease: false
308
293
  version_requirements: !ruby/object:Gem::Requirement
309
294
  requirements:
310
295
  - - "~>"
311
296
  - !ruby/object:Gem::Version
312
- version: '1'
297
+ version: '2'
313
298
  - !ruby/object:Gem::Dependency
314
299
  name: selenium-webdriver
315
300
  requirement: !ruby/object:Gem::Requirement
316
301
  requirements:
317
- - - '='
302
+ - - "~>"
318
303
  - !ruby/object:Gem::Version
319
- version: 4.9.0
304
+ version: '4'
320
305
  type: :development
321
306
  prerelease: false
322
307
  version_requirements: !ruby/object:Gem::Requirement
323
308
  requirements:
324
- - - '='
309
+ - - "~>"
325
310
  - !ruby/object:Gem::Version
326
- version: 4.9.0
311
+ version: '4'
327
312
  - !ruby/object:Gem::Dependency
328
- name: sprockets-rails
313
+ name: simplecov-console
329
314
  requirement: !ruby/object:Gem::Requirement
330
315
  requirements:
331
- - - "~>"
316
+ - - "<"
332
317
  - !ruby/object:Gem::Version
333
- version: 3.4.2
318
+ version: '1'
334
319
  type: :development
335
320
  prerelease: false
336
321
  version_requirements: !ruby/object:Gem::Requirement
337
322
  requirements:
338
- - - "~>"
323
+ - - "<"
339
324
  - !ruby/object:Gem::Version
340
- version: 3.4.2
325
+ version: '1'
341
326
  - !ruby/object:Gem::Dependency
342
- name: standard
327
+ name: simplecov
343
328
  requirement: !ruby/object:Gem::Requirement
344
329
  requirements:
345
- - - "~>"
330
+ - - "<"
346
331
  - !ruby/object:Gem::Version
347
332
  version: '1'
348
333
  type: :development
349
334
  prerelease: false
350
335
  version_requirements: !ruby/object:Gem::Requirement
351
336
  requirements:
352
- - - "~>"
337
+ - - "<"
353
338
  - !ruby/object:Gem::Version
354
339
  version: '1'
355
340
  - !ruby/object:Gem::Dependency
356
- name: simplecov
341
+ name: slim
357
342
  requirement: !ruby/object:Gem::Requirement
358
343
  requirements:
359
344
  - - "~>"
360
345
  - !ruby/object:Gem::Version
361
- version: 0.22.0
346
+ version: '5'
362
347
  type: :development
363
348
  prerelease: false
364
349
  version_requirements: !ruby/object:Gem::Requirement
365
350
  requirements:
366
351
  - - "~>"
367
352
  - !ruby/object:Gem::Version
368
- version: 0.22.0
353
+ version: '5'
369
354
  - !ruby/object:Gem::Dependency
370
- name: simplecov-console
355
+ name: sprockets-rails
371
356
  requirement: !ruby/object:Gem::Requirement
372
357
  requirements:
373
358
  - - "~>"
374
359
  - !ruby/object:Gem::Version
375
- version: 0.9.1
360
+ version: '3'
376
361
  type: :development
377
362
  prerelease: false
378
363
  version_requirements: !ruby/object:Gem::Requirement
379
364
  requirements:
380
365
  - - "~>"
381
366
  - !ruby/object:Gem::Version
382
- version: 0.9.1
367
+ version: '3'
383
368
  - !ruby/object:Gem::Dependency
384
- name: slim
369
+ name: standard
385
370
  requirement: !ruby/object:Gem::Requirement
386
371
  requirements:
387
372
  - - "~>"
388
373
  - !ruby/object:Gem::Version
389
- version: '5.1'
374
+ version: '1'
390
375
  type: :development
391
376
  prerelease: false
392
377
  version_requirements: !ruby/object:Gem::Requirement
393
378
  requirements:
394
379
  - - "~>"
395
380
  - !ruby/object:Gem::Version
396
- version: '5.1'
381
+ version: '1'
397
382
  - !ruby/object:Gem::Dependency
398
383
  name: turbo-rails
399
384
  requirement: !ruby/object:Gem::Requirement
400
385
  requirements:
401
386
  - - "~>"
402
387
  - !ruby/object:Gem::Version
403
- version: '1'
388
+ version: '2'
404
389
  type: :development
405
390
  prerelease: false
406
391
  version_requirements: !ruby/object:Gem::Requirement
407
392
  requirements:
408
393
  - - "~>"
409
394
  - !ruby/object:Gem::Version
410
- version: '1'
395
+ version: '2'
411
396
  - !ruby/object:Gem::Dependency
412
397
  name: warning
413
398
  requirement: !ruby/object:Gem::Requirement
@@ -422,82 +407,69 @@ dependencies:
422
407
  - - ">="
423
408
  - !ruby/object:Gem::Version
424
409
  version: '0'
410
+ - !ruby/object:Gem::Dependency
411
+ name: yard-activesupport-concern
412
+ requirement: !ruby/object:Gem::Requirement
413
+ requirements:
414
+ - - "<"
415
+ - !ruby/object:Gem::Version
416
+ version: '1'
417
+ type: :development
418
+ prerelease: false
419
+ version_requirements: !ruby/object:Gem::Requirement
420
+ requirements:
421
+ - - "<"
422
+ - !ruby/object:Gem::Version
423
+ version: '1'
425
424
  - !ruby/object:Gem::Dependency
426
425
  name: yard
427
426
  requirement: !ruby/object:Gem::Requirement
428
427
  requirements:
429
- - - "~>"
428
+ - - "<"
430
429
  - !ruby/object:Gem::Version
431
- version: 0.9.34
430
+ version: '1'
432
431
  type: :development
433
432
  prerelease: false
434
433
  version_requirements: !ruby/object:Gem::Requirement
435
434
  requirements:
436
- - - "~>"
435
+ - - "<"
437
436
  - !ruby/object:Gem::Version
438
- version: 0.9.34
437
+ version: '1'
439
438
  - !ruby/object:Gem::Dependency
440
- name: yard-activesupport-concern
439
+ name: propshaft
441
440
  requirement: !ruby/object:Gem::Requirement
442
441
  requirements:
443
442
  - - "~>"
444
443
  - !ruby/object:Gem::Version
445
- version: 0.0.1
444
+ version: '1'
446
445
  type: :development
447
446
  prerelease: false
448
447
  version_requirements: !ruby/object:Gem::Requirement
449
448
  requirements:
450
449
  - - "~>"
451
450
  - !ruby/object:Gem::Version
452
- version: 0.0.1
453
- description:
454
- email:
451
+ version: '1'
455
452
  executables: []
456
453
  extensions: []
457
454
  extra_rdoc_files: []
458
455
  files:
459
456
  - LICENSE.txt
460
457
  - README.md
461
- - app/assets/vendor/prism.css
462
- - app/assets/vendor/prism.min.js
463
458
  - app/controllers/concerns/view_component/preview_actions.rb
464
459
  - app/controllers/view_components_controller.rb
465
460
  - app/controllers/view_components_system_test_controller.rb
466
- - app/helpers/preview_helper.rb
461
+ - app/views/test_mailer/test_asset_email.html.erb
467
462
  - app/views/test_mailer/test_email.html.erb
468
- - app/views/view_components/_preview_source.html.erb
469
463
  - app/views/view_components/index.html.erb
470
464
  - app/views/view_components/preview.html.erb
471
465
  - app/views/view_components/previews.html.erb
472
466
  - docs/CHANGELOG.md
473
- - lib/rails/generators/abstract_generator.rb
474
- - lib/rails/generators/component/component_generator.rb
475
- - lib/rails/generators/component/templates/component.rb.tt
476
- - lib/rails/generators/erb/component_generator.rb
477
- - lib/rails/generators/erb/templates/component.html.erb.tt
478
- - lib/rails/generators/haml/component_generator.rb
479
- - lib/rails/generators/haml/templates/component.html.haml.tt
480
- - lib/rails/generators/locale/component_generator.rb
481
- - lib/rails/generators/preview/component_generator.rb
482
- - lib/rails/generators/preview/templates/component_preview.rb.tt
483
- - lib/rails/generators/rspec/component_generator.rb
484
- - lib/rails/generators/rspec/templates/component_spec.rb.tt
485
- - lib/rails/generators/slim/component_generator.rb
486
- - lib/rails/generators/slim/templates/component.html.slim.tt
487
- - lib/rails/generators/stimulus/component_generator.rb
488
- - lib/rails/generators/stimulus/templates/component_controller.js.tt
489
- - lib/rails/generators/stimulus/templates/component_controller.ts.tt
490
- - lib/rails/generators/tailwindcss/component_generator.rb
491
- - lib/rails/generators/tailwindcss/templates/component.html.erb.tt
492
- - lib/rails/generators/test_unit/component_generator.rb
493
- - lib/rails/generators/test_unit/templates/component_test.rb.tt
494
467
  - lib/view_component.rb
495
468
  - lib/view_component/base.rb
496
469
  - lib/view_component/capture_compatibility.rb
497
470
  - lib/view_component/collection.rb
498
471
  - lib/view_component/compile_cache.rb
499
472
  - lib/view_component/compiler.rb
500
- - lib/view_component/component_error.rb
501
473
  - lib/view_component/config.rb
502
474
  - lib/view_component/configurable.rb
503
475
  - lib/view_component/deprecation.rb
@@ -506,13 +478,7 @@ files:
506
478
  - lib/view_component/inline_template.rb
507
479
  - lib/view_component/instrumentation.rb
508
480
  - lib/view_component/preview.rb
509
- - lib/view_component/rails/tasks/view_component.rake
510
- - lib/view_component/render_component_helper.rb
511
- - lib/view_component/render_component_to_string_helper.rb
512
- - lib/view_component/render_monkey_patch.rb
513
- - lib/view_component/render_to_string_monkey_patch.rb
514
- - lib/view_component/rendering_component_helper.rb
515
- - lib/view_component/rendering_monkey_patch.rb
481
+ - lib/view_component/request_details.rb
516
482
  - lib/view_component/slot.rb
517
483
  - lib/view_component/slotable.rb
518
484
  - lib/view_component/slotable_default.rb
@@ -532,7 +498,6 @@ metadata:
532
498
  allowed_push_host: https://rubygems.org
533
499
  source_code_uri: https://github.com/viewcomponent/view_component
534
500
  changelog_uri: https://github.com/ViewComponent/view_component/blob/main/docs/CHANGELOG.md
535
- post_install_message:
536
501
  rdoc_options: []
537
502
  require_paths:
538
503
  - lib
@@ -540,15 +505,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
540
505
  requirements:
541
506
  - - ">="
542
507
  - !ruby/object:Gem::Version
543
- version: 2.7.0
508
+ version: 3.2.0
544
509
  required_rubygems_version: !ruby/object:Gem::Requirement
545
510
  requirements:
546
511
  - - ">="
547
512
  - !ruby/object:Gem::Version
548
513
  version: '0'
549
514
  requirements: []
550
- rubygems_version: 3.0.3.1
551
- signing_key:
515
+ rubygems_version: 3.6.8
552
516
  specification_version: 4
553
517
  summary: A framework for building reusable, testable & encapsulated view components
554
518
  in Ruby on Rails.
@@ -1,4 +0,0 @@
1
- /* PrismJS 1.28.0
2
- https://prismjs.com/download.html#themes=prism-tomorrow&languages=markup+clike+erb+haml+markup-templating+ruby&plugins=line-highlight+highlight-keywords+normalize-whitespace */
3
- code[class*=language-],pre[class*=language-]{color:#ccc;background:0 0;font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.block-comment,.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#999}.token.punctuation{color:#ccc}.token.attr-name,.token.deleted,.token.namespace,.token.tag{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.function,.token.number{color:#f08d49}.token.class-name,.token.constant,.token.property,.token.symbol{color:#f8c555}.token.atrule,.token.builtin,.token.important,.token.keyword,.token.selector{color:#cc99cd}.token.attr-value,.token.char,.token.regex,.token.string,.token.variable{color:#7ec699}.token.entity,.token.operator,.token.url{color:#67cdcc}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}
4
- pre[data-line]{position:relative;padding:1em 0 1em 3em}.line-highlight{position:absolute;left:0;right:0;padding:inherit 0;margin-top:1em;background:hsla(24,20%,50%,.08);background:linear-gradient(to right,hsla(24,20%,50%,.1) 70%,hsla(24,20%,50%,0));pointer-events:none;line-height:inherit;white-space:pre}@media print{.line-highlight{-webkit-print-color-adjust:exact;color-adjust:exact}}.line-highlight:before,.line-highlight[data-end]:after{content:attr(data-start);position:absolute;top:.4em;left:.6em;min-width:1em;padding:0 .5em;background-color:hsla(24,20%,50%,.4);color:#f4f1ef;font:bold 65%/1.5 sans-serif;text-align:center;vertical-align:.3em;border-radius:999px;text-shadow:none;box-shadow:0 1px #fff}.line-highlight[data-end]:after{content:attr(data-end);top:auto;bottom:.4em}.line-numbers .line-highlight:after,.line-numbers .line-highlight:before{content:none}pre[id].linkable-line-numbers span.line-numbers-rows{pointer-events:all}pre[id].linkable-line-numbers span.line-numbers-rows>span:before{cursor:pointer}pre[id].linkable-line-numbers span.line-numbers-rows>span:hover:before{background-color:rgba(128,128,128,.2)}
@@ -1,12 +0,0 @@
1
- /* PrismJS 1.28.0
2
- https://prismjs.com/download.html#themes=prism-tomorrow&languages=markup+clike+erb+haml+markup-templating+ruby&plugins=line-highlight+highlight-keywords+normalize-whitespace */
3
- var _self="undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{},Prism=function(e){var n=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,r={},a={manual:e.Prism&&e.Prism.manual,disableWorkerMessageHandler:e.Prism&&e.Prism.disableWorkerMessageHandler,util:{encode:function e(n){return n instanceof i?new i(n.type,e(n.content),n.alias):Array.isArray(n)?n.map(e):n.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function e(n,t){var r,i;switch(t=t||{},a.util.type(n)){case"Object":if(i=a.util.objId(n),t[i])return t[i];for(var l in r={},t[i]=r,n)n.hasOwnProperty(l)&&(r[l]=e(n[l],t));return r;case"Array":return i=a.util.objId(n),t[i]?t[i]:(r=[],t[i]=r,n.forEach((function(n,a){r[a]=e(n,t)})),r);default:return n}},getLanguage:function(e){for(;e;){var t=n.exec(e.className);if(t)return t[1].toLowerCase();e=e.parentElement}return"none"},setLanguage:function(e,t){e.className=e.className.replace(RegExp(n,"gi"),""),e.classList.add("language-"+t)},currentScript:function(){if("undefined"==typeof document)return null;if("currentScript"in document)return document.currentScript;try{throw new Error}catch(r){var e=(/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(r.stack)||[])[1];if(e){var n=document.getElementsByTagName("script");for(var t in n)if(n[t].src==e)return n[t]}return null}},isActive:function(e,n,t){for(var r="no-"+n;e;){var a=e.classList;if(a.contains(n))return!0;if(a.contains(r))return!1;e=e.parentElement}return!!t}},languages:{plain:r,plaintext:r,text:r,txt:r,extend:function(e,n){var t=a.util.clone(a.languages[e]);for(var r in n)t[r]=n[r];return t},insertBefore:function(e,n,t,r){var i=(r=r||a.languages)[e],l={};for(var o in i)if(i.hasOwnProperty(o)){if(o==n)for(var s in t)t.hasOwnProperty(s)&&(l[s]=t[s]);t.hasOwnProperty(o)||(l[o]=i[o])}var u=r[e];return r[e]=l,a.languages.DFS(a.languages,(function(n,t){t===u&&n!=e&&(this[n]=l)})),l},DFS:function e(n,t,r,i){i=i||{};var l=a.util.objId;for(var o in n)if(n.hasOwnProperty(o)){t.call(n,o,n[o],r||o);var s=n[o],u=a.util.type(s);"Object"!==u||i[l(s)]?"Array"!==u||i[l(s)]||(i[l(s)]=!0,e(s,t,o,i)):(i[l(s)]=!0,e(s,t,null,i))}}},plugins:{},highlightAll:function(e,n){a.highlightAllUnder(document,e,n)},highlightAllUnder:function(e,n,t){var r={callback:t,container:e,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};a.hooks.run("before-highlightall",r),r.elements=Array.prototype.slice.apply(r.container.querySelectorAll(r.selector)),a.hooks.run("before-all-elements-highlight",r);for(var i,l=0;i=r.elements[l++];)a.highlightElement(i,!0===n,r.callback)},highlightElement:function(n,t,r){var i=a.util.getLanguage(n),l=a.languages[i];a.util.setLanguage(n,i);var o=n.parentElement;o&&"pre"===o.nodeName.toLowerCase()&&a.util.setLanguage(o,i);var s={element:n,language:i,grammar:l,code:n.textContent};function u(e){s.highlightedCode=e,a.hooks.run("before-insert",s),s.element.innerHTML=s.highlightedCode,a.hooks.run("after-highlight",s),a.hooks.run("complete",s),r&&r.call(s.element)}if(a.hooks.run("before-sanity-check",s),(o=s.element.parentElement)&&"pre"===o.nodeName.toLowerCase()&&!o.hasAttribute("tabindex")&&o.setAttribute("tabindex","0"),!s.code)return a.hooks.run("complete",s),void(r&&r.call(s.element));if(a.hooks.run("before-highlight",s),s.grammar)if(t&&e.Worker){var c=new Worker(a.filename);c.onmessage=function(e){u(e.data)},c.postMessage(JSON.stringify({language:s.language,code:s.code,immediateClose:!0}))}else u(a.highlight(s.code,s.grammar,s.language));else u(a.util.encode(s.code))},highlight:function(e,n,t){var r={code:e,grammar:n,language:t};if(a.hooks.run("before-tokenize",r),!r.grammar)throw new Error('The language "'+r.language+'" has no grammar.');return r.tokens=a.tokenize(r.code,r.grammar),a.hooks.run("after-tokenize",r),i.stringify(a.util.encode(r.tokens),r.language)},tokenize:function(e,n){var t=n.rest;if(t){for(var r in t)n[r]=t[r];delete n.rest}var a=new s;return u(a,a.head,e),o(e,a,n,a.head,0),function(e){for(var n=[],t=e.head.next;t!==e.tail;)n.push(t.value),t=t.next;return n}(a)},hooks:{all:{},add:function(e,n){var t=a.hooks.all;t[e]=t[e]||[],t[e].push(n)},run:function(e,n){var t=a.hooks.all[e];if(t&&t.length)for(var r,i=0;r=t[i++];)r(n)}},Token:i};function i(e,n,t,r){this.type=e,this.content=n,this.alias=t,this.length=0|(r||"").length}function l(e,n,t,r){e.lastIndex=n;var a=e.exec(t);if(a&&r&&a[1]){var i=a[1].length;a.index+=i,a[0]=a[0].slice(i)}return a}function o(e,n,t,r,s,g){for(var f in t)if(t.hasOwnProperty(f)&&t[f]){var h=t[f];h=Array.isArray(h)?h:[h];for(var d=0;d<h.length;++d){if(g&&g.cause==f+","+d)return;var v=h[d],p=v.inside,m=!!v.lookbehind,y=!!v.greedy,k=v.alias;if(y&&!v.pattern.global){var x=v.pattern.toString().match(/[imsuy]*$/)[0];v.pattern=RegExp(v.pattern.source,x+"g")}for(var b=v.pattern||v,w=r.next,A=s;w!==n.tail&&!(g&&A>=g.reach);A+=w.value.length,w=w.next){var E=w.value;if(n.length>e.length)return;if(!(E instanceof i)){var P,L=1;if(y){if(!(P=l(b,A,e,m))||P.index>=e.length)break;var S=P.index,O=P.index+P[0].length,j=A;for(j+=w.value.length;S>=j;)j+=(w=w.next).value.length;if(A=j-=w.value.length,w.value instanceof i)continue;for(var C=w;C!==n.tail&&(j<O||"string"==typeof C.value);C=C.next)L++,j+=C.value.length;L--,E=e.slice(A,j),P.index-=A}else if(!(P=l(b,0,E,m)))continue;S=P.index;var N=P[0],_=E.slice(0,S),M=E.slice(S+N.length),W=A+E.length;g&&W>g.reach&&(g.reach=W);var z=w.prev;if(_&&(z=u(n,z,_),A+=_.length),c(n,z,L),w=u(n,z,new i(f,p?a.tokenize(N,p):N,k,N)),M&&u(n,w,M),L>1){var I={cause:f+","+d,reach:W};o(e,n,t,w.prev,A,I),g&&I.reach>g.reach&&(g.reach=I.reach)}}}}}}function s(){var e={value:null,prev:null,next:null},n={value:null,prev:e,next:null};e.next=n,this.head=e,this.tail=n,this.length=0}function u(e,n,t){var r=n.next,a={value:t,prev:n,next:r};return n.next=a,r.prev=a,e.length++,a}function c(e,n,t){for(var r=n.next,a=0;a<t&&r!==e.tail;a++)r=r.next;n.next=r,r.prev=n,e.length-=a}if(e.Prism=a,i.stringify=function e(n,t){if("string"==typeof n)return n;if(Array.isArray(n)){var r="";return n.forEach((function(n){r+=e(n,t)})),r}var i={type:n.type,content:e(n.content,t),tag:"span",classes:["token",n.type],attributes:{},language:t},l=n.alias;l&&(Array.isArray(l)?Array.prototype.push.apply(i.classes,l):i.classes.push(l)),a.hooks.run("wrap",i);var o="";for(var s in i.attributes)o+=" "+s+'="'+(i.attributes[s]||"").replace(/"/g,"&quot;")+'"';return"<"+i.tag+' class="'+i.classes.join(" ")+'"'+o+">"+i.content+"</"+i.tag+">"},!e.document)return e.addEventListener?(a.disableWorkerMessageHandler||e.addEventListener("message",(function(n){var t=JSON.parse(n.data),r=t.language,i=t.code,l=t.immediateClose;e.postMessage(a.highlight(i,a.languages[r],r)),l&&e.close()}),!1),a):a;var g=a.util.currentScript();function f(){a.manual||a.highlightAll()}if(g&&(a.filename=g.src,g.hasAttribute("data-manual")&&(a.manual=!0)),!a.manual){var h=document.readyState;"loading"===h||"interactive"===h&&g&&g.defer?document.addEventListener("DOMContentLoaded",f):window.requestAnimationFrame?window.requestAnimationFrame(f):window.setTimeout(f,16)}return a}(_self);"undefined"!=typeof module&&module.exports&&(module.exports=Prism),"undefined"!=typeof global&&(global.Prism=Prism);
4
- Prism.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},Prism.languages.markup.tag.inside["attr-value"].inside.entity=Prism.languages.markup.entity,Prism.languages.markup.doctype.inside["internal-subset"].inside=Prism.languages.markup,Prism.hooks.add("wrap",(function(a){"entity"===a.type&&(a.attributes.title=a.content.replace(/&amp;/,"&"))})),Object.defineProperty(Prism.languages.markup.tag,"addInlined",{value:function(a,e){var s={};s["language-"+e]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:Prism.languages[e]},s.cdata=/^<!\[CDATA\[|\]\]>$/i;var t={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:s}};t["language-"+e]={pattern:/[\s\S]+/,inside:Prism.languages[e]};var n={};n[a]={pattern:RegExp("(<__[^>]*>)(?:<!\\[CDATA\\[(?:[^\\]]|\\](?!\\]>))*\\]\\]>|(?!<!\\[CDATA\\[)[^])*?(?=</__>)".replace(/__/g,(function(){return a})),"i"),lookbehind:!0,greedy:!0,inside:t},Prism.languages.insertBefore("markup","cdata",n)}}),Object.defineProperty(Prism.languages.markup.tag,"addAttribute",{value:function(a,e){Prism.languages.markup.tag.inside["special-attr"].push({pattern:RegExp("(^|[\"'\\s])(?:"+a+")\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))","i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[e,"language-"+e],inside:Prism.languages[e]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),Prism.languages.html=Prism.languages.markup,Prism.languages.mathml=Prism.languages.markup,Prism.languages.svg=Prism.languages.markup,Prism.languages.xml=Prism.languages.extend("markup",{}),Prism.languages.ssml=Prism.languages.xml,Prism.languages.atom=Prism.languages.xml,Prism.languages.rss=Prism.languages.xml;
5
- Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/};
6
- !function(e){e.languages.ruby=e.languages.extend("clike",{comment:{pattern:/#.*|^=begin\s[\s\S]*?^=end/m,greedy:!0},"class-name":{pattern:/(\b(?:class|module)\s+|\bcatch\s+\()[\w.\\]+|\b[A-Z_]\w*(?=\s*\.\s*new\b)/,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:BEGIN|END|alias|and|begin|break|case|class|def|define_method|defined|do|each|else|elsif|end|ensure|extend|for|if|in|include|module|new|next|nil|not|or|prepend|private|protected|public|raise|redo|require|rescue|retry|return|self|super|then|throw|undef|unless|until|when|while|yield)\b/,operator:/\.{2,3}|&\.|===|<?=>|[!=]?~|(?:&&|\|\||<<|>>|\*\*|[+\-*/%<>!^&|=])=?|[?:]/,punctuation:/[(){}[\].,;]/}),e.languages.insertBefore("ruby","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}});var n={pattern:/((?:^|[^\\])(?:\\{2})*)#\{(?:[^{}]|\{[^{}]*\})*\}/,lookbehind:!0,inside:{content:{pattern:/^(#\{)[\s\S]+(?=\}$)/,lookbehind:!0,inside:e.languages.ruby},delimiter:{pattern:/^#\{|\}$/,alias:"punctuation"}}};delete e.languages.ruby.function;var t="(?:"+["([^a-zA-Z0-9\\s{(\\[<=])(?:(?!\\1)[^\\\\]|\\\\[^])*\\1","\\((?:[^()\\\\]|\\\\[^]|\\((?:[^()\\\\]|\\\\[^])*\\))*\\)","\\{(?:[^{}\\\\]|\\\\[^]|\\{(?:[^{}\\\\]|\\\\[^])*\\})*\\}","\\[(?:[^\\[\\]\\\\]|\\\\[^]|\\[(?:[^\\[\\]\\\\]|\\\\[^])*\\])*\\]","<(?:[^<>\\\\]|\\\\[^]|<(?:[^<>\\\\]|\\\\[^])*>)*>"].join("|")+")",i='(?:"(?:\\\\.|[^"\\\\\r\n])*"|(?:\\b[a-zA-Z_]\\w*|[^\\s\0-\\x7F]+)[?!]?|\\$.)';e.languages.insertBefore("ruby","keyword",{"regex-literal":[{pattern:RegExp("%r"+t+"[egimnosux]{0,6}"),greedy:!0,inside:{interpolation:n,regex:/[\s\S]+/}},{pattern:/(^|[^/])\/(?!\/)(?:\[[^\r\n\]]+\]|\\.|[^[/\\\r\n])+\/[egimnosux]{0,6}(?=\s*(?:$|[\r\n,.;})#]))/,lookbehind:!0,greedy:!0,inside:{interpolation:n,regex:/[\s\S]+/}}],variable:/[@$]+[a-zA-Z_]\w*(?:[?!]|\b)/,symbol:[{pattern:RegExp("(^|[^:]):"+i),lookbehind:!0,greedy:!0},{pattern:RegExp("([\r\n{(,][ \t]*)"+i+"(?=:(?!:))"),lookbehind:!0,greedy:!0}],"method-definition":{pattern:/(\bdef\s+)\w+(?:\s*\.\s*\w+)?/,lookbehind:!0,inside:{function:/\b\w+$/,keyword:/^self\b/,"class-name":/^\w+/,punctuation:/\./}}}),e.languages.insertBefore("ruby","string",{"string-literal":[{pattern:RegExp("%[qQiIwWs]?"+t),greedy:!0,inside:{interpolation:n,string:/[\s\S]+/}},{pattern:/("|')(?:#\{[^}]+\}|#(?!\{)|\\(?:\r\n|[\s\S])|(?!\1)[^\\#\r\n])*\1/,greedy:!0,inside:{interpolation:n,string:/[\s\S]+/}},{pattern:/<<[-~]?([a-z_]\w*)[\r\n](?:.*[\r\n])*?[\t ]*\1/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<[-~]?[a-z_]\w*|\b[a-z_]\w*$/i,inside:{symbol:/\b\w+/,punctuation:/^<<[-~]?/}},interpolation:n,string:/[\s\S]+/}},{pattern:/<<[-~]?'([a-z_]\w*)'[\r\n](?:.*[\r\n])*?[\t ]*\1/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<[-~]?'[a-z_]\w*'|\b[a-z_]\w*$/i,inside:{symbol:/\b\w+/,punctuation:/^<<[-~]?'|'$/}},string:/[\s\S]+/}}],"command-literal":[{pattern:RegExp("%x"+t),greedy:!0,inside:{interpolation:n,command:{pattern:/[\s\S]+/,alias:"string"}}},{pattern:/`(?:#\{[^}]+\}|#(?!\{)|\\(?:\r\n|[\s\S])|[^\\`#\r\n])*`/,greedy:!0,inside:{interpolation:n,command:{pattern:/[\s\S]+/,alias:"string"}}}]}),delete e.languages.ruby.string,e.languages.insertBefore("ruby","number",{builtin:/\b(?:Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Fixnum|Float|Hash|IO|Integer|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|Stat|String|Struct|Symbol|TMS|Thread|ThreadGroup|Time|TrueClass)\b/,constant:/\b[A-Z][A-Z0-9_]*(?:[?!]|\b)/}),e.languages.rb=e.languages.ruby}(Prism);
7
- !function(e){function n(e,n){return"___"+e.toUpperCase()+n+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(t,a,r,o){if(t.language===a){var c=t.tokenStack=[];t.code=t.code.replace(r,(function(e){if("function"==typeof o&&!o(e))return e;for(var r,i=c.length;-1!==t.code.indexOf(r=n(a,i));)++i;return c[i]=e,r})),t.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(t,a){if(t.language===a&&t.tokenStack){t.grammar=e.languages[a];var r=0,o=Object.keys(t.tokenStack);!function c(i){for(var u=0;u<i.length&&!(r>=o.length);u++){var g=i[u];if("string"==typeof g||g.content&&"string"==typeof g.content){var l=o[r],s=t.tokenStack[l],f="string"==typeof g?g:g.content,p=n(a,l),k=f.indexOf(p);if(k>-1){++r;var m=f.substring(0,k),d=new e.Token(a,e.tokenize(s,t.grammar),"language-"+a,s),h=f.substring(k+p.length),v=[];m&&v.push.apply(v,c([m])),v.push(d),h&&v.push.apply(v,c([h])),"string"==typeof g?i.splice.apply(i,[u,1].concat(v)):g.content=v}}else g.content&&c(g.content)}return i}(t.tokens)}}}})}(Prism);
8
- !function(e){e.languages.erb={delimiter:{pattern:/^(\s*)<%=?|%>(?=\s*$)/,lookbehind:!0,alias:"punctuation"},ruby:{pattern:/\s*\S[\s\S]*/,alias:"language-ruby",inside:e.languages.ruby}},e.hooks.add("before-tokenize",(function(n){e.languages["markup-templating"].buildPlaceholders(n,"erb",/<%=?(?:[^\r\n]|[\r\n](?!=begin)|[\r\n]=begin\s(?:[^\r\n]|[\r\n](?!=end))*[\r\n]=end)+?%>/g)})),e.hooks.add("after-tokenize",(function(n){e.languages["markup-templating"].tokenizePlaceholders(n,"erb")}))}(Prism);
9
- !function(n){n.languages.haml={"multiline-comment":{pattern:/((?:^|\r?\n|\r)([\t ]*))(?:\/|-#).*(?:(?:\r?\n|\r)\2[\t ].+)*/,lookbehind:!0,alias:"comment"},"multiline-code":[{pattern:/((?:^|\r?\n|\r)([\t ]*)(?:[~-]|[&!]?=)).*,[\t ]*(?:(?:\r?\n|\r)\2[\t ].*,[\t ]*)*(?:(?:\r?\n|\r)\2[\t ].+)/,lookbehind:!0,inside:n.languages.ruby},{pattern:/((?:^|\r?\n|\r)([\t ]*)(?:[~-]|[&!]?=)).*\|[\t ]*(?:(?:\r?\n|\r)\2[\t ].*\|[\t ]*)*/,lookbehind:!0,inside:n.languages.ruby}],filter:{pattern:/((?:^|\r?\n|\r)([\t ]*)):[\w-]+(?:(?:\r?\n|\r)(?:\2[\t ].+|\s*?(?=\r?\n|\r)))+/,lookbehind:!0,inside:{"filter-name":{pattern:/^:[\w-]+/,alias:"symbol"}}},markup:{pattern:/((?:^|\r?\n|\r)[\t ]*)<.+/,lookbehind:!0,inside:n.languages.markup},doctype:{pattern:/((?:^|\r?\n|\r)[\t ]*)!!!(?: .+)?/,lookbehind:!0},tag:{pattern:/((?:^|\r?\n|\r)[\t ]*)[%.#][\w\-#.]*[\w\-](?:\([^)]+\)|\{(?:\{[^}]+\}|[^{}])+\}|\[[^\]]+\])*[\/<>]*/,lookbehind:!0,inside:{attributes:[{pattern:/(^|[^#])\{(?:\{[^}]+\}|[^{}])+\}/,lookbehind:!0,inside:n.languages.ruby},{pattern:/\([^)]+\)/,inside:{"attr-value":{pattern:/(=\s*)(?:"(?:\\.|[^\\"\r\n])*"|[^)\s]+)/,lookbehind:!0},"attr-name":/[\w:-]+(?=\s*!?=|\s*[,)])/,punctuation:/[=(),]/}},{pattern:/\[[^\]]+\]/,inside:n.languages.ruby}],punctuation:/[<>]/}},code:{pattern:/((?:^|\r?\n|\r)[\t ]*(?:[~-]|[&!]?=)).+/,lookbehind:!0,inside:n.languages.ruby},interpolation:{pattern:/#\{[^}]+\}/,inside:{delimiter:{pattern:/^#\{|\}$/,alias:"punctuation"},ruby:{pattern:/[\s\S]+/,inside:n.languages.ruby}}},punctuation:{pattern:/((?:^|\r?\n|\r)[\t ]*)[~=\-&!]+/,lookbehind:!0}};for(var e=["css",{filter:"coffee",language:"coffeescript"},"erb","javascript","less","markdown","ruby","scss","textile"],t={},r=0,a=e.length;r<a;r++){var i=e[r];i="string"==typeof i?{filter:i,language:i}:i,n.languages[i.language]&&(t["filter-"+i.filter]={pattern:RegExp("((?:^|\\r?\\n|\\r)([\\t ]*)):{{filter_name}}(?:(?:\\r?\\n|\\r)(?:\\2[\\t ].+|\\s*?(?=\\r?\\n|\\r)))+".replace("{{filter_name}}",(function(){return i.filter}))),lookbehind:!0,inside:{"filter-name":{pattern:/^:[\w-]+/,alias:"symbol"},text:{pattern:/[\s\S]+/,alias:[i.language,"language-"+i.language],inside:n.languages[i.language]}}})}n.languages.insertBefore("haml","filter",t)}(Prism);
10
- !function(){if("undefined"!=typeof Prism&&"undefined"!=typeof document&&document.querySelector){var e,t="line-numbers",i="linkable-line-numbers",n=/\n(?!$)/g,r=!0;Prism.plugins.lineHighlight={highlightLines:function(o,u,c){var h=(u="string"==typeof u?u:o.getAttribute("data-line")||"").replace(/\s+/g,"").split(",").filter(Boolean),d=+o.getAttribute("data-line-offset")||0,f=(function(){if(void 0===e){var t=document.createElement("div");t.style.fontSize="13px",t.style.lineHeight="1.5",t.style.padding="0",t.style.border="0",t.innerHTML="&nbsp;<br />&nbsp;",document.body.appendChild(t),e=38===t.offsetHeight,document.body.removeChild(t)}return e}()?parseInt:parseFloat)(getComputedStyle(o).lineHeight),p=Prism.util.isActive(o,t),g=o.querySelector("code"),m=p?o:g||o,v=[],y=g.textContent.match(n),b=y?y.length+1:1,A=g&&m!=g?function(e,t){var i=getComputedStyle(e),n=getComputedStyle(t);function r(e){return+e.substr(0,e.length-2)}return t.offsetTop+r(n.borderTopWidth)+r(n.paddingTop)-r(i.paddingTop)}(o,g):0;h.forEach((function(e){var t=e.split("-"),i=+t[0],n=+t[1]||i;if(!((n=Math.min(b,n))<i)){var r=o.querySelector('.line-highlight[data-range="'+e+'"]')||document.createElement("div");if(v.push((function(){r.setAttribute("aria-hidden","true"),r.setAttribute("data-range",e),r.className=(c||"")+" line-highlight"})),p&&Prism.plugins.lineNumbers){var s=Prism.plugins.lineNumbers.getLine(o,i),l=Prism.plugins.lineNumbers.getLine(o,n);if(s){var a=s.offsetTop+A+"px";v.push((function(){r.style.top=a}))}if(l){var u=l.offsetTop-s.offsetTop+l.offsetHeight+"px";v.push((function(){r.style.height=u}))}}else v.push((function(){r.setAttribute("data-start",String(i)),n>i&&r.setAttribute("data-end",String(n)),r.style.top=(i-d-1)*f+A+"px",r.textContent=new Array(n-i+2).join(" \n")}));v.push((function(){r.style.width=o.scrollWidth+"px"})),v.push((function(){m.appendChild(r)}))}}));var P=o.id;if(p&&Prism.util.isActive(o,i)&&P){l(o,i)||v.push((function(){o.classList.add(i)}));var E=parseInt(o.getAttribute("data-start")||"1");s(".line-numbers-rows > span",o).forEach((function(e,t){var i=t+E;e.onclick=function(){var e=P+"."+i;r=!1,location.hash=e,setTimeout((function(){r=!0}),1)}}))}return function(){v.forEach(a)}}};var o=0;Prism.hooks.add("before-sanity-check",(function(e){var t=e.element.parentElement;if(u(t)){var i=0;s(".line-highlight",t).forEach((function(e){i+=e.textContent.length,e.parentNode.removeChild(e)})),i&&/^(?: \n)+$/.test(e.code.slice(-i))&&(e.code=e.code.slice(0,-i))}})),Prism.hooks.add("complete",(function e(i){var n=i.element.parentElement;if(u(n)){clearTimeout(o);var r=Prism.plugins.lineNumbers,s=i.plugins&&i.plugins.lineNumbers;l(n,t)&&r&&!s?Prism.hooks.add("line-numbers",e):(Prism.plugins.lineHighlight.highlightLines(n)(),o=setTimeout(c,1))}})),window.addEventListener("hashchange",c),window.addEventListener("resize",(function(){s("pre").filter(u).map((function(e){return Prism.plugins.lineHighlight.highlightLines(e)})).forEach(a)}))}function s(e,t){return Array.prototype.slice.call((t||document).querySelectorAll(e))}function l(e,t){return e.classList.contains(t)}function a(e){e()}function u(e){return!!(e&&/pre/i.test(e.nodeName)&&(e.hasAttribute("data-line")||e.id&&Prism.util.isActive(e,i)))}function c(){var e=location.hash.slice(1);s(".temporary.line-highlight").forEach((function(e){e.parentNode.removeChild(e)}));var t=(e.match(/\.([\d,-]+)$/)||[,""])[1];if(t&&!document.getElementById(e)){var i=e.slice(0,e.lastIndexOf(".")),n=document.getElementById(i);n&&(n.hasAttribute("data-line")||n.setAttribute("data-line",""),Prism.plugins.lineHighlight.highlightLines(n,t,"temporary ")(),r&&document.querySelector(".temporary.line-highlight").scrollIntoView())}}}();
11
- "undefined"!=typeof Prism&&Prism.hooks.add("wrap",(function(e){"keyword"===e.type&&e.classes.push("keyword-"+e.content)}));
12
- !function(){if("undefined"!=typeof Prism){var e=Object.assign||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e},t={"remove-trailing":"boolean","remove-indent":"boolean","left-trim":"boolean","right-trim":"boolean","break-lines":"number",indent:"number","remove-initial-line-feed":"boolean","tabs-to-spaces":"number","spaces-to-tabs":"number"};n.prototype={setDefaults:function(t){this.defaults=e(this.defaults,t)},normalize:function(t,n){for(var r in n=e(this.defaults,n)){var i=r.replace(/-(\w)/g,(function(e,t){return t.toUpperCase()}));"normalize"!==r&&"setDefaults"!==i&&n[r]&&this[i]&&(t=this[i].call(this,t,n[r]))}return t},leftTrim:function(e){return e.replace(/^\s+/,"")},rightTrim:function(e){return e.replace(/\s+$/,"")},tabsToSpaces:function(e,t){return t=0|t||4,e.replace(/\t/g,new Array(++t).join(" "))},spacesToTabs:function(e,t){return t=0|t||4,e.replace(RegExp(" {"+t+"}","g"),"\t")},removeTrailing:function(e){return e.replace(/\s*?$/gm,"")},removeInitialLineFeed:function(e){return e.replace(/^(?:\r?\n|\r)/,"")},removeIndent:function(e){var t=e.match(/^[^\S\n\r]*(?=\S)/gm);return t&&t[0].length?(t.sort((function(e,t){return e.length-t.length})),t[0].length?e.replace(RegExp("^"+t[0],"gm"),""):e):e},indent:function(e,t){return e.replace(/^[^\S\n\r]*(?=\S)/gm,new Array(++t).join("\t")+"$&")},breakLines:function(e,t){t=!0===t?80:0|t||80;for(var n=e.split("\n"),i=0;i<n.length;++i)if(!(r(n[i])<=t)){for(var o=n[i].split(/(\s+)/g),a=0,l=0;l<o.length;++l){var s=r(o[l]);(a+=s)>t&&(o[l]="\n"+o[l],a=s)}n[i]=o.join("")}return n.join("\n")}},"undefined"!=typeof module&&module.exports&&(module.exports=n),Prism.plugins.NormalizeWhitespace=new n({"remove-trailing":!0,"remove-indent":!0,"left-trim":!0,"right-trim":!0}),Prism.hooks.add("before-sanity-check",(function(e){var n=Prism.plugins.NormalizeWhitespace;if((!e.settings||!1!==e.settings["whitespace-normalization"])&&Prism.util.isActive(e.element,"whitespace-normalization",!0))if(e.element&&e.element.parentNode||!e.code){var r=e.element.parentNode;if(e.code&&r&&"pre"===r.nodeName.toLowerCase()){for(var i in null==e.settings&&(e.settings={}),t)if(Object.hasOwnProperty.call(t,i)){var o=t[i];if(r.hasAttribute("data-"+i))try{var a=JSON.parse(r.getAttribute("data-"+i)||"true");typeof a===o&&(e.settings[i]=a)}catch(e){}}for(var l=r.childNodes,s="",c="",u=!1,m=0;m<l.length;++m){var f=l[m];f==e.element?u=!0:"#text"===f.nodeName&&(u?c+=f.nodeValue:s+=f.nodeValue,r.removeChild(f),--m)}if(e.element.children.length&&Prism.plugins.KeepMarkup){var d=s+e.element.innerHTML+c;e.element.innerHTML=n.normalize(d,e.settings),e.code=e.element.textContent}else e.code=s+e.code+c,e.code=n.normalize(e.code,e.settings)}}else e.code=n.normalize(e.code,e.settings)}))}function n(t){this.defaults=e({},t)}function r(e){for(var t=0,n=0;n<e.length;++n)e.charCodeAt(n)=="\t".charCodeAt(0)&&(t+=3);return e.length+t}}();