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") %>