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"
|
Description: "Ensure that cask stanzas are sorted correctly. More info at https://docs.brew.sh/Cask-Cookbook#stanza-order"
|
||||||
Enabled: true
|
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
|
# enable all formulae audits
|
||||||
FormulaAudit:
|
FormulaAudit:
|
||||||
Enabled: true
|
Enabled: true
|
||||||
|
|||||||
@ -13,29 +13,30 @@ Warnings.ignore :parser_syntax do
|
|||||||
end
|
end
|
||||||
|
|
||||||
require_relative "io_read"
|
require_relative "io_read"
|
||||||
|
require_relative "move_to_extend_os"
|
||||||
require_relative "shell_commands"
|
require_relative "shell_commands"
|
||||||
require_relative "platform"
|
|
||||||
|
|
||||||
require_relative "formula_desc"
|
# formula audit cops
|
||||||
require_relative "components_order"
|
require_relative "bottle"
|
||||||
require_relative "components_redundancy"
|
|
||||||
require_relative "dependency_order"
|
|
||||||
require_relative "homepage"
|
|
||||||
require_relative "text"
|
|
||||||
require_relative "caveats"
|
require_relative "caveats"
|
||||||
require_relative "checksum"
|
require_relative "checksum"
|
||||||
require_relative "patches"
|
require_relative "class"
|
||||||
|
require_relative "components_order"
|
||||||
|
require_relative "components_redundancy"
|
||||||
require_relative "conflicts"
|
require_relative "conflicts"
|
||||||
require_relative "options"
|
require_relative "dependency_order"
|
||||||
require_relative "urls"
|
require_relative "deprecate_disable"
|
||||||
|
require_relative "desc"
|
||||||
|
require_relative "files"
|
||||||
|
require_relative "homepage"
|
||||||
|
require_relative "keg_only"
|
||||||
require_relative "lines"
|
require_relative "lines"
|
||||||
require_relative "livecheck"
|
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 "uses_from_macos"
|
||||||
require_relative "files"
|
|
||||||
require_relative "keg_only"
|
|
||||||
require_relative "version"
|
require_relative "version"
|
||||||
require_relative "deprecate_disable"
|
|
||||||
require_relative "bottle"
|
|
||||||
|
|
||||||
require_relative "rubocop-cask"
|
require_relative "rubocop-cask"
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
# typed: true
|
# typed: true
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require "rubocops/extend/formula"
|
require "rubocops/extend/formula_cop"
|
||||||
|
|
||||||
module RuboCop
|
module RuboCop
|
||||||
module Cop
|
module Cop
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
# typed: true
|
# typed: true
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require "rubocops/extend/formula"
|
require "rubocops/extend/formula_cop"
|
||||||
|
|
||||||
module RuboCop
|
module RuboCop
|
||||||
module Cop
|
module Cop
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
# typed: true
|
# typed: true
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require "rubocops/extend/formula"
|
require "rubocops/extend/formula_cop"
|
||||||
|
|
||||||
module RuboCop
|
module RuboCop
|
||||||
module Cop
|
module Cop
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
# typed: true
|
# typed: true
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require "rubocops/extend/formula"
|
require "rubocops/extend/formula_cop"
|
||||||
|
|
||||||
module RuboCop
|
module RuboCop
|
||||||
module Cop
|
module Cop
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require "ast_constants"
|
require "ast_constants"
|
||||||
require "rubocops/extend/formula"
|
require "rubocops/extend/formula_cop"
|
||||||
|
|
||||||
module RuboCop
|
module RuboCop
|
||||||
module Cop
|
module Cop
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
# typed: true
|
# typed: true
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require "rubocops/extend/formula"
|
require "rubocops/extend/formula_cop"
|
||||||
|
|
||||||
module RuboCop
|
module RuboCop
|
||||||
module Cop
|
module Cop
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
# typed: true
|
# typed: true
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require "rubocops/extend/formula"
|
require "rubocops/extend/formula_cop"
|
||||||
|
|
||||||
module RuboCop
|
module RuboCop
|
||||||
module Cop
|
module Cop
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
# typed: true
|
# typed: true
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require "rubocops/extend/formula"
|
require "rubocops/extend/formula_cop"
|
||||||
|
|
||||||
module RuboCop
|
module RuboCop
|
||||||
module Cop
|
module Cop
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
# typed: true
|
# typed: true
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require "rubocops/extend/formula"
|
require "rubocops/extend/formula_cop"
|
||||||
|
|
||||||
module RuboCop
|
module RuboCop
|
||||||
module Cop
|
module Cop
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
# typed: true
|
# typed: true
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require "rubocops/extend/formula"
|
require "rubocops/extend/formula_cop"
|
||||||
require "rubocops/shared/desc_helper"
|
require "rubocops/shared/desc_helper"
|
||||||
|
|
||||||
module RuboCop
|
module RuboCop
|
||||||
@ -5,13 +5,18 @@ require "rubocops/shared/helper_functions"
|
|||||||
|
|
||||||
module RuboCop
|
module RuboCop
|
||||||
module Cop
|
module Cop
|
||||||
# Superclass for all formula cops.
|
# Abstract base class for all formula cops.
|
||||||
#
|
#
|
||||||
# @api private
|
# @api private
|
||||||
class FormulaCop < Base
|
class FormulaCop < Base
|
||||||
|
extend T::Sig
|
||||||
|
extend T::Helpers
|
||||||
include RangeHelp
|
include RangeHelp
|
||||||
include HelperFunctions
|
include HelperFunctions
|
||||||
|
|
||||||
|
abstract!
|
||||||
|
exclude_from_registry
|
||||||
|
|
||||||
attr_accessor :file_path
|
attr_accessor :file_path
|
||||||
|
|
||||||
@registry = Cop.registry
|
@registry = Cop.registry
|
||||||
@ -28,9 +33,16 @@ module RuboCop
|
|||||||
audit_formula(node, class_node, parent_class_node, @body)
|
audit_formula(node, class_node, parent_class_node, @body)
|
||||||
end
|
end
|
||||||
|
|
||||||
def audit_formula(node, class_node, parent_class_node, body_node)
|
sig {
|
||||||
raise NotImplementedError, "Subclasses must implement this method."
|
abstract
|
||||||
end
|
.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.
|
# 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.
|
# 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
|
# TODO: Add case where key of hash is an array
|
||||||
def depends_on_name_type?(node, name = nil, type = :required)
|
def depends_on_name_type?(node, name = nil, type = :required)
|
||||||
name_match = if name
|
name_match = !name # Match only by type when name is nil
|
||||||
false
|
|
||||||
else
|
|
||||||
true # Match only by type when name is nil
|
|
||||||
end
|
|
||||||
|
|
||||||
case type
|
case type
|
||||||
when :required
|
when :required
|
||||||
@ -1,7 +1,7 @@
|
|||||||
# typed: true
|
# typed: true
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require "rubocops/extend/formula"
|
require "rubocops/extend/formula_cop"
|
||||||
|
|
||||||
module RuboCop
|
module RuboCop
|
||||||
module Cop
|
module Cop
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
# typed: true
|
# typed: true
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require "rubocops/extend/formula"
|
require "rubocops/extend/formula_cop"
|
||||||
|
|
||||||
module RuboCop
|
module RuboCop
|
||||||
module Cop
|
module Cop
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
# typed: true
|
# typed: true
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require "rubocops/extend/formula"
|
require "rubocops/extend/formula_cop"
|
||||||
|
|
||||||
module RuboCop
|
module RuboCop
|
||||||
module Cop
|
module Cop
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require "macos_versions"
|
require "macos_versions"
|
||||||
require "rubocops/extend/formula"
|
require "rubocops/extend/formula_cop"
|
||||||
require "rubocops/shared/on_system_conditionals_helper"
|
require "rubocops/shared/on_system_conditionals_helper"
|
||||||
|
|
||||||
module RuboCop
|
module RuboCop
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
# typed: true
|
# typed: true
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require "rubocops/extend/formula"
|
require "rubocops/extend/formula_cop"
|
||||||
|
|
||||||
module RuboCop
|
module RuboCop
|
||||||
module Cop
|
module Cop
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
# typed: true
|
# typed: true
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require "rubocops/extend/formula"
|
require "rubocops/extend/formula_cop"
|
||||||
|
|
||||||
module RuboCop
|
module RuboCop
|
||||||
module Cop
|
module Cop
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
# typed: true
|
# typed: true
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require "rubocops/extend/formula"
|
require "rubocops/extend/formula_cop"
|
||||||
|
|
||||||
module RuboCop
|
module RuboCop
|
||||||
module Cop
|
module Cop
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
# typed: true
|
# typed: true
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require "rubocops/extend/formula"
|
require "rubocops/extend/formula_cop"
|
||||||
|
|
||||||
module RuboCop
|
module RuboCop
|
||||||
module Cop
|
module Cop
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
# typed: true
|
# typed: true
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require "rubocops/extend/formula"
|
require "rubocops/extend/formula_cop"
|
||||||
|
|
||||||
module RuboCop
|
module RuboCop
|
||||||
module Cop
|
module Cop
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
# typed: true
|
# typed: true
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require "rubocops/extend/formula"
|
require "rubocops/extend/formula_cop"
|
||||||
|
|
||||||
module RuboCop
|
module RuboCop
|
||||||
module Cop
|
module Cop
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
# typed: true
|
# typed: true
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require "rubocops/extend/formula"
|
require "rubocops/extend/formula_cop"
|
||||||
|
|
||||||
module RuboCop
|
module RuboCop
|
||||||
module Cop
|
module Cop
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
# typed: false
|
# typed: false
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require "rubocops/formula_desc"
|
require "rubocops/desc"
|
||||||
|
|
||||||
describe RuboCop::Cop::FormulaAudit::Desc do
|
describe RuboCop::Cop::FormulaAudit::Desc do
|
||||||
subject(:cop) { described_class.new }
|
subject(:cop) { described_class.new }
|
||||||
@ -1,7 +1,7 @@
|
|||||||
# typed: false
|
# typed: false
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require "rubocops/platform"
|
require "rubocops/move_to_extend_os"
|
||||||
|
|
||||||
describe RuboCop::Cop::Homebrew::MoveToExtendOS do
|
describe RuboCop::Cop::Homebrew::MoveToExtendOS do
|
||||||
subject(:cop) { described_class.new }
|
subject(:cop) { described_class.new }
|
||||||
Loading…
x
Reference in New Issue
Block a user