Class: RuboCop::AST::Node

Inherits:
Object show all
Includes:
Cask::Constants
Defined in:
rubocops/cask/extend/node.rb

Overview

Extensions for RuboCop’s AST Node class.

Constant Summary

Constants included from Cask::Constants

Cask::Constants::ON_SYSTEM_METHODS, Cask::Constants::ON_SYSTEM_METHODS_STANZA_ORDER, Cask::Constants::STANZA_GROUPS, Cask::Constants::STANZA_GROUP_HASH, Cask::Constants::STANZA_ORDER

Instance Method Summary collapse

Instance Method Details

#cask_on_system_block?Boolean

Returns:

  • (Boolean)


25
26
27
# File 'rubocops/cask/extend/node.rb', line 25

def cask_on_system_block?
  (on_system_block? && each_ancestor.any?(&:cask_block?)) || false
end

#heredoc?Boolean

Returns:

  • (Boolean)


39
40
41
# File 'rubocops/cask/extend/node.rb', line 39

def heredoc?
  loc.is_a?(Parser::Source::Map::Heredoc)
end

#location_expressionObject



43
44
45
46
47
48
# File 'rubocops/cask/extend/node.rb', line 43

def location_expression
  base_expression = loc.expression
  descendants.select(&:heredoc?).reduce(base_expression) do |expr, node|
    expr.join(node.loc.heredoc_end)
  end
end

#stanza?Boolean

Returns:

  • (Boolean)


29
30
31
32
33
34
35
36
37
# File 'rubocops/cask/extend/node.rb', line 29

def stanza?
  return true if arch_variable?

  case self
  when RuboCop::AST::BlockNode, RuboCop::AST::SendNode
    ON_SYSTEM_METHODS.include?(method_name) || STANZA_ORDER.include?(method_name)
  else false
  end
end