simple_dag 0.0.0 → 0.0.1
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 +4 -4
- data/Gemfile.lock +1 -1
- data/lib/simple_dag.rb +14 -20
- data/lib/simple_dag/vertex.rb +2 -8
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 24f74f8db152d6814b0b323b1e419a4b307f91b2
|
4
|
+
data.tar.gz: 2f06fe90b5b5638319d774ca9b3e047dc8ceb482
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1754b090487a7c066b0dfba06d46c80c04a03c5c155799c209d0a0eefb0aff305b21dcf3f29241514b09ad9cf6dc3118379a2d7ef4518a95e9b33ab69e1e04aa
|
7
|
+
data.tar.gz: 1660662e9bdfa43018dc3ff6974cc12d19218330c75c762a7017a09b46d2c9c7f2499c8072fb90508341620788bf01e8e2437783afac26a98fb10a4bbc19f86f
|
data/Gemfile.lock
CHANGED
data/lib/simple_dag.rb
CHANGED
@@ -68,33 +68,27 @@ class DAG
|
|
68
68
|
predecessors_set = Set.new(predecessors_of)
|
69
69
|
predecessors_of.each { |v| v.ancestors(predecessors_set) }
|
70
70
|
|
71
|
-
predecessors_set.each do |v|
|
72
|
-
vertex_mapping[v] = result.add_vertex(v.payload)
|
73
|
-
end
|
74
|
-
|
75
71
|
# Get the set of successor vertices and add a copy to the result
|
76
72
|
successors_set = Set.new(successors_of)
|
77
73
|
successors_of.each { |v| v.descendants(successors_set) }
|
78
74
|
|
79
|
-
successors_set.each do |v|
|
80
|
-
vertex_mapping[v] = result.add_vertex(v.payload)
|
81
|
-
vertex_mapping.include? v
|
75
|
+
(predecessors_set + successors_set).each do |v|
|
76
|
+
vertex_mapping[v] = result.add_vertex(v.payload)
|
82
77
|
end
|
83
78
|
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
properties: e.properties
|
96
|
-
)
|
79
|
+
predecessor_edges =
|
80
|
+
predecessors_set.flat_map(&:outgoing_edges).select do |e|
|
81
|
+
predecessors_set.include? e.destination
|
82
|
+
end
|
83
|
+
|
84
|
+
# Add the edges to the result via the vertex mapping
|
85
|
+
n_of_result_edges = 0
|
86
|
+
(predecessor_edges | successors_set.flat_map(&:outgoing_edges)).each do |e|
|
87
|
+
n_of_result_edges += 1
|
88
|
+
vertex_mapping[e.origin].send :add_edge, vertex_mapping[e.destination],
|
89
|
+
e.properties
|
97
90
|
end
|
91
|
+
result.instance_variable_set :@n_of_edges, n_of_result_edges
|
98
92
|
|
99
93
|
result
|
100
94
|
end
|
data/lib/simple_dag/vertex.rb
CHANGED
@@ -75,20 +75,14 @@ class DAG
|
|
75
75
|
|
76
76
|
def ancestors(result_set = Set.new)
|
77
77
|
predecessors.each do |v|
|
78
|
-
unless result_set.
|
79
|
-
result_set.add(v)
|
80
|
-
v.ancestors(result_set)
|
81
|
-
end
|
78
|
+
v.ancestors(result_set) unless result_set.add?(v).nil?
|
82
79
|
end
|
83
80
|
result_set
|
84
81
|
end
|
85
82
|
|
86
83
|
def descendants(result_set = Set.new)
|
87
84
|
successors.each do |v|
|
88
|
-
unless result_set.
|
89
|
-
result_set.add(v)
|
90
|
-
v.descendants(result_set)
|
91
|
-
end
|
85
|
+
v.descendants(result_set) unless result_set.add?(v).nil?
|
92
86
|
end
|
93
87
|
result_set
|
94
88
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simple_dag
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kevin Rutherford
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2018-01-
|
12
|
+
date: 2018-01-20 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|