Class: SyntaxTree::Alias
Overview
Alias represents the use of the alias
keyword with regular arguments (not global variables). The alias
keyword is used to make a method respond to another name as well as the current one.
alias aliased_name name
For the example above, in the current context you can now call aliased_name and it will execute the name method. When you’re aliasing two methods, you can either provide bare words (like the example above) or you can provide symbols (note that this includes dynamic symbols like :“left-#middle-right”).
Defined Under Namespace
Classes: AliasArgumentFormatter
Instance Attribute Summary collapse
-
#comments ⇒ Object
readonly
- Array[ Comment | EmbDoc ]
-
the comments attached to this node.
-
#left ⇒ Object
readonly
- DynaSymbol | SymbolLiteral
-
the new name of the method.
-
#right ⇒ Object
readonly
- DynaSymbol | SymbolLiteral
-
the old name of the method.
Attributes inherited from Node
Instance Method Summary collapse
- #accept(visitor) ⇒ Object
- #child_nodes ⇒ Object (also: #deconstruct)
- #deconstruct_keys(_keys) ⇒ Object
- #format(q) ⇒ Object
-
#initialize(left:, right:, location:, comments: []) ⇒ Alias
constructor
A new instance of Alias.
Methods inherited from Node
#construct_keys, #pretty_print, #to_json
Constructor Details
#initialize(left:, right:, location:, comments: []) ⇒ Alias
Returns a new instance of Alias.
385 386 387 388 389 390 |
# File 'lib/syntax_tree/node.rb', line 385 def initialize(left:, right:, location:, comments: []) @left = left @right = right @location = location @comments = comments end |
Instance Attribute Details
#comments ⇒ Object (readonly)
- Array[ Comment | EmbDoc ]
-
the comments attached to this node
383 384 385 |
# File 'lib/syntax_tree/node.rb', line 383 def comments @comments end |
#left ⇒ Object (readonly)
- DynaSymbol | SymbolLiteral
-
the new name of the method
377 378 379 |
# File 'lib/syntax_tree/node.rb', line 377 def left @left end |
#right ⇒ Object (readonly)
- DynaSymbol | SymbolLiteral
-
the old name of the method
380 381 382 |
# File 'lib/syntax_tree/node.rb', line 380 def right @right end |
Instance Method Details
#accept(visitor) ⇒ Object
392 393 394 |
# File 'lib/syntax_tree/node.rb', line 392 def accept(visitor) visitor.visit_alias(self) end |
#child_nodes ⇒ Object Also known as: deconstruct
396 397 398 |
# File 'lib/syntax_tree/node.rb', line 396 def child_nodes [left, right] end |
#deconstruct_keys(_keys) ⇒ Object
402 403 404 |
# File 'lib/syntax_tree/node.rb', line 402 def deconstruct_keys(_keys) { left: left, right: right, location: location, comments: comments } end |
#format(q) ⇒ Object
406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 |
# File 'lib/syntax_tree/node.rb', line 406 def format(q) keyword = "alias " left_argument = AliasArgumentFormatter.new(left) q.group do q.text(keyword) q.format(left_argument, stackable: false) q.group do q.nest(keyword.length) do q.breakable(force: left_argument.comments.any?) q.format(AliasArgumentFormatter.new(right), stackable: false) end end end end |