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
Constructor Details
#initialize(left:, right:, location:, comments: []) ⇒ Alias
Returns a new instance of Alias.
345 346 347 348 349 350 |
# File 'lib/syntax_tree/node.rb', line 345 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
343 344 345 |
# File 'lib/syntax_tree/node.rb', line 343 def comments @comments end |
#left ⇒ Object (readonly)
- DynaSymbol | SymbolLiteral
-
the new name of the method
337 338 339 |
# File 'lib/syntax_tree/node.rb', line 337 def left @left end |
#right ⇒ Object (readonly)
- DynaSymbol | SymbolLiteral
-
the old name of the method
340 341 342 |
# File 'lib/syntax_tree/node.rb', line 340 def right @right end |
Instance Method Details
#accept(visitor) ⇒ Object
352 353 354 |
# File 'lib/syntax_tree/node.rb', line 352 def accept(visitor) visitor.visit_alias(self) end |
#child_nodes ⇒ Object Also known as: deconstruct
356 357 358 |
# File 'lib/syntax_tree/node.rb', line 356 def child_nodes [left, right] end |
#deconstruct_keys(keys) ⇒ Object
362 363 364 |
# File 'lib/syntax_tree/node.rb', line 362 def deconstruct_keys(keys) { left: left, right: right, location: location, comments: comments } end |
#format(q) ⇒ Object
366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 |
# File 'lib/syntax_tree/node.rb', line 366 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 |