gremlin2dot 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0a1c658eedf3c5ff39c687cbe21b3fd7e407a7285b67e720a46ef010b9796683
4
- data.tar.gz: f88dfd7d98dbd4a0ae5c866c20709bc5098191a1369379b56943e3e279e8358a
3
+ metadata.gz: 9f3caf040c14213db68f758fb1120d2ba2fb617d4e2189c0bafee75a0a27e749
4
+ data.tar.gz: e080468b7856ad111121cab2b20816d73b2d7ee6771a33fcf871d648e3856acf
5
5
  SHA512:
6
- metadata.gz: 11d45d23294c8dbfaa5e590b06d38f920a9bf623c5d03080c907dea4b6341ca6e8c154e0d3bd6759c63b3448aa3b38011d7a9fb5359ff620771d308fae0caff9
7
- data.tar.gz: d8cbc265a3cb5ad24de2f6abfc4c73a995d9a3c92d09ba9547feed8fae4cdca60f1f3a89e796de7b2ecd088334b4980b833c058bc0bbb6702aa00a9bbae21c36
6
+ metadata.gz: c8c3d4342e60d5e322501d58c26ec2c341b9112982de6644ea554228b3f90b3d267afd6e053f6bc514695cb6a8fdd7feaf6129abfcf328593f7364b4d2aa14a3
7
+ data.tar.gz: da9d52a2977719bda217b2b3aabdc1640c1eb7e4b45a2705ae1146ab0d73e75aaf87c7ef9a45f97473e19d746c6ac876a07cc4460602d12eb14bcfb52d009c92
@@ -14,41 +14,46 @@ module Gremlin2Dot
14
14
  end
15
15
 
16
16
  def build(unmangled_data)
17
- trees = unmangled_data['result']['data']
18
-
19
- trees.each do |t0|
20
- t0.each do |t1|
21
- add_thing t1
22
- end
23
- end
24
-
17
+ add_thing unmangled_data['result']['data']
25
18
  @g
26
19
  end
27
20
 
21
+ private
22
+
28
23
  def add_thing(thing)
24
+ # $stderr.puts "add_thing #{thing.class} #{thing}"
29
25
  case thing
30
26
  when Vertex
31
- node = thing
32
- unless @seen.include? node.id
33
- label = node.label + node.properties.entries.sort_by(&:first).map {|k, v| "\n#{k}=#{v.first}" }.join("")
34
- @g.add_nodes(node.id, label: label)
35
- @seen << node.id
36
- end
27
+ once_only(thing.id) { add_node thing }
37
28
  when Edge
38
- edge = thing
39
- unless @seen.include? edge.id
40
- label = edge.label + edge.properties.entries.sort_by(&:first).map {|k, v| "\n#{k}=#{v}" }.join("")
41
- @g.add_edges(edge.outV, edge.inV, label: label)
42
- @seen << edge.id
43
- end
29
+ once_only(thing.id) { add_edge thing }
44
30
  when Tree
45
31
  add_thing thing.key
46
32
  thing.items.each {|child| add_thing child}
33
+ when Array
34
+ thing.each {|child| add_thing child}
47
35
  else
48
36
  $stderr.puts "Not adding #{thing.class} to the graph"
49
37
  end
50
38
  end
51
39
 
40
+ def once_only(id)
41
+ unless @seen.include? id
42
+ yield
43
+ @seen << id
44
+ end
45
+ end
46
+
47
+ def add_node(node)
48
+ label = node.id + "\n" + node.label + node.properties.entries.sort_by(&:first).map {|k, v| "\n#{k}=#{v.first}" }.join("")
49
+ @g.add_nodes(node.id, label: label)
50
+ end
51
+
52
+ def add_edge(edge)
53
+ label = edge.id + "\n" + edge.label + edge.properties.entries.sort_by(&:first).map {|k, v| "\n#{k}=#{v}" }.join("")
54
+ @g.add_edges(edge.outV, edge.inV, label: label)
55
+ end
56
+
52
57
  end
53
58
 
54
59
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gremlin2dot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rachel Evans
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-06-28 00:00:00.000000000 Z
11
+ date: 2018-07-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client