Class: Parser

Inherits:
Object
  • Object
show all
Defined in:
lib/rtl/json_parser.rb

Instance Method Summary collapse

Instance Method Details

#gen_edge(json) ⇒ Object



42
43
44
45
# File 'lib/rtl/json_parser.rb', line 42

def gen_edge json
  a=json.map{|k,v| {k => @sym[v]}}
  Edge.new(a.inject(:merge))
end

#gen_edges(json) ⇒ Object



38
39
40
# File 'lib/rtl/json_parser.rb', line 38

def gen_edges json
  json.map{|j| gen_edge(j)}
end

#gen_graph(json) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/rtl/json_parser.rb', line 12

def gen_graph json
  @sym={}
  graph=Graph.new
  json.each do |key,val|
    case key
    when "id"
      graph.id=val
    when "nodes"
      graph.nodes=gen_nodes(val)
    when "edges"
      graph.edges=gen_edges(val)
    end
  end
  return graph
end

#gen_node(json) ⇒ Object



32
33
34
35
36
# File 'lib/rtl/json_parser.rb', line 32

def gen_node json
  node=Node.new(json)
  @sym[node.id]=node
  node
end

#gen_nodes(json) ⇒ Object



28
29
30
# File 'lib/rtl/json_parser.rb', line 28

def gen_nodes json
  json.map{|j| gen_node(j)}
end

#parse(filename) ⇒ Object



6
7
8
9
10
# File 'lib/rtl/json_parser.rb', line 6

def parse filename
  puts "parsing '#{filename}'"
  json=JSON.parse(IO.read(filename))
  gen_graph json
end