Merge pull request #14732 from dduugg/formula-cop-mixin
Refactor FormulaCop as an abstract class
This commit is contained in:
commit
7ac31f7d65
@ -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
|
||||
|
||||
@ -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"
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
# typed: true
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "rubocops/extend/formula"
|
||||
require "rubocops/extend/formula_cop"
|
||||
|
||||
module RuboCop
|
||||
module Cop
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
# typed: true
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "rubocops/extend/formula"
|
||||
require "rubocops/extend/formula_cop"
|
||||
|
||||
module RuboCop
|
||||
module Cop
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
# typed: true
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "rubocops/extend/formula"
|
||||
require "rubocops/extend/formula_cop"
|
||||
|
||||
module RuboCop
|
||||
module Cop
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
# typed: true
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "rubocops/extend/formula"
|
||||
require "rubocops/extend/formula_cop"
|
||||
|
||||
module RuboCop
|
||||
module Cop
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "ast_constants"
|
||||
require "rubocops/extend/formula"
|
||||
require "rubocops/extend/formula_cop"
|
||||
|
||||
module RuboCop
|
||||
module Cop
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
# typed: true
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "rubocops/extend/formula"
|
||||
require "rubocops/extend/formula_cop"
|
||||
|
||||
module RuboCop
|
||||
module Cop
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
# typed: true
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "rubocops/extend/formula"
|
||||
require "rubocops/extend/formula_cop"
|
||||
|
||||
module RuboCop
|
||||
module Cop
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
# typed: true
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "rubocops/extend/formula"
|
||||
require "rubocops/extend/formula_cop"
|
||||
|
||||
module RuboCop
|
||||
module Cop
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
# typed: true
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "rubocops/extend/formula"
|
||||
require "rubocops/extend/formula_cop"
|
||||
|
||||
module RuboCop
|
||||
module Cop
|
||||
|
||||
@ -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
|
||||
@ -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
|
||||
@ -1,7 +1,7 @@
|
||||
# typed: true
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "rubocops/extend/formula"
|
||||
require "rubocops/extend/formula_cop"
|
||||
|
||||
module RuboCop
|
||||
module Cop
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
# typed: true
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "rubocops/extend/formula"
|
||||
require "rubocops/extend/formula_cop"
|
||||
|
||||
module RuboCop
|
||||
module Cop
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
# typed: true
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "rubocops/extend/formula"
|
||||
require "rubocops/extend/formula_cop"
|
||||
|
||||
module RuboCop
|
||||
module Cop
|
||||
|
||||
@ -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
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
# typed: true
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "rubocops/extend/formula"
|
||||
require "rubocops/extend/formula_cop"
|
||||
|
||||
module RuboCop
|
||||
module Cop
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
# typed: true
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "rubocops/extend/formula"
|
||||
require "rubocops/extend/formula_cop"
|
||||
|
||||
module RuboCop
|
||||
module Cop
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
# typed: true
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "rubocops/extend/formula"
|
||||
require "rubocops/extend/formula_cop"
|
||||
|
||||
module RuboCop
|
||||
module Cop
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
# typed: true
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "rubocops/extend/formula"
|
||||
require "rubocops/extend/formula_cop"
|
||||
|
||||
module RuboCop
|
||||
module Cop
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
# typed: true
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "rubocops/extend/formula"
|
||||
require "rubocops/extend/formula_cop"
|
||||
|
||||
module RuboCop
|
||||
module Cop
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
# typed: true
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "rubocops/extend/formula"
|
||||
require "rubocops/extend/formula_cop"
|
||||
|
||||
module RuboCop
|
||||
module Cop
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
# typed: true
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "rubocops/extend/formula"
|
||||
require "rubocops/extend/formula_cop"
|
||||
|
||||
module RuboCop
|
||||
module Cop
|
||||
|
||||
@ -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 }
|
||||
@ -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 }
|
||||
Loading…
x
Reference in New Issue
Block a user