Method: AST::Node#initialize
- Defined in:
- lib/ast/node.rb
#initialize(type, children = [], properties = {}) ⇒ Node
Constructs a new instance of Node.
The arguments ‘type` and `children` are converted with `to_sym` and `to_a` respectively. Additionally, the result of converting `children` is frozen. While mutating the arguments is generally considered harmful, the most common case is to pass an array literal to the constructor. If your code does not expect the argument to be frozen, use `#dup`.
The ‘properties` hash is passed to #assign_properties.
72 73 74 75 76 77 78 79 80 |
# File 'lib/ast/node.rb', line 72 def initialize(type, children=[], properties={}) @type, @children = type.to_sym, children.to_a.freeze assign_properties(properties) @hash = [@type, @children, self.class].hash freeze end |