123456789_123456789_123456789_123456789_123456789_

Class: YARD::Parser::Ruby::MethodCallNode

Relationships & Source Files
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
self, AstNode, ::Array
Instance Chain:
self, AstNode, ::Array
Inherits: YARD::Parser::Ruby::AstNode
Defined in: lib/yard/parser/ruby/ast_node.rb

Constant Summary

AstNode - Inherited

KEYWORDS

Managing node state

Class Method Summary

AstNode - Inherited

.new

Creates a new AST node.

.node_class_for

Finds the node subclass that should be instantiated for a specific node type.

Instance Attribute Summary

Instance Method Summary

AstNode - Inherited

#==, #children, #first_line, #inspect,
#jump

Searches through the node and all descendants and returns the first node with a type matching any of node_types, otherwise returns the original node (self).

#line, #pretty_print, #show,
#traverse

Traverses the object and yields each node (including descendants) in order.

#unfreeze

Resets node state in tree.

#reset_line_info

Resets line information.

::Array - Inherited

#place

Places values before or after another object (by value) in an array.

Constructor Details

This class inherits a constructor from YARD::Parser::Ruby::AstNode

Instance Attribute Details

#call?Boolean (readonly)

[ GitHub ]

  
# File 'lib/yard/parser/ruby/ast_node.rb', line 439

def call?; true end

#call_has_paren?Boolean (readonly, private)

[ GitHub ]

  
# File 'lib/yard/parser/ruby/ast_node.rb', line 474

def call_has_paren?
  [:fcall, :call].include?(type)
end

Instance Method Details

#block

[ GitHub ]

  
# File 'lib/yard/parser/ruby/ast_node.rb', line 464

def block
  last.type == :do_block || last.type == :brace_block ? last : nil
end

#block_param

[ GitHub ]

  
# File 'lib/yard/parser/ruby/ast_node.rb', line 462

def block_param; parameters.last end

#index_adjust (private)

[ GitHub ]

  
# File 'lib/yard/parser/ruby/ast_node.rb', line 470

def index_adjust
  [:call, :command_call].include?(type) ? 2 : 0
end

#method_name(name_only = false)

[ GitHub ]

  
# File 'lib/yard/parser/ruby/ast_node.rb', line 442

def method_name(name_only = false)
  name = self[index_adjust]
  if name == :call
    nil
  elsif name_only && Array === name
    name.jump(:ident).first.to_sym
  else
    name
  end
end

#namespace

[ GitHub ]

  
# File 'lib/yard/parser/ruby/ast_node.rb', line 440

def namespace; first if index_adjust > 0 end

#parameters(include_block_param = true)

[ GitHub ]

  
# File 'lib/yard/parser/ruby/ast_node.rb', line 453

def parameters(include_block_param = true)
  return [] if type == :vcall
  params = self[1 + index_adjust]
  return [] unless params
  params = call_has_paren? ? params.first : params
  return [] unless params
  include_block_param ? params : params[0...-1]
end