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.
6199 6200 6201 6202 6203 6204 |
# File 'lib/syntax_tree/node.rb', line 6199 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
6194 6195 6196 |
# File 'lib/syntax_tree/node.rb', line 6194 def block @block end |
#call ⇒ Object (readonly)
- Call | Command | CommandCall | FCall
-
the method call
6191 6192 6193 |
# File 'lib/syntax_tree/node.rb', line 6191 def call @call end |
#comments ⇒ Object (readonly)
- Array[ Comment | EmbDoc ]
-
the comments attached to this node
6197 6198 6199 |
# File 'lib/syntax_tree/node.rb', line 6197 def comments @comments end |
Instance Method Details
#accept(visitor) ⇒ Object
6206 6207 6208 |
# File 'lib/syntax_tree/node.rb', line 6206 def accept(visitor) visitor.visit_method_add_block(self) end |
#child_nodes ⇒ Object Also known as: deconstruct
6210 6211 6212 |
# File 'lib/syntax_tree/node.rb', line 6210 def child_nodes [call, block] end |
#deconstruct_keys(_keys) ⇒ Object
6216 6217 6218 |
# File 'lib/syntax_tree/node.rb', line 6216 def deconstruct_keys(_keys) { call: call, block: block, location: location, comments: comments } end |
#format(q) ⇒ Object
6220 6221 6222 6223 6224 6225 6226 6227 6228 6229 6230 6231 6232 6233 6234 |
# File 'lib/syntax_tree/node.rb', line 6220 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?(q.parent) && CallChainFormatter.chained?(call) 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
6236 6237 6238 6239 |
# File 'lib/syntax_tree/node.rb', line 6236 def format_contents(q) q.format(call) q.format(block) end |