Class: RuboCop::Cask::AST::CaskHeader
- Inherits:
-
Object
- Object
- RuboCop::Cask::AST::CaskHeader
- Defined in:
- lib/rubocop/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
-
#method_node ⇒ Object
readonly
Returns the value of attribute method_node.
Instance Method Summary collapse
- #cask_token ⇒ Object
- #dsl_version ⇒ Object
- #dsl_version? ⇒ Boolean
- #hash_node ⇒ Object
- #header_method_name ⇒ Object
- #header_str ⇒ Object
-
#initialize(method_node) ⇒ CaskHeader
constructor
A new instance of CaskHeader.
- #pair_node ⇒ Object
- #preferred_header_method_name ⇒ Object
- #preferred_header_str ⇒ Object
- #source_range ⇒ Object
- #test_cask? ⇒ Boolean
Constructor Details
#initialize(method_node) ⇒ CaskHeader
Returns a new instance of CaskHeader.
7 8 9 |
# File 'lib/rubocop/cask/ast/cask_header.rb', line 7 def initialize(method_node) @method_node = method_node end |
Instance Attribute Details
#method_node ⇒ Object (readonly)
Returns the value of attribute method_node.
11 12 13 |
# File 'lib/rubocop/cask/ast/cask_header.rb', line 11 def method_node @method_node end |
Instance Method Details
#cask_token ⇒ Object
45 46 47 |
# File 'lib/rubocop/cask/ast/cask_header.rb', line 45 def cask_token @cask_token ||= pair_node.val_node.children.first end |
#dsl_version ⇒ Object
41 42 43 |
# File 'lib/rubocop/cask/ast/cask_header.rb', line 41 def dsl_version @dsl_version ||= pair_node.key_node.children.first end |
#dsl_version? ⇒ Boolean
13 14 15 |
# File 'lib/rubocop/cask/ast/cask_header.rb', line 13 def dsl_version? hash_node end |
#hash_node ⇒ Object
49 50 51 |
# File 'lib/rubocop/cask/ast/cask_header.rb', line 49 def hash_node @hash_node ||= method_node.each_child_node(:hash).first end |
#header_method_name ⇒ Object
37 38 39 |
# File 'lib/rubocop/cask/ast/cask_header.rb', line 37 def header_method_name @header_method_name ||= method_node.method_name end |
#header_str ⇒ Object
21 22 23 |
# File 'lib/rubocop/cask/ast/cask_header.rb', line 21 def header_str @header_str ||= source_range.source end |
#pair_node ⇒ Object
53 54 55 |
# File 'lib/rubocop/cask/ast/cask_header.rb', line 53 def pair_node @pair_node ||= hash_node.each_child_node(:pair).first end |
#preferred_header_method_name ⇒ Object
33 34 35 |
# File 'lib/rubocop/cask/ast/cask_header.rb', line 33 def preferred_header_method_name test_cask? ? :test_cask : :cask end |
#preferred_header_str ⇒ Object
29 30 31 |
# File 'lib/rubocop/cask/ast/cask_header.rb', line 29 def preferred_header_str "#{preferred_header_method_name} '#{cask_token}'" end |
#source_range ⇒ Object
25 26 27 |
# File 'lib/rubocop/cask/ast/cask_header.rb', line 25 def source_range @source_range ||= method_node.loc.expression end |
#test_cask? ⇒ Boolean
17 18 19 |
# File 'lib/rubocop/cask/ast/cask_header.rb', line 17 def test_cask? header_method_name == :test_cask || dsl_version.to_s.include?('test') end |