Class: VisualizeRuby::Parser::Begin
- Inherits:
-
Object
- Object
- VisualizeRuby::Parser::Begin
- Defined in:
- lib/visualize_ruby/parser/begin.rb
Instance Method Summary collapse
-
#initialize(ast) ⇒ Begin
constructor
A new instance of Begin.
- #parse ⇒ Array<VisualizeRuby::Node>, Array<VisualizeRuby::Edge>
Constructor Details
#initialize(ast) ⇒ Begin
Returns a new instance of Begin.
4 5 6 |
# File 'lib/visualize_ruby/parser/begin.rb', line 4 def initialize(ast) @ast = ast end |
Instance Method Details
#parse ⇒ Array<VisualizeRuby::Node>, Array<VisualizeRuby::Edge>
9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/visualize_ruby/parser/begin.rb', line 9 def parse edges = [] nodes = [] last_node = nil @ast.children.to_a.compact.reverse.each do |a| _nodes, _edges = Parser.new(ast: a).parse edges.concat(_edges.reverse) nodes.concat(_nodes.reverse) edges << Edge.new(nodes: [_nodes.first, last_node]) if last_node last_node = _nodes.first end return nodes.reverse, edges.reverse end |