style: don't use prefix + directory
This commit is contained in:
parent
b4a9565b8b
commit
792533462a
@ -843,15 +843,6 @@ module Homebrew
|
||||
problem "Don't need to interpolate \"#{Regexp.last_match(2)}\" with #{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
|
||||
problem(
|
||||
"\"(#{Regexp.last_match(1)}...#{Regexp.last_match(2)})\" should" \
|
||||
" be \"(#{Regexp.last_match(3).downcase}+...)\"",
|
||||
)
|
||||
end
|
||||
|
||||
return unless @strict
|
||||
|
||||
# TODO: check could be in RuboCop
|
||||
|
||||
@ -93,6 +93,19 @@ module RuboCop
|
||||
offending_node(n)
|
||||
problem "Use `depends_on :java` to set JAVA_HOME"
|
||||
end
|
||||
|
||||
find_strings(body_node).each do |n|
|
||||
# Skip strings that don't start with one of the keywords
|
||||
next unless regex_match_group(n, %r{^(bin|include|libexec|lib|sbin|share|Frameworks)/?})
|
||||
|
||||
parent = n.parent
|
||||
# Only look at keywords that have `prefix` before them
|
||||
prefix_keyword_regex = %r{(prefix\s*\+\s*["'](bin|include|libexec|lib|sbin|share|Frameworks))["'/]}
|
||||
if match = parent.source.match(prefix_keyword_regex)
|
||||
offending_node(parent)
|
||||
problem "Use `#{match[2].downcase}` instead of `#{match[1]}\"`"
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@ -292,6 +292,28 @@ describe RuboCop::Cop::FormulaAudit::Text do
|
||||
end
|
||||
RUBY
|
||||
end
|
||||
|
||||
it "When using `prefix + \"bin\"` instead of `bin`" do
|
||||
expect_offense(<<~RUBY)
|
||||
class Foo < Formula
|
||||
def install
|
||||
ohai prefix + "bin"
|
||||
^^^^^^^^^^^^^^ Use `bin` instead of `prefix + "bin"`
|
||||
end
|
||||
end
|
||||
RUBY
|
||||
end
|
||||
|
||||
it "When using `prefix + \"bin/foo\"` instead of `bin`" do
|
||||
expect_offense(<<~RUBY)
|
||||
class Foo < Formula
|
||||
def install
|
||||
ohai prefix + "bin/foo"
|
||||
^^^^^^^^^^^^^^^^^^ Use `bin` instead of `prefix + "bin"`
|
||||
end
|
||||
end
|
||||
RUBY
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user