view_component 2.62.0 → 2.82.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.

Potentially problematic release.


This version of view_component might be problematic. Click here for more details.

Files changed (34) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.txt +1 -1
  3. data/app/assets/vendor/prism.css +3 -195
  4. data/app/assets/vendor/prism.min.js +11 -11
  5. data/app/controllers/concerns/view_component/preview_actions.rb +6 -10
  6. data/app/controllers/view_components_system_test_controller.rb +7 -0
  7. data/app/helpers/preview_helper.rb +2 -2
  8. data/app/views/view_components/preview.html.erb +2 -2
  9. data/docs/CHANGELOG.md +383 -21
  10. data/lib/rails/generators/abstract_generator.rb +3 -5
  11. data/lib/rails/generators/component/component_generator.rb +5 -4
  12. data/lib/rails/generators/locale/component_generator.rb +1 -1
  13. data/lib/rails/generators/preview/component_generator.rb +10 -3
  14. data/lib/view_component/base.rb +41 -47
  15. data/lib/view_component/compiler.rb +57 -68
  16. data/lib/view_component/config.rb +176 -0
  17. data/lib/view_component/content_areas.rb +2 -3
  18. data/lib/view_component/deprecation.rb +2 -2
  19. data/lib/view_component/docs_builder_component.html.erb +1 -1
  20. data/lib/view_component/docs_builder_component.rb +1 -1
  21. data/lib/view_component/engine.rb +23 -29
  22. data/lib/view_component/polymorphic_slots.rb +11 -5
  23. data/lib/view_component/render_component_helper.rb +1 -0
  24. data/lib/view_component/slotable.rb +2 -3
  25. data/lib/view_component/slotable_v2.rb +48 -8
  26. data/lib/view_component/system_test_case.rb +13 -0
  27. data/lib/view_component/system_test_helpers.rb +27 -0
  28. data/lib/view_component/test_helpers.rb +65 -15
  29. data/lib/view_component/translatable.rb +1 -1
  30. data/lib/view_component/version.rb +1 -1
  31. data/lib/view_component.rb +6 -3
  32. metadata +50 -18
  33. data/lib/view_component/previewable.rb +0 -62
  34. data/lib/view_component/render_preview_helper.rb +0 -50
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: view_component
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.62.0
4
+ version: 2.82.0
5
5
  platform: ruby
6
6
  authors:
7
- - GitHub Open Source
7
+ - ViewComponent Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-07-25 00:00:00.000000000 Z
11
+ date: 2023-01-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -16,7 +16,7 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 5.0.0
19
+ version: 5.2.0
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
22
  version: '8.0'
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: 5.0.0
29
+ version: 5.2.0
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: '8.0'
@@ -44,6 +44,20 @@ dependencies:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
46
  version: '1.0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: concurrent-ruby
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '1.0'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '1.0'
47
61
  - !ruby/object:Gem::Dependency
48
62
  name: appraisal
49
63
  requirement: !ruby/object:Gem::Requirement
@@ -90,16 +104,16 @@ dependencies:
90
104
  name: bundler
91
105
  requirement: !ruby/object:Gem::Requirement
92
106
  requirements:
93
- - - ">="
107
+ - - "~>"
94
108
  - !ruby/object:Gem::Version
95
- version: 1.15.0
109
+ version: '2'
96
110
  type: :development
97
111
  prerelease: false
98
112
  version_requirements: !ruby/object:Gem::Requirement
99
113
  requirements:
100
- - - ">="
114
+ - - "~>"
101
115
  - !ruby/object:Gem::Version
102
- version: 1.15.0
116
+ version: '2'
103
117
  - !ruby/object:Gem::Dependency
104
118
  name: erb_lint
105
119
  requirement: !ruby/object:Gem::Requirement
@@ -142,6 +156,20 @@ dependencies:
142
156
  - - "~>"
143
157
  - !ruby/object:Gem::Version
144
158
  version: '2'
159
+ - !ruby/object:Gem::Dependency
160
+ name: m
161
+ requirement: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - "~>"
164
+ - !ruby/object:Gem::Version
165
+ version: '1'
166
+ type: :development
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - "~>"
171
+ - !ruby/object:Gem::Version
172
+ version: '1'
145
173
  - !ruby/object:Gem::Dependency
146
174
  name: minitest
147
175
  requirement: !ruby/object:Gem::Requirement
@@ -272,19 +300,18 @@ dependencies:
272
300
  name: yard-activesupport-concern
273
301
  requirement: !ruby/object:Gem::Requirement
274
302
  requirements:
275
- - - ">="
303
+ - - "~>"
276
304
  - !ruby/object:Gem::Version
277
- version: '0'
305
+ version: 0.0.1
278
306
  type: :development
279
307
  prerelease: false
280
308
  version_requirements: !ruby/object:Gem::Requirement
281
309
  requirements:
282
- - - ">="
310
+ - - "~>"
283
311
  - !ruby/object:Gem::Version
284
- version: '0'
312
+ version: 0.0.1
285
313
  description:
286
314
  email:
287
- - opensource+view_component@github.com
288
315
  executables: []
289
316
  extensions: []
290
317
  extra_rdoc_files: []
@@ -295,6 +322,7 @@ files:
295
322
  - app/assets/vendor/prism.min.js
296
323
  - app/controllers/concerns/view_component/preview_actions.rb
297
324
  - app/controllers/view_components_controller.rb
325
+ - app/controllers/view_components_system_test_controller.rb
298
326
  - app/helpers/preview_helper.rb
299
327
  - app/views/test_mailer/test_email.html.erb
300
328
  - app/views/view_components/_preview_source.html.erb
@@ -329,6 +357,7 @@ files:
329
357
  - lib/view_component/compile_cache.rb
330
358
  - lib/view_component/compiler.rb
331
359
  - lib/view_component/component_error.rb
360
+ - lib/view_component/config.rb
332
361
  - lib/view_component/content_areas.rb
333
362
  - lib/view_component/deprecation.rb
334
363
  - lib/view_component/docs_builder_component.html.erb
@@ -338,12 +367,10 @@ files:
338
367
  - lib/view_component/polymorphic_slots.rb
339
368
  - lib/view_component/preview.rb
340
369
  - lib/view_component/preview_template_error.rb
341
- - lib/view_component/previewable.rb
342
370
  - lib/view_component/rails/tasks/view_component.rake
343
371
  - lib/view_component/render_component_helper.rb
344
372
  - lib/view_component/render_component_to_string_helper.rb
345
373
  - lib/view_component/render_monkey_patch.rb
346
- - lib/view_component/render_preview_helper.rb
347
374
  - lib/view_component/render_to_string_monkey_patch.rb
348
375
  - lib/view_component/rendering_component_helper.rb
349
376
  - lib/view_component/rendering_monkey_patch.rb
@@ -351,6 +378,8 @@ files:
351
378
  - lib/view_component/slot_v2.rb
352
379
  - lib/view_component/slotable.rb
353
380
  - lib/view_component/slotable_v2.rb
381
+ - lib/view_component/system_test_case.rb
382
+ - lib/view_component/system_test_helpers.rb
354
383
  - lib/view_component/template_error.rb
355
384
  - lib/view_component/test_case.rb
356
385
  - lib/view_component/test_helpers.rb
@@ -358,11 +387,13 @@ files:
358
387
  - lib/view_component/version.rb
359
388
  - lib/view_component/with_content_helper.rb
360
389
  - lib/yard/mattr_accessor_handler.rb
361
- homepage: https://github.com/github/view_component
390
+ homepage: https://viewcomponent.org
362
391
  licenses:
363
392
  - MIT
364
393
  metadata:
365
394
  allowed_push_host: https://rubygems.org
395
+ source_code_uri: https://github.com/viewcomponent/view_component
396
+ changelog_uri: https://github.com/ViewComponent/view_component/blob/main/docs/CHANGELOG.md
366
397
  post_install_message:
367
398
  rdoc_options: []
368
399
  require_paths:
@@ -381,5 +412,6 @@ requirements: []
381
412
  rubygems_version: 3.2.32
382
413
  signing_key:
383
414
  specification_version: 4
384
- summary: View components for Rails
415
+ summary: A framework for building reusable, testable & encapsulated view components
416
+ in Ruby on Rails.
385
417
  test_files: []
@@ -1,62 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "active_support/concern"
4
-
5
- module ViewComponent
6
- module Previewable
7
- extend ActiveSupport::Concern
8
-
9
- included do
10
- # Enable or disable component previews:
11
- #
12
- # config.view_component.show_previews = true
13
- #
14
- # Defaults to `true` in development.
15
- #
16
- mattr_accessor :show_previews, instance_writer: false
17
-
18
- # Enable or disable source code previews in component previews:
19
- #
20
- # config.view_component.show_previews_source = true
21
- #
22
- # Defaults to `false`.
23
- #
24
- mattr_accessor :show_previews_source, instance_writer: false, default: false
25
-
26
- # Set a custom default layout used for preview index and individual previews:
27
- #
28
- # config.view_component.default_preview_layout = "component_preview"
29
- #
30
- mattr_accessor :default_preview_layout, instance_writer: false
31
-
32
- # Set the location of component previews:
33
- #
34
- # config.view_component.preview_paths << "#{Rails.root}/lib/component_previews"
35
- #
36
- mattr_accessor :preview_paths, instance_writer: false
37
-
38
- # @deprecated Use `preview_paths` instead. Will be removed in v3.0.0.
39
- mattr_accessor :preview_path, instance_writer: false
40
-
41
- # Set the entry route for component previews:
42
- #
43
- # config.view_component.preview_route = "/previews"
44
- #
45
- # Defaults to `/rails/view_components` when `show_previews` is enabled.
46
- #
47
- mattr_accessor :preview_route, instance_writer: false do
48
- "/rails/view_components"
49
- end
50
-
51
- # Set the controller used for previewing components:
52
- #
53
- # config.view_component.preview_controller = "MyPreviewController"
54
- #
55
- # Defaults to `ViewComponentsController`.
56
- #
57
- mattr_accessor :preview_controller, instance_writer: false do
58
- "ViewComponentsController"
59
- end
60
- end
61
- end
62
- end
@@ -1,50 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module ViewComponent
4
- module RenderPreviewHelper
5
- # Render a preview inline. Internally sets `page` to be a `Capybara::Node::Simple`,
6
- # allowing for Capybara assertions to be used:
7
- #
8
- # ```ruby
9
- # render_preview(:default)
10
- # assert_text("Hello, World!")
11
- # ```
12
- #
13
- # Note: `#rendered_preview` expects a preview to be defined with the same class
14
- # name as the calling test, but with `Test` replaced with `Preview`:
15
- #
16
- # MyComponentTest -> MyComponentPreview etc.
17
- #
18
- # In RSpec, `Preview` is appended to `described_class`.
19
- #
20
- # @param preview [String] The name of the preview to be rendered.
21
- # @return [Nokogiri::HTML]
22
- def render_preview(name)
23
- begin
24
- preview_klass = if respond_to?(:described_class)
25
- if described_class.nil?
26
- raise "`render_preview` expected a described_class, but it is nil."
27
- end
28
-
29
- "#{described_class}Preview"
30
- else
31
- self.class.name.gsub("Test", "Preview")
32
- end
33
- preview_klass = preview_klass.constantize
34
- rescue NameError
35
- raise NameError.new(
36
- "`render_preview` expected to find #{preview_klass}, but it does not exist."
37
- )
38
- end
39
-
40
- previews_controller = build_controller(ViewComponent::Base.preview_controller.constantize)
41
- previews_controller.request.params[:path] = "#{preview_klass.preview_name}/#{name}"
42
- previews_controller.response = ActionDispatch::Response.new
43
- result = previews_controller.previews
44
-
45
- @rendered_content = result
46
-
47
- Nokogiri::HTML.fragment(@rendered_content)
48
- end
49
- end
50
- end