Class: RuboCop::Cop::FormulaAuditStrict::Text Private
- Inherits:
-
RuboCop::Cop::FormulaCop
- Object
- Base
- RuboCop::Cop::FormulaCop
- RuboCop::Cop::FormulaAuditStrict::Text
- Defined in:
- rubocops/text.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.
This cop contains stricter checks for various problems in a formula’s source code.
Instance Attribute Summary
Attributes inherited from RuboCop::Cop::FormulaCop
Instance Method Summary collapse
-
#audit_formula(_node, _class_node, _parent_class_node, body_node) ⇒ Object
private
-
#path_starts_with?(path, starts_with) ⇒ Boolean
private
Check whether value starts with the formula name and then a “/”, “ “ or EOS.
Methods inherited from RuboCop::Cop::FormulaCop
#audit_comments, #audit_urls, #caveats_strings, #depends_on?, #depends_on_name_type?, #formula_tap, #get_checksum_node, #on_class, #tap_style_exception?, #versioned_formula?
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
#audit_formula(_node, _class_node, _parent_class_node, body_node) ⇒ 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.
110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 |
# File 'rubocops/text.rb', line 110 def audit_formula(_node, _class_node, _parent_class_node, body_node) return if body_node.nil? find_method_with_args(body_node, :go_resource) do problem "`go_resource`s are deprecated. Please ask upstream to implement Go vendoring" end find_method_with_args(body_node, :env, :userpaths) do problem "`env :userpaths` in homebrew/core formulae is deprecated" end share_path_starts_with(body_node, @formula_name) do |share_node| offending_node(share_node) problem "Use `pkgshare` instead of `share/\"#{@formula_name}\"`" end interpolated_share_path_starts_with(body_node, "/#{@formula_name}") do |share_node| offending_node(share_node) problem "Use `\#{pkgshare}` instead of `\#{share}/#{@formula_name}`" end return if formula_tap != "homebrew-core" find_method_with_args(body_node, :env, :std) do problem "`env :std` in homebrew/core formulae is deprecated" end end |
#path_starts_with?(path, starts_with) ⇒ Boolean
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.
Check whether value starts with the formula name and then a “/”, “ “ or EOS.
139 140 141 |
# File 'rubocops/text.rb', line 139 def path_starts_with?(path, starts_with) path.match?(%r{^#{Regexp.escape(starts_with)}(/| |$)}) end |