Class: VisualizeRuby::Parser::And

Inherits:
Object
  • Object
show all
Defined in:
lib/visualize_ruby/parser/and.rb

Instance Method Summary collapse

Constructor Details

#initialize(ast) ⇒ And

Returns a new instance of And.



4
5
6
# File 'lib/visualize_ruby/parser/and.rb', line 4

def initialize(ast)
  @ast = ast
end

Instance Method Details

#parseArray<VisualizeRuby::Node>, Array<VisualizeRuby::Edge>

Returns:



9
10
11
12
13
14
15
16
17
18
19
# File 'lib/visualize_ruby/parser/and.rb', line 9

def parse
  last_node = nil
  edges     = []
  nodes     = @ast.children.reverse.map do |c|
    node = Node.new(name: c.children.last, type: :decision)
    edges << Edge.new(name: "AND", nodes: [node, last_node]) if last_node
    last_node = node
    node
  end.reverse
  return nodes, edges
end