Class: RuboCop::Cask::AST::CaskHeader

Inherits:
Object
  • Object
show all
Defined in:
rubocops/cask/ast/cask_header.rb

Overview

This class wraps the AST method node that represents the cask header. It includes various helper methods to aid cops in their analysis.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(method_node) ⇒ CaskHeader

Returns a new instance of CaskHeader.



10
11
12
# File 'rubocops/cask/ast/cask_header.rb', line 10

def initialize(method_node)
  @method_node = method_node
end

Instance Attribute Details

#method_nodeObject (readonly)

Returns the value of attribute method_node.



14
15
16
# File 'rubocops/cask/ast/cask_header.rb', line 14

def method_node
  @method_node
end

Instance Method Details

#cask_tokenObject



29
30
31
# File 'rubocops/cask/ast/cask_header.rb', line 29

def cask_token
  @cask_token ||= method_node.first_argument.str_content
end

#hash_nodeObject



33
34
35
# File 'rubocops/cask/ast/cask_header.rb', line 33

def hash_node
  @hash_node ||= method_node.each_child_node(:hash).first
end

#header_strObject



16
17
18
# File 'rubocops/cask/ast/cask_header.rb', line 16

def header_str
  @header_str ||= source_range.source
end

#pair_nodeObject



37
38
39
# File 'rubocops/cask/ast/cask_header.rb', line 37

def pair_node
  @pair_node ||= hash_node.each_child_node(:pair).first
end

#preferred_header_strString

Returns:



25
26
27
# File 'rubocops/cask/ast/cask_header.rb', line 25

def preferred_header_str
  "cask '#{cask_token}'"
end

#source_rangeObject



20
21
22
# File 'rubocops/cask/ast/cask_header.rb', line 20

def source_range
  @source_range ||= method_node.loc.expression
end