rgl 0.5.4 → 0.5.8
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/ChangeLog +28 -0
- data/README.md +13 -4
- data/Rakefile +14 -14
- data/examples/examples.rb +11 -9
- data/examples/unix.dot +53 -0
- data/lib/rgl/base.rb +1 -1
- data/lib/rgl/graphxml.rb +2 -2
- data/lib/rgl/path.rb +17 -0
- data/lib/rgl/rdot.rb +1 -1
- data/lib/rgl/traversal.rb +4 -1
- data/test/path_test.rb +52 -0
- data/test/traversal_test.rb +26 -0
- metadata +32 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 43739f63914a8070716c45a94f95c058b75efee0f4cd478a30d1cdc0e45e30c0
|
4
|
+
data.tar.gz: 44d66025f8ca816c618eb12ac4a7fee1fa315c4312af698909e87caa0bdb48ad
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e910d7b6fdaaab9873f5daac67009eab91681789372e00e9d0bdbbfa09782f4b67763ce09634245cf0c07325847c5ec90695323dec65aaa6d940d775a89447a8
|
7
|
+
data.tar.gz: bfcd42c97cc6361e58145aa3bf5f97c89d3e9b9d1a290f67a4ffb52e0829f9f0aff06c4d17a4d0ed1f83997e0917a1fbd11cdf340a6967fc7e8cfa3ad6dc6118
|
data/ChangeLog
CHANGED
@@ -1,3 +1,31 @@
|
|
1
|
+
2022-06 Release 0.5.8
|
2
|
+
|
3
|
+
Horst Duchene
|
4
|
+
* switch to github actions (56030d)
|
5
|
+
|
6
|
+
2020-12 Release 0.5.7
|
7
|
+
|
8
|
+
Horst Duchene
|
9
|
+
* Fully automate dev setup with Gitpod (41dd00)
|
10
|
+
* Add Dockerfile to install graphviz (2bd738)
|
11
|
+
* Examples do not call dotty (6bba96)
|
12
|
+
* Add ruby license file (a21aa5)
|
13
|
+
ujihisa <ujihisa@users.noreply.github.com>
|
14
|
+
* Test against Ruby 2.6 and 2.7 as well (50ac7c)
|
15
|
+
* Fix dead links (9184f3)
|
16
|
+
Harry Lascelles <hlascelles@users.noreply.github.com>
|
17
|
+
* Update .travis.yml (45b9a2)
|
18
|
+
* Make the links more explicit (95dc3b)
|
19
|
+
Harry Lascelles
|
20
|
+
* Add explicit license to gemspec (de3647)
|
21
|
+
|
22
|
+
2019-01 Release 0.5.6
|
23
|
+
|
24
|
+
Artemy Kirienko
|
25
|
+
* PR #42 Add method Graph#path?(u, v) to check if a path exists between two vertices
|
26
|
+
Horst Duchene
|
27
|
+
* Fix #47 set_to_begin for graph iterator (881aa8)
|
28
|
+
|
1
29
|
2019-01 Release 0.5.4
|
2
30
|
|
3
31
|
Lia Skalkos
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Ruby Graph Library (RGL) [
|
1
|
+
# Ruby Graph Library (RGL) [](https://github.com/monora/rgl/actions/workflows/ruby.yml) [<img src="https://codeclimate.com/github/monora/rgl/badges/coverage.svg" />](https://codeclimate.com/github/monora/rgl/coverage) [<img src="https://badge.fury.io/rb/rgl.svg" alt="Version"/>](https://badge.fury.io/rb/rgl) [](https://gitpod.io/#https://github.com/monora/rgl)
|
2
2
|
|
3
3
|
RGL is a framework for graph data structures and algorithms.
|
4
4
|
|
@@ -123,6 +123,8 @@ After that you can run the tests:
|
|
123
123
|
|
124
124
|
## Example irb session with RGL
|
125
125
|
|
126
|
+
% irb -Ilib
|
127
|
+
|
126
128
|
irb> require 'rgl/adjacency'
|
127
129
|
irb> dg=RGL::DirectedAdjacencyGraph[1,2 ,2,3 ,2,4, 4,5, 6,4, 1,6]
|
128
130
|
# Use DOT to visualize this graph:
|
@@ -171,6 +173,12 @@ Add inverse edge (4-2) to directed graph:
|
|
171
173
|
irb> dg.remove_edge 4,2
|
172
174
|
true
|
173
175
|
|
176
|
+
Check whether a path exists between vertices 1 and 5
|
177
|
+
|
178
|
+
irb> require 'rgl/path'
|
179
|
+
irb> dg.path?(1, 5)
|
180
|
+
true
|
181
|
+
|
174
182
|
*Topological sort* is implemented as an iterator:
|
175
183
|
|
176
184
|
require 'rgl/topsort'
|
@@ -253,6 +261,7 @@ See also http://github.com/monora/rgl/contributors.
|
|
253
261
|
|
254
262
|
## Copying
|
255
263
|
|
256
|
-
RGL is Copyright (c) 2002,2004,2005,2008,2013,2015,2019 by Horst
|
257
|
-
free software, and may be redistributed under the
|
258
|
-
|
264
|
+
RGL is Copyright (c) 2002,2004,2005,2008,2013,2015,2019,2020 by Horst
|
265
|
+
Duchene. It is free software, and may be redistributed under the [Ruby
|
266
|
+
license](https://en.wikipedia.org/wiki/Ruby_License) and terms specified in
|
267
|
+
the LICENSE file.
|
data/Rakefile
CHANGED
@@ -15,7 +15,7 @@ require 'rgl/base' # require base module to get RGL_VERSION
|
|
15
15
|
SOURCES = FileList['lib/**/*.rb']
|
16
16
|
|
17
17
|
# The default task is run if rake is given no explicit arguments.
|
18
|
-
desc
|
18
|
+
desc 'Default Task'
|
19
19
|
task :default => :test
|
20
20
|
|
21
21
|
# Define a test task.
|
@@ -28,7 +28,7 @@ end
|
|
28
28
|
|
29
29
|
# Git tagging
|
30
30
|
|
31
|
-
desc
|
31
|
+
desc 'Commit all changes as a new version commit. Tag the commit with v<version> tag'
|
32
32
|
task :tag do
|
33
33
|
puts "Committing and tagging version #{RGL_VERSION}"
|
34
34
|
`git commit -am 'Version #{RGL_VERSION}'`
|
@@ -44,13 +44,13 @@ Bundler::GemHelper.install_tasks
|
|
44
44
|
# TAGS ---------------------------------------------------------------
|
45
45
|
|
46
46
|
file 'tags' => SOURCES do
|
47
|
-
print
|
48
|
-
sh %
|
49
|
-
puts
|
47
|
+
print 'Running ctags...'
|
48
|
+
sh %(ctags #{SOURCES.join(' ')}) # vi tags
|
49
|
+
puts 'done.'
|
50
50
|
end
|
51
51
|
|
52
52
|
file 'TAGS' => SOURCES do
|
53
|
-
sh %
|
53
|
+
sh %(etags #{SOURCES.join(' ')}) # emacs TAGS
|
54
54
|
end
|
55
55
|
|
56
56
|
# Misc tasks =========================================================
|
@@ -73,34 +73,34 @@ def show_line(msg, lines, loc)
|
|
73
73
|
printf "%6s %6s %s\n", lines.to_s, loc.to_s, msg
|
74
74
|
end
|
75
75
|
|
76
|
-
desc
|
76
|
+
desc 'Count lines in the main files'
|
77
77
|
task :lines do
|
78
78
|
total_lines = 0
|
79
79
|
total_code = 0
|
80
|
-
show_line(
|
80
|
+
show_line('File Name', 'LINES', 'LOC')
|
81
81
|
SOURCES.each do |fn|
|
82
82
|
lines, codelines = count_lines(fn)
|
83
83
|
show_line(fn, lines, codelines)
|
84
84
|
total_lines += lines
|
85
|
-
total_code
|
85
|
+
total_code += codelines
|
86
86
|
end
|
87
|
-
show_line(
|
87
|
+
show_line('TOTAL', total_lines, total_code)
|
88
88
|
end
|
89
89
|
|
90
90
|
# simple rake task to output a changelog between two commits, tags ...
|
91
91
|
# output is formatted simply, commits are grouped under each author name
|
92
92
|
#
|
93
|
-
desc
|
94
|
-
task :changelog, :since_c, :until_c do |t,args|
|
93
|
+
desc 'generate changelog with nice clean output'
|
94
|
+
task :changelog, :since_c, :until_c do |t, args|
|
95
95
|
since_c = args[:since_c] || `git tag | tail -1`.chomp
|
96
96
|
until_c = args[:until_c]
|
97
|
-
cmd
|
97
|
+
cmd = `git log --pretty='format:%ci::%an <%ae>::%s::%H' #{since_c}..#{until_c}`
|
98
98
|
|
99
99
|
entries = Hash.new
|
100
100
|
changelog_content = String.new
|
101
101
|
|
102
102
|
cmd.split("\n").each do |entry|
|
103
|
-
_, author, subject, hash = entry.chomp.split(
|
103
|
+
_, author, subject, hash = entry.chomp.split('::')
|
104
104
|
entries[author] = Array.new unless entries[author]
|
105
105
|
entries[author] << "#{subject} (#{hash[0..5]})" unless subject =~ /Merge/
|
106
106
|
end
|
data/examples/examples.rb
CHANGED
@@ -77,7 +77,7 @@ def bfs_example(g = cycle(5), start = g.detect { |x| true })
|
|
77
77
|
end
|
78
78
|
|
79
79
|
# Would like to have GraphXML here
|
80
|
-
def graph_from_dotfile
|
80
|
+
def graph_from_dotfile(file)
|
81
81
|
g = RGL::AdjacencyGraph.new
|
82
82
|
pattern = /\s*([^\"]+)[\"\s]*--[\"\s]*([^\"\[\;]+)/ # ugly but works
|
83
83
|
IO.foreach(file) { |line|
|
@@ -94,21 +94,23 @@ def graph_from_dotfile (file)
|
|
94
94
|
g
|
95
95
|
end
|
96
96
|
|
97
|
-
# ruby -Ilib
|
98
|
-
|
97
|
+
# ruby -Ilib examples/examples.rb
|
99
98
|
if $0 == __FILE__
|
100
99
|
require 'rgl/dot'
|
101
100
|
|
102
101
|
dg = RGL::DirectedAdjacencyGraph[1,2, 2,3, 2,4, 4,5, 6,4, 1,6]
|
103
|
-
dg.dotty
|
104
102
|
dg.write_to_graphic_file
|
105
|
-
bfs_example(dg, 1).dotty
|
106
|
-
bfs_example(graph_from_dotfile('dot/unix.dot'), 'Interdata').dotty({ 'label' => 'Interdata Nachfolger', 'fontsize' => 12 })
|
107
103
|
|
104
|
+
# BFS tree from 1 of dg:
|
105
|
+
bfs_example(dg, 1).write_to_graphic_file('png', 'bfs_example')
|
106
|
+
|
107
|
+
# Unix history as a graph:
|
108
|
+
g = bfs_example(graph_from_dotfile('examples/unix.dot'), 'Interdata')
|
109
|
+
g.write_to_graphic_file('png', 'unix', { 'label' => 'Interdata Nachfolger', 'fontsize' => 12 })
|
110
|
+
|
111
|
+
# Modules included by AdjacencyGraph:
|
108
112
|
g = module_graph
|
109
113
|
tree = bfs_example(module_graph, RGL::AdjacencyGraph)
|
110
114
|
g = g.vertices_filtered_by { |v| tree.has_vertex? v }
|
111
|
-
g.write_to_graphic_file
|
112
|
-
g.dotty
|
115
|
+
g.write_to_graphic_file('png', 'module_graph')
|
113
116
|
end
|
114
|
-
|
data/examples/unix.dot
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
/* courtesy Ian Darwin and Geoff Collyer, Softquad Inc. */
|
2
|
+
digraph unix {
|
3
|
+
size="6,6";
|
4
|
+
"5th Edition" -> "6th Edition";
|
5
|
+
"5th Edition" -> "PWB 1.0";
|
6
|
+
"6th Edition" -> "LSX";
|
7
|
+
"6th Edition" -> "1 BSD";
|
8
|
+
"6th Edition" -> "Mini Unix";
|
9
|
+
"6th Edition" -> "Wollongong";
|
10
|
+
"6th Edition" -> "Interdata";
|
11
|
+
"Interdata" -> "Unix/TS 3.0";
|
12
|
+
"Interdata" -> "PWB 2.0";
|
13
|
+
"Interdata" -> "7th Edition";
|
14
|
+
"7th Edition" -> "8th Edition";
|
15
|
+
"7th Edition" -> "32V";
|
16
|
+
"7th Edition" -> "V7M";
|
17
|
+
"7th Edition" -> "Ultrix-11";
|
18
|
+
"7th Edition" -> "Xenix";
|
19
|
+
"7th Edition" -> "UniPlus+";
|
20
|
+
"V7M" -> "Ultrix-11";
|
21
|
+
"8th Edition" -> "9th Edition";
|
22
|
+
"1 BSD" -> "2 BSD";
|
23
|
+
"2 BSD" -> "2.8 BSD";
|
24
|
+
"2.8 BSD" -> "Ultrix-11";
|
25
|
+
"2.8 BSD" -> "2.9 BSD";
|
26
|
+
"32V" -> "3 BSD";
|
27
|
+
"3 BSD" -> "4 BSD";
|
28
|
+
"4 BSD" -> "4.1 BSD";
|
29
|
+
"4.1 BSD" -> "4.2 BSD";
|
30
|
+
"4.1 BSD" -> "2.8 BSD";
|
31
|
+
"4.1 BSD" -> "8th Edition";
|
32
|
+
"4.2 BSD" -> "4.3 BSD";
|
33
|
+
"4.2 BSD" -> "Ultrix-32";
|
34
|
+
"PWB 1.0" -> "PWB 1.2";
|
35
|
+
"PWB 1.0" -> "USG 1.0";
|
36
|
+
"PWB 1.2" -> "PWB 2.0";
|
37
|
+
"USG 1.0" -> "CB Unix 1";
|
38
|
+
"USG 1.0" -> "USG 2.0";
|
39
|
+
"CB Unix 1" -> "CB Unix 2";
|
40
|
+
"CB Unix 2" -> "CB Unix 3";
|
41
|
+
"CB Unix 3" -> "Unix/TS++";
|
42
|
+
"CB Unix 3" -> "PDP-11 Sys V";
|
43
|
+
"USG 2.0" -> "USG 3.0";
|
44
|
+
"USG 3.0" -> "Unix/TS 3.0";
|
45
|
+
"PWB 2.0" -> "Unix/TS 3.0";
|
46
|
+
"Unix/TS 1.0" -> "Unix/TS 3.0";
|
47
|
+
"Unix/TS 3.0" -> "TS 4.0";
|
48
|
+
"Unix/TS++" -> "TS 4.0";
|
49
|
+
"CB Unix 3" -> "TS 4.0";
|
50
|
+
"TS 4.0" -> "System V.0";
|
51
|
+
"System V.0" -> "System V.2";
|
52
|
+
"System V.2" -> "System V.3";
|
53
|
+
}
|
data/lib/rgl/base.rb
CHANGED
data/lib/rgl/graphxml.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# graphxml.rb
|
2
2
|
#
|
3
3
|
# This file contains minimal support for creating RGL graphs from the GraphML
|
4
|
-
# format (see http://
|
4
|
+
# format (see http://graphml.graphdrawing.org/). The main purpose is to
|
5
5
|
# have a rich set of example graphs to have some more tests.
|
6
6
|
#
|
7
7
|
# See the examples directory, which contains a subdirectory _north_ with the
|
@@ -48,7 +48,7 @@ module RGL
|
|
48
48
|
end # class MutableGraphParser
|
49
49
|
|
50
50
|
# Initializes an RGL graph from a subset of the GraphML format given in
|
51
|
-
# +source+ (see http://
|
51
|
+
# +source+ (see http://graphml.graphdrawing.org/).
|
52
52
|
#
|
53
53
|
def from_graphxml(source)
|
54
54
|
listener = MutableGraphParser.new(self)
|
data/lib/rgl/path.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'rgl/traversal'
|
4
|
+
|
5
|
+
module RGL
|
6
|
+
module Graph
|
7
|
+
# Checks whether a path exists between _source_ and _target_ vertices
|
8
|
+
# in the graph.
|
9
|
+
#
|
10
|
+
def path?(source, target)
|
11
|
+
return false unless has_vertex?(source)
|
12
|
+
|
13
|
+
bfs_iterator = bfs_iterator(source)
|
14
|
+
bfs_iterator.include?(target)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
data/lib/rgl/rdot.rb
CHANGED
data/lib/rgl/traversal.rb
CHANGED
@@ -58,9 +58,12 @@ module RGL
|
|
58
58
|
# Reset the iterator to the initial state (i.e. at_beginning? == true).
|
59
59
|
#
|
60
60
|
def set_to_begin
|
61
|
+
# Reset color_map
|
62
|
+
@color_map = Hash.new(:WHITE)
|
61
63
|
color_map[@start_vertex] = :GRAY
|
62
|
-
@waiting = [@start_vertex]
|
64
|
+
@waiting = [@start_vertex] # a queue
|
63
65
|
handle_tree_edge(nil, @start_vertex) # discovers start vertex
|
66
|
+
self
|
64
67
|
end
|
65
68
|
|
66
69
|
def basic_forward # :nodoc:
|
data/test/path_test.rb
ADDED
@@ -0,0 +1,52 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'test_helper'
|
4
|
+
|
5
|
+
require 'rgl/adjacency'
|
6
|
+
require 'rgl/path'
|
7
|
+
|
8
|
+
class TestPath < Test::Unit::TestCase
|
9
|
+
include RGL
|
10
|
+
|
11
|
+
def setup
|
12
|
+
edges = [[1, 2], [2, 3], [2, 4], [4, 5], [6, 4], [1, 6]]
|
13
|
+
@directed_graph, @undirected_graph =
|
14
|
+
[DirectedAdjacencyGraph, AdjacencyGraph].map do |klass|
|
15
|
+
graph = klass.new
|
16
|
+
graph.add_edges(*edges)
|
17
|
+
graph
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_path_for_directed_graph
|
22
|
+
assert(@directed_graph.path?(1, 5))
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_path_for_undirected_graph
|
26
|
+
assert(@undirected_graph.path?(1, 5))
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_inverse_path_for_directed_graph
|
30
|
+
assert_equal(@directed_graph.path?(3, 1), false)
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_inverse_path_for_undirected_graph
|
34
|
+
assert(@undirected_graph.path?(3, 1))
|
35
|
+
end
|
36
|
+
|
37
|
+
def test_path_for_directed_graph_wrong_source
|
38
|
+
assert_equal(@directed_graph.path?(0, 1), false)
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_path_for_undirected_graph_wrong_source
|
42
|
+
assert_equal(@undirected_graph.path?(0, 1), false)
|
43
|
+
end
|
44
|
+
|
45
|
+
def test_path_for_directed_graph_wrong_target
|
46
|
+
assert_equal(@directed_graph.path?(4, 0), false)
|
47
|
+
end
|
48
|
+
|
49
|
+
def test_path_for_undirected_graph_wrong_target
|
50
|
+
assert_equal(@undirected_graph.path?(4, 0), false)
|
51
|
+
end
|
52
|
+
end
|
data/test/traversal_test.rb
CHANGED
@@ -218,4 +218,30 @@ END
|
|
218
218
|
dg.depth_first_search(vis) { |x| }
|
219
219
|
assert_equal("(1 (2 (3 3)(4 (5 5) 4) 2)(6 6) 1)(10 (11 11) 10)", a)
|
220
220
|
end
|
221
|
+
|
222
|
+
def test_bfs_stream_protocol
|
223
|
+
it = @dg.bfs_iterator(1)
|
224
|
+
assert_true(it.at_beginning?)
|
225
|
+
|
226
|
+
it.set_to_end()
|
227
|
+
assert_true(it.at_end?)
|
228
|
+
|
229
|
+
it.set_to_begin()
|
230
|
+
assert_true(it.at_beginning?)
|
231
|
+
|
232
|
+
assert_equal(it.to_a(), [1, 2, 6, 3, 4, 5])
|
233
|
+
end
|
234
|
+
|
235
|
+
def test_dfs_stream_protocol
|
236
|
+
it = @dg.dfs_iterator(1)
|
237
|
+
assert_true(it.at_beginning?)
|
238
|
+
|
239
|
+
it.set_to_end()
|
240
|
+
assert_true(it.at_end?)
|
241
|
+
|
242
|
+
it.set_to_begin()
|
243
|
+
assert_true(it.at_beginning?)
|
244
|
+
|
245
|
+
assert_equal(it.to_a(), [1, 6, 4, 5, 2, 3])
|
246
|
+
end
|
221
247
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rgl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Horst Duchene
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire: rgl/base
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2022-06-02 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: stream
|
@@ -17,14 +17,14 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - "~>"
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: 0.5.
|
20
|
+
version: 0.5.3
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
25
|
- - "~>"
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version: 0.5.
|
27
|
+
version: 0.5.3
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: lazy_priority_queue
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
@@ -39,6 +39,26 @@ dependencies:
|
|
39
39
|
- - "~>"
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: 0.1.0
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: rexml
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - "~>"
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '3.2'
|
49
|
+
- - ">="
|
50
|
+
- !ruby/object:Gem::Version
|
51
|
+
version: 3.2.4
|
52
|
+
type: :runtime
|
53
|
+
prerelease: false
|
54
|
+
version_requirements: !ruby/object:Gem::Requirement
|
55
|
+
requirements:
|
56
|
+
- - "~>"
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
version: '3.2'
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 3.2.4
|
42
62
|
- !ruby/object:Gem::Dependency
|
43
63
|
name: rake
|
44
64
|
requirement: !ruby/object:Gem::Requirement
|
@@ -165,6 +185,7 @@ files:
|
|
165
185
|
- examples/north/g.14.9.graphml
|
166
186
|
- examples/north2.rb
|
167
187
|
- examples/rdep-rgl.rb
|
188
|
+
- examples/unix.dot
|
168
189
|
- lib/rgl/adjacency.rb
|
169
190
|
- lib/rgl/base.rb
|
170
191
|
- lib/rgl/bellman_ford.rb
|
@@ -183,6 +204,7 @@ files:
|
|
183
204
|
- lib/rgl/graphxml.rb
|
184
205
|
- lib/rgl/implicit.rb
|
185
206
|
- lib/rgl/mutable.rb
|
207
|
+
- lib/rgl/path.rb
|
186
208
|
- lib/rgl/path_builder.rb
|
187
209
|
- lib/rgl/prim.rb
|
188
210
|
- lib/rgl/rdot.rb
|
@@ -205,6 +227,7 @@ files:
|
|
205
227
|
- test/graph_test.rb
|
206
228
|
- test/graph_xml_test.rb
|
207
229
|
- test/implicit_test.rb
|
230
|
+
- test/path_test.rb
|
208
231
|
- test/prim_test.rb
|
209
232
|
- test/rdot_test.rb
|
210
233
|
- test/test_helper.rb
|
@@ -212,9 +235,10 @@ files:
|
|
212
235
|
- test/traversal_test.rb
|
213
236
|
- test/undirected_graph_test.rb
|
214
237
|
homepage: https://github.com/monora/rgl
|
215
|
-
licenses:
|
238
|
+
licenses:
|
239
|
+
- ruby
|
216
240
|
metadata: {}
|
217
|
-
post_install_message:
|
241
|
+
post_install_message:
|
218
242
|
rdoc_options:
|
219
243
|
- "--title"
|
220
244
|
- RGL - Ruby Graph Library
|
@@ -234,8 +258,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
234
258
|
- !ruby/object:Gem::Version
|
235
259
|
version: '0'
|
236
260
|
requirements: []
|
237
|
-
rubygems_version: 3.
|
238
|
-
signing_key:
|
261
|
+
rubygems_version: 3.2.3
|
262
|
+
signing_key:
|
239
263
|
specification_version: 4
|
240
264
|
summary: Ruby Graph Library
|
241
265
|
test_files: []
|