style: don't concatenate in string interpolation
This commit is contained in:
parent
63b81d847a
commit
9ad342eba0
@ -843,12 +843,6 @@ module Homebrew
|
||||
problem "Don't need to interpolate \"#{Regexp.last_match(2)}\" with #{Regexp.last_match(1)}"
|
||||
end
|
||||
|
||||
# Check for string concatenation; prefer interpolation
|
||||
if line =~ /(#\{\w+\s*\+\s*['"][^}]+\})/
|
||||
# TODO: check could be in RuboCop
|
||||
problem "Try not to concatenate paths in string interpolation:\n #{Regexp.last_match(1)}"
|
||||
end
|
||||
|
||||
# Prefer formula path shortcuts in Pathname+
|
||||
if line =~ %r{\(\s*(prefix\s*\+\s*(['"])(bin|include|libexec|lib|sbin|share|Frameworks)[/'"])}
|
||||
# TODO: check could be in RuboCop
|
||||
|
||||
@ -69,6 +69,15 @@ module RuboCop
|
||||
offending_node(m)
|
||||
problem "Use separate `make` calls"
|
||||
end
|
||||
|
||||
body_node.each_descendant(:dstr) do |dstr_node|
|
||||
dstr_node.each_descendant(:begin) do |interpolation_node|
|
||||
next unless interpolation_node.source.match?(/#\{\w+\s*\+\s*['"][^}]+\}/)
|
||||
|
||||
offending_node(interpolation_node)
|
||||
problem "Do not concatenate paths in string interpolation"
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@ -226,6 +226,17 @@ describe RuboCop::Cop::FormulaAudit::Text do
|
||||
end
|
||||
RUBY
|
||||
end
|
||||
|
||||
it "When concatenating in string interpolation" do
|
||||
expect_offense(<<~RUBY)
|
||||
class Foo < Formula
|
||||
def install
|
||||
ohai "foo \#{bar + "baz"}"
|
||||
^^^^^^^^^^^^^^ Do not concatenate paths in string interpolation
|
||||
end
|
||||
end
|
||||
RUBY
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user