directed_graph 0.4.0 → 0.5.0
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/lib/directed_graph.rb +1 -0
- data/lib/directed_graph/edge.rb +3 -2
- data/lib/directed_graph/graph.rb +6 -6
- data/lib/directed_graph/version.rb +1 -1
- 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: edfa37763311b3a3d480890a4a5dc757abebad24
|
4
|
+
data.tar.gz: f0dfaaed0b132d944a4f0d8556907f2565f9dac7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9c5be553de3c4b3aeb99e7581c1cb054da42c69f2a992f1afab966f39a20a750c84c81acfaa441d1d4e49bcb2b64b2b51dfe5d58343b5bccbbfe35489c4b0980
|
7
|
+
data.tar.gz: f2b3dc7e1c1acb300a37411df2b372dae5aebbc753a01c440021009219843b3e11913ad6a5ef1e8b2ba28d32ff47a06c21a69bd009f53770498e3c723389a37e
|
data/lib/directed_graph.rb
CHANGED
@@ -5,6 +5,7 @@ require_relative "./directed_graph/job_runner.rb"
|
|
5
5
|
require_relative "./directed_graph/vertex.rb"
|
6
6
|
require_relative "./directed_graph/edge.rb"
|
7
7
|
require_relative "./directed_graph/graph.rb"
|
8
|
+
require_relative "./directed_graph/graph_builder.rb"
|
8
9
|
|
9
10
|
module DirectedGraph
|
10
11
|
end
|
data/lib/directed_graph/edge.rb
CHANGED
@@ -2,12 +2,13 @@ module DirectedGraph
|
|
2
2
|
|
3
3
|
class Edge
|
4
4
|
|
5
|
-
attr_reader :origin_vertex, :destination_vertex
|
5
|
+
attr_reader :origin_vertex, :destination_vertex
|
6
|
+
attr_accessor :data
|
6
7
|
|
7
8
|
def initialize(args)
|
8
9
|
@origin_vertex = args.fetch(:origin_vertex)
|
9
10
|
@destination_vertex = args.fetch(:destination_vertex)
|
10
|
-
@
|
11
|
+
@data = args.fetch(:data, {})
|
11
12
|
end
|
12
13
|
|
13
14
|
end
|
data/lib/directed_graph/graph.rb
CHANGED
@@ -4,7 +4,7 @@ module DirectedGraph
|
|
4
4
|
|
5
5
|
attr_reader :edges
|
6
6
|
|
7
|
-
def initialize(edges)
|
7
|
+
def initialize(edges = [])
|
8
8
|
@edges = edges
|
9
9
|
end
|
10
10
|
|
@@ -30,19 +30,19 @@ module DirectedGraph
|
|
30
30
|
simple_graph.shortest_path(origin_vertex, destination_vertex)
|
31
31
|
end
|
32
32
|
|
33
|
-
def longest_path(
|
34
|
-
return [destination_vertex] + result if
|
33
|
+
def longest_path(origin_vertex_name, destination_vertex, result = [])
|
34
|
+
return [destination_vertex] + result if origin_vertex_name == destination_vertex.name
|
35
35
|
parents(destination_vertex).map do |v|
|
36
|
-
longest_path(
|
36
|
+
longest_path(origin_vertex_name, v, [destination_vertex] + result)
|
37
37
|
end.inject([]) {|m, arr| m = arr if arr.length > m.length; m}
|
38
38
|
end
|
39
39
|
|
40
40
|
def children(vertex)
|
41
|
-
edges.select {|e| e.origin_vertex == vertex}.map{|e| e.destination_vertex}
|
41
|
+
edges.select {|e| e.origin_vertex.name == vertex.name}.map{|e| e.destination_vertex}
|
42
42
|
end
|
43
43
|
|
44
44
|
def parents(vertex)
|
45
|
-
edges.select {|e| e.destination_vertex == vertex}.map{|e| e.origin_vertex}
|
45
|
+
edges.select {|e| e.destination_vertex.name == vertex.name}.map{|e| e.origin_vertex}
|
46
46
|
end
|
47
47
|
|
48
48
|
private
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: directed_graph
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- MrPowers
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-01-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|