Skip to content

Commit 535c4ae

Browse files
authored
Merge pull request #68 from github/component-collections
Support latest ViewComponent syntax
2 parents 1d5ac0b + a632d06 commit 535c4ae

2 files changed

Lines changed: 11 additions & 19 deletions

File tree

lib/rubocop/cop/github/rails_view_render_literal.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ class RailsViewRenderLiteral < Cop
2424
(send nil? :render (send _ :new ...) ...)
2525
PATTERN
2626

27-
def_node_matcher :render_const?, <<-PATTERN
28-
(send nil? :render (const _ _) ...)
27+
def_node_matcher :render_collection?, <<-PATTERN
28+
(send nil? :render (send _ :with_collection ...) ...)
2929
PATTERN
3030

3131
def_node_matcher :render_with_options?, <<-PATTERN
@@ -50,7 +50,7 @@ class RailsViewRenderLiteral < Cop
5050
def on_send(node)
5151
return unless render?(node)
5252

53-
if render_literal?(node) || render_inst?(node) || render_const?(node)
53+
if render_literal?(node) || render_inst?(node) || render_collection?(node)
5454
elsif option_pairs = render_with_options?(node)
5555
if option_pairs.any? { |pair| ignore_key?(pair) }
5656
return

test/test_rails_view_render_literal.rb

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -54,41 +54,33 @@ def test_render_component_no_offense
5454
assert_equal 0, cop.offenses.count
5555
end
5656

57-
def test_render_component_class_name_no_offense
58-
erb_investigate cop, <<-ERB, "app/views/foo/index.html.erb"
59-
<%= render Module::MyClass, title: "foo", bar: "baz" %>
60-
ERB
61-
62-
assert_equal 0, cop.offenses.count
63-
end
64-
65-
def test_render_component_class_no_offense
57+
def test_render_component_instance_no_offense
6658
erb_investigate cop, <<-ERB, "app/views/foo/index.html.erb"
67-
<%= render MyClass, title: "foo", bar: "baz" %>
59+
<%= render MyClass.new(title: "foo", bar: "baz") %>
6860
ERB
6961

7062
assert_equal 0, cop.offenses.count
7163
end
7264

73-
def test_render_component_instance_no_offense
65+
def test_render_component_instance_block_no_offense
7466
erb_investigate cop, <<-ERB, "app/views/foo/index.html.erb"
75-
<%= render MyClass.new(title: "foo", bar: "baz") %>
67+
<%= render Module::MyClass.new(title: "foo", bar: "baz") do %>Content<% end %>
7668
ERB
7769

7870
assert_equal 0, cop.offenses.count
7971
end
8072

81-
def test_render_component_instance_block_no_offense
73+
def test_render_component_collection_no_offense
8274
erb_investigate cop, <<-ERB, "app/views/foo/index.html.erb"
83-
<%= render Module::MyClass.new(title: "foo", bar: "baz") do %>Content<% end %>
75+
<%= render MyClass.with_collection(title: "foo", bar: "baz") %>
8476
ERB
8577

8678
assert_equal 0, cop.offenses.count
8779
end
8880

89-
def test_render_component_class_block_no_offense
81+
def test_render_component_module_collection_no_offense
9082
erb_investigate cop, <<-ERB, "app/views/foo/index.html.erb"
91-
<%= render Module::MyClass, title: "foo", bar: "baz" do %>Content<% end %>
83+
<%= render Foo::MyClass.with_collection(title: "foo", bar: "baz") %>
9284
ERB
9385

9486
assert_equal 0, cop.offenses.count

0 commit comments

Comments
 (0)