Class: RuboCop::Cop::Cask::OnSystemConditionals Private

Inherits:
Base
  • Object
show all
Extended by:
AutoCorrector, Forwardable
Includes:
CaskHelp, OnSystemConditionalsHelper
Defined in:
rubocops/cask/on_system_conditionals.rb,
rubocops/cask/on_system_conditionals.rbi,
sorbet/rbi/dsl/rubo_cop/cop/cask/on_system_conditionals.rbi

Overview

This class is part of a private API. This class may only be used in the Homebrew/brew repository. Third parties should avoid using this class if possible, as it may be removed or changed without warning.

This cop makes sure that OS conditionals are consistent.

Example

# bad
cask 'foo' do
  if MacOS.version == :high_sierra
    sha256 "..."
  end
end

# good
cask 'foo' do
  on_high_sierra do
    sha256 "..."
  end
end

Constant Summary collapse

FLIGHT_STANZA_NAMES =

This constant is part of a private API. This constant may only be used in the Homebrew/brew repository. Third parties should avoid using this constant if possible, as it may be removed or changed without warning.

[:preflight, :postflight, :uninstall_preflight, :uninstall_postflight].freeze

Constants included from OnSystemConditionalsHelper

OnSystemConditionalsHelper::ARCH_OPTIONS, OnSystemConditionalsHelper::BASE_OS_OPTIONS, OnSystemConditionalsHelper::MACOS_MODULE_NAMES, OnSystemConditionalsHelper::MACOS_VERSION_CONDITIONALS, OnSystemConditionalsHelper::MACOS_VERSION_OPTIONS, OnSystemConditionalsHelper::ON_SYSTEM_OPTIONS

Instance Method Summary collapse

Methods included from CaskHelp

#cask_tap, #inner_stanzas, #on_block, #on_cask_stanza_block, #on_system_methods

Methods included from OnSystemConditionalsHelper

#audit_arch_conditionals, #audit_base_os_conditionals, #audit_macos_references, #audit_macos_version_conditionals, #audit_on_system_blocks, #hardware_cpu_search, #if_arch_node_search, #if_base_os_node_search, #if_macos_version_node_search, #macos_version_comparison_search, #on_macos_version_method_call, #on_system_method_call

Methods included from HelperFunctions

#block_method_called_in_block?, #block_size, #check_precedence, #class_name, #component_precedes?, #end_column, #expression_negated?, #find_all_blocks, #find_block, #find_blocks, #find_const, #find_every_func_call_by_name, #find_every_method_call_by_name, #find_instance_call, #find_instance_method_call, #find_method_calls_by_name, #find_method_def, #find_method_with_args, #find_node_method_by_name, #find_strings, #format_component, #line_number, #line_start_column, #method_called?, #method_called_ever?, #method_name, #node_equals?, #offending_node, #parameters, #parameters_passed?, #problem, #regex_match_group, #size, #source_buffer, #start_column, #string_content

Instance Method Details

#cask_body(*args, &block) ⇒ T.untyped

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Parameters:

  • args (T.untyped)
  • block (T.untyped)

Returns:

  • (T.untyped)


10
# File 'sorbet/rbi/dsl/rubo_cop/cop/cask/on_system_conditionals.rbi', line 10

def cask_body(*args, &block); end

#on_cask(cask_block) ⇒ Object

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.



37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'rubocops/cask/on_system_conditionals.rb', line 37

def on_cask(cask_block)
  @cask_block = cask_block

  toplevel_stanzas.each do |stanza|
    next unless FLIGHT_STANZA_NAMES.include? stanza.stanza_name

    audit_on_system_blocks(stanza.stanza_node, stanza.stanza_name)
  end

  audit_arch_conditionals(cask_body, allowed_blocks: FLIGHT_STANZA_NAMES)
  audit_macos_version_conditionals(cask_body, recommend_on_system: false)
  simplify_sha256_stanzas
end

#sha256_on_arch_stanzas(base_node, &block) ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

This method returns an undefined value.

Parameters:

  • base_node (Parser::AST::Node)
  • block (T.proc.params(node: Parser::AST::Node, method: Symbol, value: String).void)


13
# File 'rubocops/cask/on_system_conditionals.rbi', line 13

def sha256_on_arch_stanzas(base_node, &block); end

#toplevel_stanzas(*args, &block) ⇒ T.untyped

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Parameters:

  • args (T.untyped)
  • block (T.untyped)

Returns:

  • (T.untyped)


13
# File 'sorbet/rbi/dsl/rubo_cop/cop/cask/on_system_conditionals.rbi', line 13

def toplevel_stanzas(*args, &block); end