fix style
This commit is contained in:
parent
4e286ee36d
commit
cf84800939
@ -424,7 +424,7 @@ module RuboCop
|
|||||||
def audit_formula(_node, _class_node, _parent_class_node, body_node)
|
def audit_formula(_node, _class_node, _parent_class_node, body_node)
|
||||||
install = find_method_def(body_node, :install)
|
install = find_method_def(body_node, :install)
|
||||||
|
|
||||||
correctable_shell_completion_node(install) do |node, shell, base_name, executable, subcmd, shell_parameter|
|
correctable_shell_completion_node(install) do |node, shell, base_name, executable, subcmd, shell_parameter| # rubocop:disable Metrics/ParameterLists
|
||||||
# generate_completions_from_executable only applicable if shell is passed
|
# generate_completions_from_executable only applicable if shell is passed
|
||||||
next unless shell_parameter.match?(/(bash|zsh|fish)/)
|
next unless shell_parameter.match?(/(bash|zsh|fish)/)
|
||||||
|
|
||||||
|
@ -3,130 +3,132 @@
|
|||||||
|
|
||||||
require "rubocops/lines"
|
require "rubocops/lines"
|
||||||
|
|
||||||
describe RuboCop::Cop::FormulaAudit::Lines do
|
describe RuboCop::Cop::FormulaAudit do
|
||||||
subject(:cop) { described_class.new }
|
describe RuboCop::Cop::FormulaAudit::Lines do
|
||||||
|
subject(:cop) { described_class.new }
|
||||||
|
|
||||||
context "when auditing deprecated special dependencies" do
|
context "when auditing deprecated special dependencies" do
|
||||||
it "reports an offense when using depends_on :automake" do
|
it "reports an offense when using depends_on :automake" do
|
||||||
expect_offense(<<~RUBY)
|
expect_offense(<<~RUBY)
|
||||||
|
class Foo < Formula
|
||||||
|
url 'https://brew.sh/foo-1.0.tgz'
|
||||||
|
depends_on :automake
|
||||||
|
^^^^^^^^^^^^^^^^^^^^ :automake is deprecated. Usage should be \"automake\".
|
||||||
|
end
|
||||||
|
RUBY
|
||||||
|
end
|
||||||
|
|
||||||
|
it "reports an offense when using depends_on :autoconf" do
|
||||||
|
expect_offense(<<~RUBY)
|
||||||
|
class Foo < Formula
|
||||||
|
url 'https://brew.sh/foo-1.0.tgz'
|
||||||
|
depends_on :autoconf
|
||||||
|
^^^^^^^^^^^^^^^^^^^^ :autoconf is deprecated. Usage should be \"autoconf\".
|
||||||
|
end
|
||||||
|
RUBY
|
||||||
|
end
|
||||||
|
|
||||||
|
it "reports an offense when using depends_on :libtool" do
|
||||||
|
expect_offense(<<~RUBY)
|
||||||
|
class Foo < Formula
|
||||||
|
url 'https://brew.sh/foo-1.0.tgz'
|
||||||
|
depends_on :libtool
|
||||||
|
^^^^^^^^^^^^^^^^^^^ :libtool is deprecated. Usage should be \"libtool\".
|
||||||
|
end
|
||||||
|
RUBY
|
||||||
|
end
|
||||||
|
|
||||||
|
it "reports an offense when using depends_on :apr" do
|
||||||
|
expect_offense(<<~RUBY)
|
||||||
|
class Foo < Formula
|
||||||
|
url 'https://brew.sh/foo-1.0.tgz'
|
||||||
|
depends_on :apr
|
||||||
|
^^^^^^^^^^^^^^^ :apr is deprecated. Usage should be \"apr-util\".
|
||||||
|
end
|
||||||
|
RUBY
|
||||||
|
end
|
||||||
|
|
||||||
|
it "reports an offense when using depends_on :tex" do
|
||||||
|
expect_offense(<<~RUBY)
|
||||||
|
class Foo < Formula
|
||||||
|
url 'https://brew.sh/foo-1.0.tgz'
|
||||||
|
depends_on :tex
|
||||||
|
^^^^^^^^^^^^^^^ :tex is deprecated.
|
||||||
|
end
|
||||||
|
RUBY
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe RuboCop::Cop::FormulaAudit::GenerateCompletionsDSL do
|
||||||
|
subject(:cop) { described_class.new }
|
||||||
|
|
||||||
|
it "reports an offense when writing to a shell completions file directly" do
|
||||||
|
expect_offense(<<~RUBY, "/homebrew-core/Formula/foo.rb")
|
||||||
class Foo < Formula
|
class Foo < Formula
|
||||||
url 'https://brew.sh/foo-1.0.tgz'
|
name "foo"
|
||||||
depends_on :automake
|
|
||||||
^^^^^^^^^^^^^^^^^^^^ :automake is deprecated. Usage should be \"automake\".
|
def install
|
||||||
|
(bash_completion/"foo").write Utils.safe_popen_read(bin/"foo", "completions", "bash")
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Use `generate_completions_from_executable(bin/"foo", "completions", shells: [:bash])` instead of `(bash_completion/"foo").write Utils.safe_popen_read(bin/"foo", "completions", "bash")`.
|
||||||
|
end
|
||||||
|
end
|
||||||
|
RUBY
|
||||||
|
|
||||||
|
expect_correction(<<~RUBY)
|
||||||
|
class Foo < Formula
|
||||||
|
name "foo"
|
||||||
|
|
||||||
|
def install
|
||||||
|
generate_completions_from_executable(bin/"foo", "completions", shells: [:bash])
|
||||||
|
end
|
||||||
end
|
end
|
||||||
RUBY
|
RUBY
|
||||||
end
|
end
|
||||||
|
|
||||||
it "reports an offense when using depends_on :autoconf" do
|
it "reports an offense when writing to a completions file indirectly" do
|
||||||
expect_offense(<<~RUBY)
|
expect_offense(<<~RUBY)
|
||||||
class Foo < Formula
|
class Foo < Formula
|
||||||
url 'https://brew.sh/foo-1.0.tgz'
|
name "foo"
|
||||||
depends_on :autoconf
|
|
||||||
^^^^^^^^^^^^^^^^^^^^ :autoconf is deprecated. Usage should be \"autoconf\".
|
def install
|
||||||
|
output = Utils.safe_popen_read(bin/"foo", "completions", "bash")
|
||||||
|
(bash_completion/"foo").write output
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Use `generate_completions_from_executable` DSL instead of `(bash_completion/"foo").write output`.
|
||||||
|
end
|
||||||
end
|
end
|
||||||
RUBY
|
RUBY
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
it "reports an offense when using depends_on :libtool" do
|
describe RuboCop::Cop::FormulaAudit::SingleGenerateCompletionsDSLCall do
|
||||||
|
subject(:cop) { described_class.new }
|
||||||
|
|
||||||
|
it "reports an offense when using multiple #generate_completions_from_executable calls for different shells" do
|
||||||
expect_offense(<<~RUBY)
|
expect_offense(<<~RUBY)
|
||||||
class Foo < Formula
|
class Foo < Formula
|
||||||
url 'https://brew.sh/foo-1.0.tgz'
|
name "foo"
|
||||||
depends_on :libtool
|
|
||||||
^^^^^^^^^^^^^^^^^^^ :libtool is deprecated. Usage should be \"libtool\".
|
def install
|
||||||
|
generate_completions_from_executable(bin/"foo", "completions", shells: [:bash])
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Use a single `generate_completions_from_executable` call combining all specified shells.
|
||||||
|
generate_completions_from_executable(bin/"foo", "completions", shells: [:zsh])
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Use a single `generate_completions_from_executable` call combining all specified shells.
|
||||||
|
generate_completions_from_executable(bin/"foo", "completions", shells: [:fish])
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Use `generate_completions_from_executable(bin/"foo", "completions")` instead of `generate_completions_from_executable(bin/"foo", "completions", shells: [:fish])`.
|
||||||
|
end
|
||||||
end
|
end
|
||||||
RUBY
|
RUBY
|
||||||
end
|
|
||||||
|
|
||||||
it "reports an offense when using depends_on :apr" do
|
expect_correction(<<~RUBY)
|
||||||
expect_offense(<<~RUBY)
|
|
||||||
class Foo < Formula
|
class Foo < Formula
|
||||||
url 'https://brew.sh/foo-1.0.tgz'
|
name "foo"
|
||||||
depends_on :apr
|
|
||||||
^^^^^^^^^^^^^^^ :apr is deprecated. Usage should be \"apr-util\".
|
|
||||||
end
|
|
||||||
RUBY
|
|
||||||
end
|
|
||||||
|
|
||||||
it "reports an offense when using depends_on :tex" do
|
def install
|
||||||
expect_offense(<<~RUBY)
|
generate_completions_from_executable(bin/"foo", "completions")
|
||||||
class Foo < Formula
|
end
|
||||||
url 'https://brew.sh/foo-1.0.tgz'
|
|
||||||
depends_on :tex
|
|
||||||
^^^^^^^^^^^^^^^ :tex is deprecated.
|
|
||||||
end
|
end
|
||||||
RUBY
|
RUBY
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe RuboCop::Cop::FormulaAudit::GenerateCompletionsDSL do
|
|
||||||
subject(:cop) { described_class.new }
|
|
||||||
|
|
||||||
it "reports an offense when writing to a shell completions file directly" do
|
|
||||||
expect_offense(<<~RUBY, "/homebrew-core/Formula/foo.rb")
|
|
||||||
class Foo < Formula
|
|
||||||
name "foo"
|
|
||||||
|
|
||||||
def install
|
|
||||||
(bash_completion/"foo").write Utils.safe_popen_read(bin/"foo", "completions", "bash")
|
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Use `generate_completions_from_executable(bin/"foo", "completions", shells: [:bash])` instead of `(bash_completion/"foo").write Utils.safe_popen_read(bin/"foo", "completions", "bash")`.
|
|
||||||
end
|
|
||||||
end
|
|
||||||
RUBY
|
|
||||||
|
|
||||||
expect_correction(<<~RUBY)
|
|
||||||
class Foo < Formula
|
|
||||||
name "foo"
|
|
||||||
|
|
||||||
def install
|
|
||||||
generate_completions_from_executable(bin/"foo", "completions", shells: [:bash])
|
|
||||||
end
|
|
||||||
end
|
|
||||||
RUBY
|
|
||||||
end
|
|
||||||
|
|
||||||
it "reports an offense when writing to a completions file indirectly" do
|
|
||||||
expect_offense(<<~RUBY)
|
|
||||||
class Foo < Formula
|
|
||||||
name "foo"
|
|
||||||
|
|
||||||
def install
|
|
||||||
output = Utils.safe_popen_read(bin/"foo", "completions", "bash")
|
|
||||||
(bash_completion/"foo").write output
|
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Use `generate_completions_from_executable` DSL instead of `(bash_completion/"foo").write output`.
|
|
||||||
end
|
|
||||||
end
|
|
||||||
RUBY
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
describe RuboCop::Cop::FormulaAudit::SingleGenerateCompletionsDSLCall do
|
|
||||||
subject(:cop) { described_class.new }
|
|
||||||
|
|
||||||
it "reports an offense when using multiple #generate_completions_from_executable calls for different shells" do
|
|
||||||
expect_offense(<<~RUBY)
|
|
||||||
class Foo < Formula
|
|
||||||
name "foo"
|
|
||||||
|
|
||||||
def install
|
|
||||||
generate_completions_from_executable(bin/"foo", "completions", shells: [:bash])
|
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Use a single `generate_completions_from_executable` call combining all specified shells.
|
|
||||||
generate_completions_from_executable(bin/"foo", "completions", shells: [:zsh])
|
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Use a single `generate_completions_from_executable` call combining all specified shells.
|
|
||||||
generate_completions_from_executable(bin/"foo", "completions", shells: [:fish])
|
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Use `generate_completions_from_executable(bin/"foo", "completions")` instead of `generate_completions_from_executable(bin/"foo", "completions", shells: [:fish])`.
|
|
||||||
end
|
|
||||||
end
|
|
||||||
RUBY
|
|
||||||
|
|
||||||
expect_correction(<<~RUBY)
|
|
||||||
class Foo < Formula
|
|
||||||
name "foo"
|
|
||||||
|
|
||||||
def install
|
|
||||||
generate_completions_from_executable(bin/"foo", "completions")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
RUBY
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user