class VisualizeRuby::Parser
Attributes
ast[R]
Public Class Methods
new(ruby_code = nil, ast: ::Parser::CurrentRuby.parse(ruby_code))
click to toggle source
# File lib/visualize_ruby/parser.rb, line 21 def initialize(ruby_code = nil, ast: ::Parser::CurrentRuby.parse(ruby_code)) @ast = ast end
Public Instance Methods
edges()
click to toggle source
# File lib/visualize_ruby/parser.rb, line 36 def edges @edges ||= [] end
nodes()
click to toggle source
# File lib/visualize_ruby/parser.rb, line 32 def nodes @nodes ||= [] end
parse()
click to toggle source
@return [Array<VisualizeRuby::Node>, Array<VisualizeRuby::Edge>]
# File lib/visualize_ruby/parser.rb, line 26 def parse merge *parse_by_type return nodes, edges end
Private Instance Methods
merge(nodes, edges)
click to toggle source
# File lib/visualize_ruby/parser.rb, line 48 def merge(nodes, edges) self.nodes.concat(nodes) self.edges.concat(edges) end
parse_by_type()
click to toggle source
# File lib/visualize_ruby/parser.rb, line 42 def parse_by_type Parser.const_get(ast.type.to_s.capitalize, false).new(ast).parse rescue NameError Str.new(ast).parse end