view_component 3.23.2 → 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 -20
  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 +93 -9
  7. data/lib/view_component/base.rb +43 -66
  8. data/lib/view_component/collection.rb +11 -17
  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 -3
  15. data/lib/view_component/instrumentation.rb +4 -10
  16. data/lib/view_component/preview.rb +3 -10
  17. data/lib/view_component/request_details.rb +30 -0
  18. data/lib/view_component/slot.rb +2 -5
  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 +4 -4
  26. data/lib/view_component.rb +0 -1
  27. metadata +68 -211
  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
@@ -1,12 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "test_helper"
4
-
5
- class <%= namespaced? ? "#{namespace.name}::" : '' %><%= class_name %>ComponentTest < ViewComponent::TestCase
6
- def test_component_renders_something_useful
7
- # assert_equal(
8
- # %(<span>Hello, components!</span>),
9
- # render_inline(<%= class_name %>Component.new(message: "Hello, components!")).css("span").to_html
10
- # )
11
- end
12
- end
@@ -1,6 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module ViewComponent
4
- class ComponentError < StandardError
5
- end
6
- end
@@ -1,20 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- task stats: "view_component:statsetup"
4
-
5
- namespace :view_component do
6
- task :statsetup do
7
- # :nocov:
8
- require "rails/code_statistics"
9
-
10
- if Rails.root.join(ViewComponent::Base.view_component_path).directory?
11
- ::STATS_DIRECTORIES << ["ViewComponents", ViewComponent::Base.view_component_path]
12
- end
13
-
14
- if Rails.root.join("test/components").directory?
15
- ::STATS_DIRECTORIES << ["ViewComponent tests", "test/components"]
16
- CodeStatistics::TEST_TYPES << "ViewComponent tests"
17
- end
18
- # :nocov:
19
- end
20
- end
@@ -1,10 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module ViewComponent
4
- module RenderComponentHelper # :nodoc:
5
- def render_component(component, &block)
6
- component.set_original_view_context(__vc_original_view_context) if is_a?(ViewComponent::Base)
7
- component.render_in(self, &block)
8
- end
9
- end
10
- end
@@ -1,9 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module ViewComponent
4
- module RenderComponentToStringHelper # :nodoc:
5
- def render_component_to_string(component)
6
- component.render_in(view_context)
7
- end
8
- end
9
- end
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module ViewComponent
4
- module RenderMonkeyPatch # :nodoc:
5
- def render(options = {}, args = {}, &block)
6
- if options.respond_to?(:render_in)
7
- options.render_in(self, &block)
8
- else
9
- super
10
- end
11
- end
12
- end
13
- end
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module ViewComponent
4
- module RenderToStringMonkeyPatch # :nodoc:
5
- def render_to_string(options = {}, args = {})
6
- if options.respond_to?(:render_in)
7
- options.render_in(view_context)
8
- else
9
- super
10
- end
11
- end
12
- end
13
- end
@@ -1,9 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module ViewComponent
4
- module RenderingComponentHelper # :nodoc:
5
- def render_component(component)
6
- self.response_body = component.render_in(view_context)
7
- end
8
- end
9
- end
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module ViewComponent
4
- module RenderingMonkeyPatch # :nodoc:
5
- def render(options = {}, args = {})
6
- if options.respond_to?(:render_in)
7
- self.response_body = options.render_in(view_context)
8
- else
9
- super
10
- end
11
- end
12
- end
13
- end