Class: SyntaxTree::MethodAddBlock
Overview
MethodAddBlock represents a method call with a block argument.
method {}
Instance Attribute Summary collapse
-
#block ⇒ Object
readonly
- BraceBlock | DoBlock
-
the block being sent with the method call.
-
#call ⇒ Object
readonly
- Call | Command | CommandCall | FCall
-
the method call.
-
#comments ⇒ Object
readonly
- Array[ Comment | EmbDoc ]
-
the comments attached to this node.
Attributes inherited from Node
Instance Method Summary collapse
- #accept(visitor) ⇒ Object
- #child_nodes ⇒ Object (also: #deconstruct)
- #deconstruct_keys(_keys) ⇒ Object
- #format(q) ⇒ Object
- #format_contents(q) ⇒ Object
-
#initialize(call:, block:, location:, comments: []) ⇒ MethodAddBlock
constructor
A new instance of MethodAddBlock.
Methods inherited from Node
#construct_keys, #pretty_print, #to_json
Constructor Details
#initialize(call:, block:, location:, comments: []) ⇒ MethodAddBlock
Returns a new instance of MethodAddBlock.
6471 6472 6473 6474 6475 6476 |
# File 'lib/syntax_tree/node.rb', line 6471 def initialize(call:, block:, location:, comments: []) @call = call @block = block @location = location @comments = comments end |
Instance Attribute Details
#block ⇒ Object (readonly)
- BraceBlock | DoBlock
-
the block being sent with the method call
6466 6467 6468 |
# File 'lib/syntax_tree/node.rb', line 6466 def block @block end |
#call ⇒ Object (readonly)
- Call | Command | CommandCall | FCall
-
the method call
6463 6464 6465 |
# File 'lib/syntax_tree/node.rb', line 6463 def call @call end |
#comments ⇒ Object (readonly)
- Array[ Comment | EmbDoc ]
-
the comments attached to this node
6469 6470 6471 |
# File 'lib/syntax_tree/node.rb', line 6469 def comments @comments end |
Instance Method Details
#accept(visitor) ⇒ Object
6478 6479 6480 |
# File 'lib/syntax_tree/node.rb', line 6478 def accept(visitor) visitor.visit_method_add_block(self) end |
#child_nodes ⇒ Object Also known as: deconstruct
6482 6483 6484 |
# File 'lib/syntax_tree/node.rb', line 6482 def child_nodes [call, block] end |
#deconstruct_keys(_keys) ⇒ Object
6488 6489 6490 |
# File 'lib/syntax_tree/node.rb', line 6488 def deconstruct_keys(_keys) { call: call, block: block, location: location, comments: comments } end |
#format(q) ⇒ Object
6492 6493 6494 6495 6496 6497 6498 6499 6500 6501 6502 6503 6504 6505 6506 |
# File 'lib/syntax_tree/node.rb', line 6492 def format(q) # If we're at the top of a call chain, then we're going to do some # specialized printing in case we can print it nicely. We _only_ do this # at the top of the chain to avoid weird recursion issues. if CallChainFormatter.chained?(call) && !CallChainFormatter.chained?(q.parent) q.group do q .if_break { CallChainFormatter.new(self).format(q) } .if_flat { format_contents(q) } end else format_contents(q) end end |
#format_contents(q) ⇒ Object
6508 6509 6510 6511 |
# File 'lib/syntax_tree/node.rb', line 6508 def format_contents(q) q.format(call) q.format(block) end |