module VisualizeRuby::Parser::Conditions

Public Instance Methods

parse() click to toggle source

@return [Array<VisualizeRuby::Node>, Array<VisualizeRuby::Edge>]

# File lib/visualize_ruby/parser/conditions.rb, line 13
def parse
  last_node = nil
  @ast.children.reverse.map do |c|
    node = set_conditions(c).last
    if last_node
      edges << Edge.new(name: self.class.name.split("::").last.upcase, nodes: [node, last_node])
      last_node.lineno_connection = edges.last
    end
    last_node = node
    node
  end
  return nodes, edges
end
set_conditions(condition) click to toggle source
# File lib/visualize_ruby/parser/conditions.rb, line 4
def set_conditions(condition)
  condition_nodes, condition_edges = Parser.new(ast: condition).parse
  condition_nodes.first.type       = :decision
  nodes.unshift(*condition_nodes)
  edges.unshift(*condition_edges)
  condition_nodes
end