Class: SyntaxTree::Undef
- Inherits:
-
Node
- Object
- Node
- SyntaxTree::Undef
show all
- Defined in:
- lib/syntax_tree/node.rb
Overview
Undef represents the use of the undef keyword.
undef method
Defined Under Namespace
Classes: UndefArgumentFormatter
Instance Attribute Summary collapse
-
#comments ⇒ Object
readonly
- Array[ Comment | EmbDoc ]
-
the comments attached to this node.
-
#symbols ⇒ Object
readonly
- Array[ DynaSymbol | SymbolLiteral ]
-
the symbols to undefine.
Attributes inherited from Node
#location
Instance Method Summary
collapse
Methods inherited from Node
#construct_keys, #end_char, #pretty_print, #start_char, #to_json, #to_mermaid
Constructor Details
#initialize(symbols:, location:) ⇒ Undef
11270
11271
11272
11273
11274
|
# File 'lib/syntax_tree/node.rb', line 11270
def initialize(symbols:, location:)
@symbols = symbols
@location = location
= []
end
|
Instance Attribute Details
- Array[ Comment | EmbDoc ]
-
the comments attached to this node
11268
11269
11270
|
# File 'lib/syntax_tree/node.rb', line 11268
def
end
|
#symbols ⇒ Object
- Array[ DynaSymbol | SymbolLiteral ]
-
the symbols to undefine
11265
11266
11267
|
# File 'lib/syntax_tree/node.rb', line 11265
def symbols
@symbols
end
|
Instance Method Details
#===(other) ⇒ Object
11313
11314
11315
|
# File 'lib/syntax_tree/node.rb', line 11313
def ===(other)
other.is_a?(Undef) && ArrayMatch.call(symbols, other.symbols)
end
|
#accept(visitor) ⇒ Object
11276
11277
11278
|
# File 'lib/syntax_tree/node.rb', line 11276
def accept(visitor)
visitor.visit_undef(self)
end
|
#child_nodes ⇒ Object
Also known as:
deconstruct
11280
11281
11282
|
# File 'lib/syntax_tree/node.rb', line 11280
def child_nodes
symbols
end
|
#copy(symbols: nil, location: nil) ⇒ Object
11284
11285
11286
11287
11288
11289
11290
11291
11292
11293
|
# File 'lib/syntax_tree/node.rb', line 11284
def copy(symbols: nil, location: nil)
node =
Undef.new(
symbols: symbols || self.symbols,
location: location || self.location
)
node..concat(.map(&:copy))
node
end
|
#deconstruct_keys(_keys) ⇒ Object
11297
11298
11299
|
# File 'lib/syntax_tree/node.rb', line 11297
def deconstruct_keys(_keys)
{ symbols: symbols, location: location, comments: }
end
|
11301
11302
11303
11304
11305
11306
11307
11308
11309
11310
11311
|
# File 'lib/syntax_tree/node.rb', line 11301
def format(q)
keyword = "undef "
formatters = symbols.map { |symbol| UndefArgumentFormatter.new(symbol) }
q.group do
q.text(keyword)
q.nest(keyword.length) do
q.seplist(formatters) { |formatter| q.format(formatter) }
end
end
end
|