view_component 2.80.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.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 35801e5fcaab65f2242b92370229ab3b1bb687db3b36c92b74f0e515cfe258b1
4
- data.tar.gz: 4f4d7adfcbe6ec3e4af0b3cfed05d80976a9fb31dd47fa77f5a48d8def5cb489
3
+ metadata.gz: 9bb20706245c43b9c5fa4d11087a2e98332bda53d659f7065874a3c0b8545547
4
+ data.tar.gz: 13821a1e91da8a8dce8270962b99aa3b84fddb9731f99c2e2acfd143ad017836
5
5
  SHA512:
6
- metadata.gz: 21367aa3c40f5004a2479842db12460ea7939a189921f97dfe3ffbfba12acc327bc828a1d96be9b96816ecfc6952ce07ddf3549a858775934d83da3111bf09c4
7
- data.tar.gz: 215cc4ef718e34ce4753bbfef12aee750f73193643af09b05699dff36711f46f0f2821fc6410c639bde87576d911a019d011677bf97620eb103bac4550130439
6
+ metadata.gz: 5b0ebf7ac54fc2c82374b29f9cceadfe55af73516ad2e4c65dad69cd65a7c63de3e00ef9cdba8b359c1061309f9a0d2f90344374feec2b37211fbfb36282c96b
7
+ data.tar.gz: 48e156dcc5fa1ac9a6cff64e4cb585d528103452938a515d1e3598b505b03188e89362c393c86c0a05437f9a8c28f22e937e3d706f3da17ae03a7c1371728505
@@ -1,8 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "rails/application_controller"
4
-
5
- class ViewComponentsSystemTestController < Rails::ApplicationController # :nodoc:
3
+ class ViewComponentsSystemTestController < ActionController::Base # :nodoc:
6
4
  def system_test_entrypoint
7
5
  render file: "./tmp/view_components/#{params.permit(:file)[:file]}"
8
6
  end
data/docs/CHANGELOG.md CHANGED
@@ -10,6 +10,30 @@ nav_order: 5
10
10
 
11
11
  ## main
12
12
 
13
+ ## 2.82.0
14
+
15
+ * Revert "Avoid loading ActionView::Base during initialization (#1528)"
16
+
17
+ *Jon Rohan*
18
+
19
+ * Fix tests using `with_rendered_component_path` with custom layouts.
20
+
21
+ *Ian Hollander*
22
+
23
+ ## 2.81.0
24
+
25
+ * Adjust the way response objects are set on the preview controller to work around a recent change in Rails main.
26
+
27
+ *Cameron Dutro*
28
+
29
+ * Fix typo in "Generate a Stimulus controller" documentation.
30
+
31
+ *Ben Trewern*
32
+
33
+ * Modify the `render_in_view_context` test helper to forward its args to the block.
34
+
35
+ *Cameron Dutro*
36
+
13
37
  ## 2.80.0
14
38
 
15
39
  * Move system test endpoint out of the unrelated previews controller.
@@ -23,7 +23,7 @@ module ViewComponent
23
23
  #
24
24
  # @return [ViewComponent::Config]
25
25
  def config
26
- @config ||= ActiveSupport::OrderedOptions.new
26
+ @config ||= ViewComponent::Config.defaults
27
27
  end
28
28
 
29
29
  # Replaces the entire config. You shouldn't need to use this directly
@@ -1,11 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "rails"
4
- require "view_component/config"
4
+ require "view_component/base"
5
5
 
6
6
  module ViewComponent
7
7
  class Engine < Rails::Engine # :nodoc:
8
- config.view_component = ViewComponent::Config.defaults
8
+ config.view_component = ViewComponent::Base.config
9
9
 
10
10
  rake_tasks do
11
11
  load "view_component/rails/tasks/view_component.rake"
@@ -14,6 +14,9 @@ module ViewComponent
14
14
  initializer "view_component.set_configs" do |app|
15
15
  options = app.config.view_component
16
16
 
17
+ %i[generate preview_controller preview_route show_previews_source].each do |config_option|
18
+ options[config_option] ||= ViewComponent::Base.public_send(config_option)
19
+ end
17
20
  options.instrumentation_enabled = false if options.instrumentation_enabled.nil?
18
21
  options.render_monkey_patch_enabled = true if options.render_monkey_patch_enabled.nil?
19
22
  options.show_previews = (Rails.env.development? || Rails.env.test?) if options.show_previews.nil?
@@ -36,8 +39,6 @@ module ViewComponent
36
39
 
37
40
  initializer "view_component.enable_instrumentation" do |app|
38
41
  ActiveSupport.on_load(:view_component) do
39
- Base.config = app.config.view_component
40
-
41
42
  if app.config.view_component.instrumentation_enabled.present?
42
43
  # :nocov:
43
44
  ViewComponent::Base.prepend(ViewComponent::Instrumentation)
@@ -91,7 +91,7 @@ module ViewComponent
91
91
  end
92
92
 
93
93
  previews_controller.request.params[:path] = "#{from.preview_name}/#{name}"
94
- previews_controller.response = ActionDispatch::Response.new
94
+ previews_controller.set_response!(ActionDispatch::Response.new)
95
95
  result = previews_controller.previews
96
96
 
97
97
  @rendered_content = result
@@ -99,21 +99,23 @@ module ViewComponent
99
99
  Nokogiri::HTML.fragment(@rendered_content)
100
100
  end
101
101
 
102
- # Execute the given block in the view context. Internally sets `page` to be a
103
- # `Capybara::Node::Simple`, allowing for Capybara assertions to be used:
102
+ # Execute the given block in the view context (using `instance_exec`).
103
+ # Internally sets `page` to be a `Capybara::Node::Simple`, allowing for
104
+ # Capybara assertions to be used. All arguments are forwarded to the block.
104
105
  #
105
106
  # ```ruby
106
- # render_in_view_context do
107
- # render(MyComponent.new)
107
+ # render_in_view_context(arg1, arg2:) do |arg1, arg2:|
108
+ # render(MyComponent.new(arg1, arg2))
108
109
  # end
109
110
  #
110
111
  # assert_text("Hello, World!")
111
112
  # ```
112
- def render_in_view_context(&block)
113
+ def render_in_view_context(*args, &block)
113
114
  @page = nil
114
- @rendered_content = controller.view_context.instance_exec(&block)
115
+ @rendered_content = controller.view_context.instance_exec(*args, &block)
115
116
  Nokogiri::HTML.fragment(@rendered_content)
116
117
  end
118
+ ruby2_keywords(:render_in_view_context) if respond_to?(:ruby2_keywords, true)
117
119
 
118
120
  # @private
119
121
  def controller
@@ -3,7 +3,7 @@
3
3
  module ViewComponent
4
4
  module VERSION
5
5
  MAJOR = 2
6
- MINOR = 80
6
+ MINOR = 82
7
7
  PATCH = 0
8
8
 
9
9
  STRING = [MAJOR, MINOR, PATCH].join(".")
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.80.0
4
+ version: 2.82.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ViewComponent Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-12-21 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