Class: SyntaxTree::ArgsForward

Inherits:
Node
  • Object
show all
Defined in:
lib/syntax_tree/node.rb

Overview

ArgsForward represents forwarding all kinds of arguments onto another method call.

def request(method, path, **headers, &block); end

def get(...)
  request(:GET, ...)
end

def post(...)
  request(:POST, ...)
end

In the example above, both the get and post methods are forwarding all of their arguments (positional, keyword, and block) on to the request method. The ArgsForward node appears in both the caller (the request method calls) and the callee (the get and post definitions).

Instance Attribute Summary collapse

Attributes inherited from Node

#location

Instance Method Summary collapse

Methods inherited from Node

#pretty_print, #to_json

Constructor Details

#initialize(value:, location:, comments: []) ⇒ ArgsForward

Returns a new instance of ArgsForward.



701
702
703
704
705
# File 'lib/syntax_tree/node.rb', line 701

def initialize(value:, location:, comments: [])
  @value = value
  @location = location
  @comments = comments
end

Instance Attribute Details

#commentsObject (readonly)

Array[ Comment | EmbDoc ]

the comments attached to this node



699
700
701
# File 'lib/syntax_tree/node.rb', line 699

def comments
  @comments
end

#valueObject (readonly)

String

the value of the operator



696
697
698
# File 'lib/syntax_tree/node.rb', line 696

def value
  @value
end

Instance Method Details

#accept(visitor) ⇒ Object



707
708
709
# File 'lib/syntax_tree/node.rb', line 707

def accept(visitor)
  visitor.visit_args_forward(self)
end

#child_nodesObject Also known as: deconstruct



711
712
713
# File 'lib/syntax_tree/node.rb', line 711

def child_nodes
  []
end

#deconstruct_keys(keys) ⇒ Object



717
718
719
# File 'lib/syntax_tree/node.rb', line 717

def deconstruct_keys(keys)
  { value: value, location: location, comments: comments }
end

#format(q) ⇒ Object



721
722
723
# File 'lib/syntax_tree/node.rb', line 721

def format(q)
  q.text(value)
end