Merge pull request #14732 from dduugg/formula-cop-mixin

Refactor FormulaCop as an abstract class
This commit is contained in:
Mike McQuaid 2023-02-21 23:05:58 +00:00 committed by GitHub
commit 7ac31f7d65
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
27 changed files with 56 additions and 52 deletions

View File

@ -47,11 +47,6 @@ Cask/StanzaOrder:
Description: "Ensure that cask stanzas are sorted correctly. More info at https://docs.brew.sh/Cask-Cookbook#stanza-order"
Enabled: true
# This was intended to be an abstract Cop class for Homebrew formulae, but rubocop doesn't know that.
# TODO: refactor this as a module for formulae Cop classes to include instead
FormulaCop:
Enabled: false
# enable all formulae audits
FormulaAudit:
Enabled: true

View File

@ -13,29 +13,30 @@ Warnings.ignore :parser_syntax do
end
require_relative "io_read"
require_relative "move_to_extend_os"
require_relative "shell_commands"
require_relative "platform"
require_relative "formula_desc"
require_relative "components_order"
require_relative "components_redundancy"
require_relative "dependency_order"
require_relative "homepage"
require_relative "text"
# formula audit cops
require_relative "bottle"
require_relative "caveats"
require_relative "checksum"
require_relative "patches"
require_relative "class"
require_relative "components_order"
require_relative "components_redundancy"
require_relative "conflicts"
require_relative "options"
require_relative "urls"
require_relative "dependency_order"
require_relative "deprecate_disable"
require_relative "desc"
require_relative "files"
require_relative "homepage"
require_relative "keg_only"
require_relative "lines"
require_relative "livecheck"
require_relative "class"
require_relative "options"
require_relative "patches"
require_relative "text"
require_relative "urls"
require_relative "uses_from_macos"
require_relative "files"
require_relative "keg_only"
require_relative "version"
require_relative "deprecate_disable"
require_relative "bottle"
require_relative "rubocop-cask"

View File

@ -1,7 +1,7 @@
# typed: true
# frozen_string_literal: true
require "rubocops/extend/formula"
require "rubocops/extend/formula_cop"
module RuboCop
module Cop

View File

@ -1,7 +1,7 @@
# typed: true
# frozen_string_literal: true
require "rubocops/extend/formula"
require "rubocops/extend/formula_cop"
module RuboCop
module Cop

View File

@ -1,7 +1,7 @@
# typed: true
# frozen_string_literal: true
require "rubocops/extend/formula"
require "rubocops/extend/formula_cop"
module RuboCop
module Cop

View File

@ -1,7 +1,7 @@
# typed: true
# frozen_string_literal: true
require "rubocops/extend/formula"
require "rubocops/extend/formula_cop"
module RuboCop
module Cop

View File

@ -2,7 +2,7 @@
# frozen_string_literal: true
require "ast_constants"
require "rubocops/extend/formula"
require "rubocops/extend/formula_cop"
module RuboCop
module Cop

View File

@ -1,7 +1,7 @@
# typed: true
# frozen_string_literal: true
require "rubocops/extend/formula"
require "rubocops/extend/formula_cop"
module RuboCop
module Cop

View File

@ -1,7 +1,7 @@
# typed: true
# frozen_string_literal: true
require "rubocops/extend/formula"
require "rubocops/extend/formula_cop"
module RuboCop
module Cop

View File

@ -1,7 +1,7 @@
# typed: true
# frozen_string_literal: true
require "rubocops/extend/formula"
require "rubocops/extend/formula_cop"
module RuboCop
module Cop

View File

@ -1,7 +1,7 @@
# typed: true
# frozen_string_literal: true
require "rubocops/extend/formula"
require "rubocops/extend/formula_cop"
module RuboCop
module Cop

View File

@ -1,7 +1,7 @@
# typed: true
# frozen_string_literal: true
require "rubocops/extend/formula"
require "rubocops/extend/formula_cop"
require "rubocops/shared/desc_helper"
module RuboCop

View File

@ -5,13 +5,18 @@ require "rubocops/shared/helper_functions"
module RuboCop
module Cop
# Superclass for all formula cops.
# Abstract base class for all formula cops.
#
# @api private
class FormulaCop < Base
extend T::Sig
extend T::Helpers
include RangeHelp
include HelperFunctions
abstract!
exclude_from_registry
attr_accessor :file_path
@registry = Cop.registry
@ -28,9 +33,16 @@ module RuboCop
audit_formula(node, class_node, parent_class_node, @body)
end
def audit_formula(node, class_node, parent_class_node, body_node)
raise NotImplementedError, "Subclasses must implement this method."
end
sig {
abstract
.params(
node: RuboCop::AST::ClassNode,
class_node: RuboCop::AST::ConstNode,
parent_class_node: RuboCop::AST::ConstNode,
body_node: RuboCop::AST::Node,
).void
}
def audit_formula(node, class_node, parent_class_node, body_node); end
# Yields to block when there is a match.
#
@ -67,11 +79,7 @@ module RuboCop
# Returns true if given dependency name and dependency type exist in given dependency method call node.
# TODO: Add case where key of hash is an array
def depends_on_name_type?(node, name = nil, type = :required)
name_match = if name
false
else
true # Match only by type when name is nil
end
name_match = !name # Match only by type when name is nil
case type
when :required

View File

@ -1,7 +1,7 @@
# typed: true
# frozen_string_literal: true
require "rubocops/extend/formula"
require "rubocops/extend/formula_cop"
module RuboCop
module Cop

View File

@ -1,7 +1,7 @@
# typed: true
# frozen_string_literal: true
require "rubocops/extend/formula"
require "rubocops/extend/formula_cop"
module RuboCop
module Cop

View File

@ -1,7 +1,7 @@
# typed: true
# frozen_string_literal: true
require "rubocops/extend/formula"
require "rubocops/extend/formula_cop"
module RuboCop
module Cop

View File

@ -2,7 +2,7 @@
# frozen_string_literal: true
require "macos_versions"
require "rubocops/extend/formula"
require "rubocops/extend/formula_cop"
require "rubocops/shared/on_system_conditionals_helper"
module RuboCop

View File

@ -1,7 +1,7 @@
# typed: true
# frozen_string_literal: true
require "rubocops/extend/formula"
require "rubocops/extend/formula_cop"
module RuboCop
module Cop

View File

@ -1,7 +1,7 @@
# typed: true
# frozen_string_literal: true
require "rubocops/extend/formula"
require "rubocops/extend/formula_cop"
module RuboCop
module Cop

View File

@ -1,7 +1,7 @@
# typed: true
# frozen_string_literal: true
require "rubocops/extend/formula"
require "rubocops/extend/formula_cop"
module RuboCop
module Cop

View File

@ -1,7 +1,7 @@
# typed: true
# frozen_string_literal: true
require "rubocops/extend/formula"
require "rubocops/extend/formula_cop"
module RuboCop
module Cop

View File

@ -1,7 +1,7 @@
# typed: true
# frozen_string_literal: true
require "rubocops/extend/formula"
require "rubocops/extend/formula_cop"
module RuboCop
module Cop

View File

@ -1,7 +1,7 @@
# typed: true
# frozen_string_literal: true
require "rubocops/extend/formula"
require "rubocops/extend/formula_cop"
module RuboCop
module Cop

View File

@ -1,7 +1,7 @@
# typed: true
# frozen_string_literal: true
require "rubocops/extend/formula"
require "rubocops/extend/formula_cop"
module RuboCop
module Cop

View File

@ -1,7 +1,7 @@
# typed: false
# frozen_string_literal: true
require "rubocops/formula_desc"
require "rubocops/desc"
describe RuboCop::Cop::FormulaAudit::Desc do
subject(:cop) { described_class.new }

View File

@ -1,7 +1,7 @@
# typed: false
# frozen_string_literal: true
require "rubocops/platform"
require "rubocops/move_to_extend_os"
describe RuboCop::Cop::Homebrew::MoveToExtendOS do
subject(:cop) { described_class.new }