graph 2.9.1 → 2.11.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
- checksums.yaml.gz.sig +0 -0
- data/History.txt +19 -0
- data/bin/graph +5 -2
- data/gallery/ruby_exceptions.rb +1 -2
- data/lib/dep_analyzer.rb +4 -0
- data/lib/graph.rb +17 -1
- data/lib/homebrew_analyzer.rb +40 -3
- data/lib/rake_analyzer.rb +1 -2
- data/test/test_graph.rb +4 -0
- data.tar.gz.sig +2 -2
- metadata +16 -16
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9e3e77a037eb6a1d0590ecc38940bc5f043562af70e1cdf0f3ed1ab8c3c24634
|
4
|
+
data.tar.gz: a5682ec5e678f9330afc4c853132746398991118043ec295269ab724f32c30cf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6a6736ea7c648eb10201c0c89ec7f5921a99c44e2efc142caf8bbe58ea2494ec5b71dc87c72aef39f572639693415b63590f36231d94a801d893206c012bda22
|
7
|
+
data.tar.gz: 573fd706cca92c52a0580fec4f18f0033bc17dbe9a6b223f0f00598fb2bc735781d6731492473dceafd379da6260bff740d86b6ae86662ceebe3f7d512d129dd
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/History.txt
CHANGED
@@ -1,3 +1,22 @@
|
|
1
|
+
=== 2.11.0 / 2022-09-29
|
2
|
+
|
3
|
+
* 2 minor enhancements:
|
4
|
+
|
5
|
+
* Added -r to bin/graph to rotate the image 90 degrees.
|
6
|
+
* Trying to improve the output of dep_analyzer (rects + better coloring).
|
7
|
+
|
8
|
+
* 1 bug fix:
|
9
|
+
|
10
|
+
* Fixes for homebrew_analyzer to deal with homebrew changes / yet-more-bugs.
|
11
|
+
|
12
|
+
=== 2.10.0 / 2020-02-09
|
13
|
+
|
14
|
+
* 3 minor enhancements:
|
15
|
+
|
16
|
+
* Added compact! shortcut (rotate + boxes--good for code/text graphs).
|
17
|
+
* Added fontcolor shortcut.
|
18
|
+
* Improved homebrew analyzer to include outdated casks & added caching.
|
19
|
+
|
1
20
|
=== 2.9.1 / 2019-12-14
|
2
21
|
|
3
22
|
* 1 bug fix:
|
data/bin/graph
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
#!/usr/bin/env ruby -ws
|
2
2
|
|
3
|
-
$o ||= false
|
4
|
-
$d ||= false
|
3
|
+
$o ||= false # open after creating
|
4
|
+
$d ||= false # dot file only
|
5
|
+
$r ||= false # rotate 90°
|
5
6
|
|
6
7
|
type = ARGV.shift
|
7
8
|
unless type then
|
@@ -21,6 +22,8 @@ klass = Object.const_get name
|
|
21
22
|
analyzer = klass.new
|
22
23
|
graph = analyzer.run
|
23
24
|
|
25
|
+
graph.rotate if $r
|
26
|
+
|
24
27
|
huge = graph.nodes.size + graph.edges.size > 500
|
25
28
|
ext = $d ? nil : huge ? "pdf" : "png"
|
26
29
|
|
data/gallery/ruby_exceptions.rb
CHANGED
data/lib/dep_analyzer.rb
CHANGED
@@ -170,16 +170,20 @@ class DepAnalyzer < Cache
|
|
170
170
|
ports[port] = deps
|
171
171
|
end
|
172
172
|
|
173
|
+
rect = g.rect
|
173
174
|
blue = g.color "blue"
|
174
175
|
purple = g.color "purple4"
|
175
176
|
red = g.color "red"
|
177
|
+
pink = g.fill_lightpink
|
176
178
|
|
177
179
|
indies = ports.keys - ports.minvert.keys
|
178
180
|
indies.each do |k|
|
181
|
+
rect << g[k]
|
179
182
|
blue << g[k]
|
180
183
|
end
|
181
184
|
|
182
185
|
old.each do |k,v|
|
186
|
+
pink << g[k]
|
183
187
|
if indies.include? k then
|
184
188
|
purple << g[k]
|
185
189
|
else
|
data/lib/graph.rb
CHANGED
@@ -7,7 +7,7 @@ require "enumerator"
|
|
7
7
|
# dot format.
|
8
8
|
|
9
9
|
class Graph
|
10
|
-
VERSION = "2.
|
10
|
+
VERSION = "2.11.0" # :nodoc:
|
11
11
|
|
12
12
|
# :stopdoc:
|
13
13
|
|
@@ -292,6 +292,13 @@ class Graph
|
|
292
292
|
Attribute.new "fontname = %p" % [name]
|
293
293
|
end
|
294
294
|
|
295
|
+
##
|
296
|
+
# Shortcut method to create a new fontcolor Attribute instance.
|
297
|
+
|
298
|
+
def fontcolor name
|
299
|
+
Attribute.new "fontcolor = %p" % [name]
|
300
|
+
end
|
301
|
+
|
295
302
|
##
|
296
303
|
# Shortcut method to create a new fontsize Attribute instance.
|
297
304
|
|
@@ -339,6 +346,15 @@ class Graph
|
|
339
346
|
orient dir
|
340
347
|
end
|
341
348
|
|
349
|
+
##
|
350
|
+
# Shortcut method to rotate and use boxes. Helps compact when there
|
351
|
+
# is lots of long text nodes.
|
352
|
+
|
353
|
+
def compact!
|
354
|
+
rotate
|
355
|
+
boxes
|
356
|
+
end
|
357
|
+
|
342
358
|
##
|
343
359
|
# Saves out both a dot file to path and an image for the specified type.
|
344
360
|
# Specify type as nil to skip exporting an image.
|
data/lib/homebrew_analyzer.rb
CHANGED
@@ -3,19 +3,56 @@ require 'dep_analyzer'
|
|
3
3
|
# :stopdoc:
|
4
4
|
|
5
5
|
class HomebrewAnalyzer < DepAnalyzer
|
6
|
+
SHH = "2> /dev/null"
|
7
|
+
|
8
|
+
attr_accessor :casks
|
9
|
+
|
6
10
|
def installed
|
7
11
|
# don't cache so it updates every delete
|
8
12
|
puts "scanning installed ports"
|
9
|
-
`brew list
|
13
|
+
ports = normal `brew list #{SHH}`
|
14
|
+
puts "scanning installed casks"
|
15
|
+
self.casks = normal `brew list --cask #{SHH}`
|
16
|
+
ports + casks
|
10
17
|
end
|
11
18
|
|
12
19
|
def outdated
|
13
20
|
# don't cache so it updates every delete
|
14
21
|
puts "scanning outdated ports"
|
15
|
-
`brew outdated
|
22
|
+
ports = normal `brew outdated #{SHH}`
|
23
|
+
puts "scanning outdated casks"
|
24
|
+
casks = normal `brew outdated --cask #{SHH}`
|
25
|
+
ports + casks
|
26
|
+
end
|
27
|
+
|
28
|
+
def alldeps
|
29
|
+
# there's YET ANOTHER bug in homebrew whereby `brew deps -1
|
30
|
+
# --installed` output is painfully different from all other output:
|
31
|
+
#
|
32
|
+
# % brew deps -1 --for-each pango
|
33
|
+
# pango: cairo fontconfig freetype fribidi glib harfbuzz
|
34
|
+
# % brew deps -1 --installed | grep pango
|
35
|
+
# pango: cairo
|
36
|
+
|
37
|
+
@alldeps ||= begin
|
38
|
+
full_names = `brew list --full-name`.split
|
39
|
+
`brew deps -n1 --for-each #{full_names.join " "}`
|
40
|
+
.lines
|
41
|
+
.map { |l| k, *v = l.delete(":").split; [clean(k), v] }
|
42
|
+
.to_h
|
43
|
+
end
|
16
44
|
end
|
17
45
|
|
18
46
|
def deps port
|
19
|
-
|
47
|
+
return [] if @casks.include? port
|
48
|
+
alldeps[port] ||= `brew deps #{port}`.scan(/\S+/)
|
49
|
+
end
|
50
|
+
|
51
|
+
def normal lines
|
52
|
+
lines.split(/\n/).map { |s| clean s }
|
53
|
+
end
|
54
|
+
|
55
|
+
def clean name
|
56
|
+
name.split("/").last
|
20
57
|
end
|
21
58
|
end
|
data/lib/rake_analyzer.rb
CHANGED
data/test/test_graph.rb
CHANGED
@@ -69,6 +69,10 @@ class TestGraph < Minitest::Test
|
|
69
69
|
assert_attribute "fontsize", 12, graph.fontsize(12)
|
70
70
|
end
|
71
71
|
|
72
|
+
def test_font_color
|
73
|
+
assert_attribute "fontcolor", "white", graph.fontcolor("white")
|
74
|
+
end
|
75
|
+
|
72
76
|
def test_digraph
|
73
77
|
g = digraph do
|
74
78
|
edge "a", "b", "c"
|
data.tar.gz.sig
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
8d4;;����
|
2
|
+
8Q8IR��I�#8˓���{�ch���ĝ�9%x�~�x$��2lG�<�#G�k$�q3 �s���H�\l+K�j?Ǔ�O�ǖ:�JWj<a�y�I�!ֹB=Q�R��վʣ�ѝ<fҿ %� N�!����虝�y�G�(v����v��(����Ӱ�'�|v> u:��5\��<6t����p{<E���rg<�wX���H�K7�M��4l�j��RЅ��:Q��)o�e�v
|
metadata
CHANGED
@@ -1,18 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: graph
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.11.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Davis
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain:
|
11
11
|
- |
|
12
12
|
-----BEGIN CERTIFICATE-----
|
13
|
-
|
13
|
+
MIIDPjCCAiagAwIBAgIBBjANBgkqhkiG9w0BAQsFADBFMRMwEQYDVQQDDApyeWFu
|
14
14
|
ZC1ydWJ5MRkwFwYKCZImiZPyLGQBGRYJemVuc3BpZGVyMRMwEQYKCZImiZPyLGQB
|
15
|
-
|
15
|
+
GRYDY29tMB4XDTIxMTIyMzIzMTkwNFoXDTIyMTIyMzIzMTkwNFowRTETMBEGA1UE
|
16
16
|
AwwKcnlhbmQtcnVieTEZMBcGCgmSJomT8ixkARkWCXplbnNwaWRlcjETMBEGCgmS
|
17
17
|
JomT8ixkARkWA2NvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALda
|
18
18
|
b9DCgK+627gPJkB6XfjZ1itoOQvpqH1EXScSaba9/S2VF22VYQbXU1xQXL/WzCkx
|
@@ -22,14 +22,14 @@ cert_chain:
|
|
22
22
|
qhtV7HJxNKuPj/JFH0D2cswvzznE/a5FOYO68g+YCuFi5L8wZuuM8zzdwjrWHqSV
|
23
23
|
gBEfoTEGr7Zii72cx+sCAwEAAaM5MDcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAw
|
24
24
|
HQYDVR0OBBYEFEfFe9md/r/tj/Wmwpy+MI8d9k/hMA0GCSqGSIb3DQEBCwUAA4IB
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
25
|
+
AQCKB5jfsuSnKb+t/Wrh3UpdkmX7TrEsjVmERC0pPqzQ5GQJgmEXDD7oMgaKXaAq
|
26
|
+
x2m+KSZDrqk7c8uho5OX6YMqg4KdxehfSLqqTZGoeV78qwf/jpPQZKTf+W9gUSJh
|
27
|
+
zsWpo4K50MP+QtdSbKXZwjAafpQ8hK0MnnZ/aeCsW9ov5vdXpYbf3dpg6ADXRGE7
|
28
|
+
lQY2y1tJ5/chqu6h7dQmnm2ABUqx9O+JcN9hbCYoA5i/EeubUEtFIh2w3SpO6YfB
|
29
|
+
JFmxn4h9YO/pVdB962BdBNNDia0kgIjI3ENnkLq0dKpYU3+F3KhEuTksLO0L6X/V
|
30
|
+
YsuyUzsMz6GQA4khyaMgKNSD
|
31
31
|
-----END CERTIFICATE-----
|
32
|
-
date:
|
32
|
+
date: 2022-09-29 00:00:00.000000000 Z
|
33
33
|
dependencies:
|
34
34
|
- !ruby/object:Gem::Dependency
|
35
35
|
name: rdoc
|
@@ -57,14 +57,14 @@ dependencies:
|
|
57
57
|
requirements:
|
58
58
|
- - "~>"
|
59
59
|
- !ruby/object:Gem::Version
|
60
|
-
version: '3.
|
60
|
+
version: '3.25'
|
61
61
|
type: :development
|
62
62
|
prerelease: false
|
63
63
|
version_requirements: !ruby/object:Gem::Requirement
|
64
64
|
requirements:
|
65
65
|
- - "~>"
|
66
66
|
- !ruby/object:Gem::Version
|
67
|
-
version: '3.
|
67
|
+
version: '3.25'
|
68
68
|
description: "Graph is a type of hash that outputs in graphviz's dot format. It\ncomes
|
69
69
|
with a command-line interface that is easily pluggable.\n\nIt ships with plugins
|
70
70
|
to graph dependencies and status of installed\nrubygems, rake tasks, homebrew ports,
|
@@ -109,7 +109,7 @@ licenses:
|
|
109
109
|
- MIT
|
110
110
|
metadata:
|
111
111
|
homepage_uri: https://github.com/seattlerb/graph
|
112
|
-
post_install_message:
|
112
|
+
post_install_message:
|
113
113
|
rdoc_options:
|
114
114
|
- "--main"
|
115
115
|
- README.txt
|
@@ -126,8 +126,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
126
126
|
- !ruby/object:Gem::Version
|
127
127
|
version: '0'
|
128
128
|
requirements: []
|
129
|
-
rubygems_version: 3.
|
130
|
-
signing_key:
|
129
|
+
rubygems_version: 3.3.12
|
130
|
+
signing_key:
|
131
131
|
specification_version: 4
|
132
132
|
summary: Graph is a type of hash that outputs in graphviz's dot format
|
133
133
|
test_files: []
|
metadata.gz.sig
CHANGED
Binary file
|