gremlin2dot 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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