From 5ddebe1640e755777ccbece27749344837751386 Mon Sep 17 00:00:00 2001 From: Issy Long Date: Wed, 4 Oct 2023 23:28:30 +0100 Subject: [PATCH] rubocops/text: Declare "revision 0" in formulae as unnecessary - This came up in a user contribution recently so here's a RuboCop for it. --- Library/Homebrew/rubocops/text.rb | 4 ++++ Library/Homebrew/test/rubocops/text_spec.rb | 11 +++++++++++ 2 files changed, 15 insertions(+) diff --git a/Library/Homebrew/rubocops/text.rb b/Library/Homebrew/rubocops/text.rb index e1c1461da0588..9ef5b63fecc2c 100644 --- a/Library/Homebrew/rubocops/text.rb +++ b/Library/Homebrew/rubocops/text.rb @@ -48,6 +48,10 @@ def audit_formula(node, _class_node, _parent_class_node, body_node) problem "\"Formula.factory(name)\" is deprecated in favor of \"Formula[name]\"" end + find_method_with_args(body_node, :revision, 0) do + problem "\"revision 0\" is unnecessary" + end + find_method_with_args(body_node, :system, "xcodebuild") do problem %q(use "xcodebuild *args" instead of "system 'xcodebuild', *args") end diff --git a/Library/Homebrew/test/rubocops/text_spec.rb b/Library/Homebrew/test/rubocops/text_spec.rb index 29074d087a2e9..de9fb25724b46 100644 --- a/Library/Homebrew/test/rubocops/text_spec.rb +++ b/Library/Homebrew/test/rubocops/text_spec.rb @@ -24,6 +24,17 @@ class Foo < Formula RUBY end + it "reports an offense if 'revision 0' is present" do + expect_offense(<<~RUBY) + class Foo < Formula + url "https://brew.sh/foo-1.0.tgz" + homepage "https://brew.sh" + revision 0 + ^^^^^^^^^^ FormulaAudit/Text: "revision 0" is unnecessary + end + RUBY + end + it "reports an offense if both openssl and libressl are dependencies" do expect_offense(<<~RUBY) class Foo < Formula