Class: Homebrew::TapAuditor Private

Inherits:
Object
  • Object
show all
Extended by:
T::Sig
Defined in:
tap_auditor.rb

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.

Auditor for checking common violations in Taps.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(tap, strict:) ⇒ 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.

Parameters:

  • tap (Tap)
  • strict (Boolean, nil)


15
16
17
18
19
20
21
22
23
24
# File 'tap_auditor.rb', line 15

def initialize(tap, strict:)
  @name                      = tap.name
  @path                      = tap.path
  @formula_names             = tap.formula_names
  @cask_tokens               = tap.cask_tokens
  @tap_audit_exceptions      = tap.audit_exceptions
  @tap_style_exceptions      = tap.style_exceptions
  @tap_pypi_formula_mappings = tap.pypi_formula_mappings
  @problems                  = []
end

Instance Attribute Details

#cask_tokensObject (readonly)

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.



11
12
13
# File 'tap_auditor.rb', line 11

def cask_tokens
  @cask_tokens
end

#formula_namesObject (readonly)

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.



11
12
13
# File 'tap_auditor.rb', line 11

def formula_names
  @formula_names
end

#nameObject (readonly)

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.



11
12
13
# File 'tap_auditor.rb', line 11

def name
  @name
end

#pathObject (readonly)

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.



11
12
13
# File 'tap_auditor.rb', line 11

def path
  @path
end

#problemsObject (readonly)

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.



11
12
13
# File 'tap_auditor.rb', line 11

def problems
  @problems
end

#tap_audit_exceptionsObject (readonly)

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.



11
12
13
# File 'tap_auditor.rb', line 11

def tap_audit_exceptions
  @tap_audit_exceptions
end

#tap_pypi_formula_mappingsObject (readonly)

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.



11
12
13
# File 'tap_auditor.rb', line 11

def tap_pypi_formula_mappings
  @tap_pypi_formula_mappings
end

#tap_style_exceptionsObject (readonly)

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.



11
12
13
# File 'tap_auditor.rb', line 11

def tap_style_exceptions
  @tap_style_exceptions
end

Instance Method Details

#auditvoid

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.



27
28
29
30
# File 'tap_auditor.rb', line 27

def audit
  audit_json_files
  audit_tap_formula_lists
end

#audit_json_filesvoid

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.



33
34
35
36
37
38
39
40
# File 'tap_auditor.rb', line 33

def audit_json_files
  json_patterns = Tap::HOMEBREW_TAP_JSON_FILES.map { |pattern| @path/pattern }
  Pathname.glob(json_patterns).each do |file|
    JSON.parse file.read
  rescue JSON::ParserError
    problem "#{file.to_s.delete_prefix("#{@path}/")} contains invalid JSON"
  end
end

#audit_tap_formula_listsvoid

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.



43
44
45
46
47
# File 'tap_auditor.rb', line 43

def audit_tap_formula_lists
  check_formula_list_directory "audit_exceptions", @tap_audit_exceptions
  check_formula_list_directory "style_exceptions", @tap_style_exceptions
  check_formula_list "pypi_formula_mappings", @tap_pypi_formula_mappings
end

#problem(message) ⇒ 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:



50
51
52
# File 'tap_auditor.rb', line 50

def problem(message)
  @problems << ({ message: message, location: nil })
end