diff --git a/lib/rubocop/cop/github/render_literal_helpers.rb b/lib/rubocop/cop/github/render_literal_helpers.rb index 29820b0e..3cf7f574 100644 --- a/lib/rubocop/cop/github/render_literal_helpers.rb +++ b/lib/rubocop/cop/github/render_literal_helpers.rb @@ -29,7 +29,11 @@ module RenderLiteralHelpers PATTERN def_node_matcher :render_view_component_instance_with_content?, <<-PATTERN - (send nil? {:render :render_to_string} (send (send _ :new ...) `:with_content ...)) + (send nil? {:render :render_to_string} (send (send _ :new ...) :with_content ...)) + PATTERN + + def_node_matcher :render_view_component_instance_with_inline_block?, <<-PATTERN + (block (send nil? {:render :render_to_string} (send _ :new ...)) ...) PATTERN def_node_matcher :render_view_component_collection?, <<-PATTERN @@ -47,6 +51,7 @@ def hash_with_literal_keys?(hash) def render_view_component?(node) render_view_component_instance_with_content?(node) || + render_view_component_instance_with_inline_block?(node) || render_view_component_instance?(node) || render_view_component_collection?(node) end diff --git a/test/test_rails_view_render_literal.rb b/test/test_rails_view_render_literal.rb index 7c081dd3..59cb6804 100644 --- a/test/test_rails_view_render_literal.rb +++ b/test/test_rails_view_render_literal.rb @@ -78,6 +78,30 @@ def test_render_component_instance_block_no_offense assert_equal 0, offenses.count end + def test_render_component_instance_inline_block_no_offense + offenses = erb_investigate cop, <<-ERB, "app/views/foo/index.html.erb" + <%= render Module::MyClass.new(title: "foo", bar: "baz") { "Content" } %> + ERB + + assert_equal 0, offenses.count + end + + def test_render_component_instance_data_object_no_offense + offenses = erb_investigate cop, <<-ERB, "app/views/foo/index.html.erb" + <%= render Module::MyClass.new(title: "foo", bar: "baz", data: { foo: "bar" }) %> + ERB + + assert_equal 0, offenses.count + end + + def test_render_component_instance_data_object_no_offense + offenses = erb_investigate cop, <<-ERB, "app/views/foo/index.html.erb" + <%= render Module::MyClass.new(title: "foo", bar: "baz", data: { foo: "bar" }) %> + ERB + + assert_equal 0, offenses.count + end + def test_render_component_collection_no_offense offenses = erb_investigate cop, <<-ERB, "app/views/foo/index.html.erb" <%= render MyClass.with_collection(title: "foo", bar: "baz") %>
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: