depviz 0.5.2 → 0.5.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (6) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/lib/depviz.rb +69 -69
  4. data.tar.gz.sig +0 -0
  5. metadata +26 -25
  6. metadata.gz.sig +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 919a4f624b20360846e7ac4569a777f8674593e5d82f5bd9d3f02ada22d4a36e
4
- data.tar.gz: 6fe55085a07c60d0cf71e37211216c19c55d7522d9362e3edd4466b26c6aa6d4
3
+ metadata.gz: 0bea5e848933306a1774c6d5359f9129249c1c1eabae2e17a2272e25deba7014
4
+ data.tar.gz: e6a5bb5267bf93e7c38532538b4c98d3dbe437a3a17f6b1146ad682fae40f6af
5
5
  SHA512:
6
- metadata.gz: adfd9406c3e1a22bff3ac512b4a4975de9546789a6ce5dcb2cee39cc51f906596ee5f4e23854c0f668418b0e2c2bf7d935cd62e2898dfba5f5a6d0ad058f2eba
7
- data.tar.gz: 5713e6cc767a6fd74f4ecc379b2481f7712872ac4699d063dd2125b9f77b53840249f61e46494ec3fe84f1c7d902a5acb9de3933220c1767ff9309d5d1464355
6
+ metadata.gz: 6682223bb805da84b4d4e639bdbb0cebce966a1f9b46f7b27395fa40aeab5e18536e5101aead00919a765aad58af19de6e060bf44091b1ca70ad266b943851eb
7
+ data.tar.gz: 6d2ae657451b3523ff329e3af5f653027da64d14d1924fa278576326e5af7abd0ff844ee56bc9775f81eb3edc845a957e4ede37bdae70c2767406a01d1dee5f3
checksums.yaml.gz.sig CHANGED
Binary file
data/lib/depviz.rb CHANGED
@@ -18,49 +18,49 @@ hkey_gems
18
18
  require depviz
19
19
  class DepViz
20
20
  media_type svg
21
- '
21
+ '
22
22
  end
23
23
  end
24
24
 
25
25
  class DepViz < PxGraphViz
26
26
  using ColouredText
27
-
27
+
28
28
  class Item
29
-
30
- def initialize(s, root: nil, name: name, debug: false)
29
+
30
+ def initialize(s, root: nil, name: nil, debug: false)
31
31
  @s, @root, @name, @debug = s, root, name, debug
32
32
  end
33
-
33
+
34
34
  def dependencies()
35
-
35
+
36
36
  if @debug then
37
37
  puts 'inside DepViz::Item::dependencies'
38
38
  puts '@s: ' + @s.inspect
39
39
  puts '@root: ' + @root.inspect
40
40
  end
41
-
41
+
42
42
  a = LineTree.new(@s).to_doc.root.xpath('//' + @name)
43
43
  puts 'dep: a: ' + a.inspect if @debug
44
-
44
+
45
45
  enclose = ->(a) do
46
46
  a.length > 1 ? [a.first] << enclose.call(a[1..-1]) : a
47
47
  end
48
-
48
+
49
49
  a2 = a.map do |x|
50
50
  puts ' dependencies x: ' + x.inspect if @debug
51
51
  enclose.call x.backtrack.to_s.split('/')[1..-1]
52
52
  end
53
-
53
+
54
54
  puts 'a2: ' + a2.inspect if @debug
55
-
55
+
56
56
  # group the items in order to merge branches with the same parent
57
57
  a3 = a2.group_by(&:first)
58
- a4 = a3.map {|x| [x.first] + x.last.map(&:last)}
59
-
58
+ a4 = a3.map {|x| [x.first] + x.last.map(&:last)}
59
+
60
60
  treeize = ->(obj, indent=-2) do
61
61
 
62
62
  if obj.is_a? Array then
63
-
63
+
64
64
  r = obj.map {|x| treeize.call(x, indent+1)}.join("\n")
65
65
  puts 'r: ' + r.inspect if @debug
66
66
  r
@@ -70,18 +70,18 @@ class DepViz < PxGraphViz
70
70
  ' ' * indent + obj
71
71
 
72
72
  end
73
- end
74
-
73
+ end
74
+
75
75
  s = treeize.call(a4)
76
-
76
+
77
77
  puts 'child s: ' + s.inspect if @debug
78
78
 
79
79
  dv3 = DepViz.new()
80
80
  dv3.read s
81
81
  dv3
82
-
82
+
83
83
  end
84
-
84
+
85
85
  # returns a DepViz document
86
86
  #
87
87
  def reverse_dependencies()
@@ -92,104 +92,104 @@ class DepViz < PxGraphViz
92
92
  .map{|x| XmlToSliml.new(x).to_s }.join("\n")
93
93
 
94
94
  return DepViz.new if s.empty?
95
-
95
+
96
96
  dv3 = DepViz.new(root: nil)
97
97
  dv3.read s
98
98
  dv3
99
-
100
- end
101
-
102
- end
103
-
104
- def initialize(s='', fields: %w(label shape), delimiter: ' # ',
105
- root: 'platform', style: nil,
106
- debug: false, fill: '#ccffcc', stroke: '#999999',
99
+
100
+ end
101
+
102
+ end
103
+
104
+ def initialize(s='', fields: %w(label shape), delimiter: ' # ',
105
+ root: 'platform', style: nil,
106
+ debug: false, fill: '#ccffcc', stroke: '#999999',
107
107
  text_color: '#330055')
108
-
108
+
109
109
  @style, @root, @debug = style, root, debug
110
110
  @header = "
111
111
  <?polyrex schema='items[type]/item[label]' delimiter =' # '?>
112
112
  type: digraph
113
113
 
114
114
  "
115
- if s.length > 0 then
116
-
115
+ if s.length > 0 then
116
+
117
117
  if s =~ /<?depviz / then
118
-
118
+
119
119
  raw_dv = s.clone
120
120
  s2 = raw_dv.slice!(/<\?depviz [^>]+\?>/)
121
121
 
122
122
  # attributes being sought => root fields delimiter id
123
- attributes = Shellwords::shellwords(s).map {|x| key,
123
+ attributes = Shellwords::shellwords(s).map {|x| key,
124
124
  value = x.split(/=/, 2); [key.to_sym, value]}.to_h
125
-
125
+
126
126
  h = {
127
- fields: fields.join(', '),
127
+ fields: fields.join(', '),
128
128
  delimiter: delimiter
129
- }.merge attributes
129
+ }.merge attributes
130
130
 
131
131
  s = if h[:root] then
132
- "\n\n" + h[:root] + "\n" +
132
+ "\n\n" + h[:root] + "\n" +
133
133
  raw_dv.strip.lines.map {|line| ' ' + line}.join
134
134
  else
135
135
  raw_dv
136
136
  end
137
-
137
+
138
138
  delimiter = h[:delimiter]
139
139
  fields = h[:fields].split(/ *, */)
140
140
 
141
- end
142
-
143
- @s = tree = DependencyBuilder.new(s).to_s
141
+ end
142
+
143
+ @s = tree = DependencyBuilder.new(s).to_s
144
144
  s3 = @root ? (@root + "\n" + tree.lines.map {|x| ' ' + x}.join) : tree
145
- @pxg = super(@header + s3, style: @style)
146
-
145
+ @pxg = super(@header + s3, style: @style)
146
+
147
147
  end
148
-
148
+
149
149
 
150
150
  end
151
-
151
+
152
152
  def count()
153
153
  return 0 unless @s
154
154
  child_nodes.length
155
155
  end
156
-
156
+
157
157
  def item(name)
158
-
158
+
159
159
  puts 'inside DepViz::item for ' + name.inspect if @debug
160
160
  puts '_@s : ' + @s.inspect if @debug
161
161
  Item.new @s, root: @root, name: name, debug: @debug
162
-
162
+
163
163
  end
164
-
164
+
165
165
  def nodes()
166
-
166
+
167
167
  child_nodes.map {|x| x.name}.uniq
168
-
168
+
169
169
  end
170
-
170
+
171
171
  def read(s)
172
-
172
+
173
173
  @s = s
174
174
  s2 = @root ? @root + "\n" + s.lines.map {|x| ' ' + x}.join : s
175
175
  @pxg = PxGraphViz.new(@header + s2, style: @style)
176
-
176
+
177
177
  end
178
-
178
+
179
179
  def to_doc()
180
180
  Rexle.new(LineTree.new(@s, root: @root).to_xml).root.elements.first
181
181
  end
182
182
 
183
183
  def to_s()
184
184
  @s
185
- end
185
+ end
186
186
 
187
187
  def to_xml()
188
188
  to_doc.xml
189
- end
189
+ end
190
190
 
191
191
  private
192
-
192
+
193
193
  def child_nodes()
194
194
  to_doc.root.xpath('//*')
195
195
  end
@@ -197,27 +197,27 @@ type: digraph
197
197
  def default_stylesheet()
198
198
 
199
199
  <<STYLE
200
- node {
201
- color: #ddaa66;
200
+ node {
201
+ color: #ddaa66;
202
202
  fillcolor: #447722;
203
- fontcolor: #ffeecc;
203
+ fontcolor: #ffeecc;
204
204
  fontname: 'Trebuchet MS';
205
- fontsize: 10;
205
+ fontsize: 10;
206
206
  margin: 0.1;
207
- penwidth: 1.3;
207
+ penwidth: 1.3;
208
208
  style: filled;
209
209
  }
210
-
210
+
211
211
  a node {
212
- color: #0011ee;
212
+ color: #0011ee;
213
213
  }
214
214
 
215
215
  edge {
216
216
  arrowsize: 0.9;
217
- color: #666;
218
- fontcolor: #444444;
219
- fontname: Verdana;
220
- fontsize: 8;
217
+ color: #666;
218
+ fontcolor: #444444;
219
+ fontname: Verdana;
220
+ fontsize: 8;
221
221
  dir: forward;
222
222
  weight: 1;
223
223
  }
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: depviz
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.2
4
+ version: 0.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -11,31 +11,31 @@ cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
13
  MIIEXjCCAsagAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDDCFnZW1t
14
- YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMTkwNjAzMDk1MzQ0WhcN
15
- MjAwNjAyMDk1MzQ0WjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
- cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCRYbn1
17
- Fxt/3nQfM/79qO2UuuUlR3kCV5irj0biTNxf4JtjzVV8yrXziAAeISrFHyuYEtic
18
- i9MttV6DEW8TImuGj6f6Oqlw/A/RzzQjn7GtcL1d7neBK9W1J3KgJ1JXvrTIdyWv
19
- 5PzQccRu1BWJBA1oLn0mU9/wfanuIpJv9Vbb9JkD+KVNltBwu3umDrxlLx7Sswyb
20
- bVa3paStxaUQ68Czk2En37NGi4Fklm9B0vA0MQIAbk6SzJam2DW4Q3kY0xD8XW+M
21
- OHu7kWa2fWZgNyJ8HKKuoSHoEUX1hQi8RLhl6RCd7XMvgHOcXz/RkpEslo2y7JL8
22
- I6j0hgWreGD+2UX0/It/YGxP4ZuYURSLo3b51VCxG/ZucXap9q9fdL9yo0Q04La3
23
- RdiwYfK8yT01Q2aka10FDm/pP3X3eAStU3j3OBIi5fOkmstRcVfwlZo3G+oKiSCN
24
- jYa/SWlgplC2QYFV82wkl30HLoLTXQfOnMzcDqGwPrJs6uAHI+tN7pqWy2kCAwEA
25
- AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUDZKHaZW1
26
- sIg3/fJWq3G53WHv2rAwJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
14
+ YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMjExMjA5MjAzNDIzWhcN
15
+ MjIxMjA5MjAzNDIzWjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
+ cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDfmSNE
17
+ ueVR4Rw/+iOZCBFm8C2VKKRPEpuJotEYC64fLdssnfOx8ItCMadp0ou9+q/RAzMB
18
+ OjNsrE9l2IS0n9YkOfeMLqhjLRfa9OhTl62n595gETOfI5bXyTmqiYz+mJG4QZrf
19
+ PzARfL2zF589xNqRyHzPdRLZxLLXPyRI795mqVmB0bYWibrSBb0rmKmVvpWd8SvA
20
+ t99RS9eGZE2fw06ngNk7/wUbvpwql8/p6EEXHDOZswfkCJw46qhPrAn1d0VM1i9K
21
+ kNabJbiRzh9WzL/qtqYck2hAdTxqsMN/jJBGJ18n4MLlZCbb6/+doy1N/PDR0C3u
22
+ XMK8Xsp5dX2+b3SP4mp9uw0RaE74zZ+anJdZ8JUCf3TBcBfX7Q2QJHqclb9OqVoq
23
+ TqxCsbZOgUuQc0eozOXC8Z518OBqJ+a5S+uyQl2Ecnqd2I20IzXF7q6a2XP2IyMM
24
+ S8Vui76C+WgXkRi95haT7955vQRJf4EY6Q7Jgf1CTABAYrjhVF/it6tEjJECAwEA
25
+ AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUKYwVgC2R
26
+ 3zCOc27gpnSm5WkG/ucwJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
27
27
  c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
28
- BgkqhkiG9w0BAQsFAAOCAYEAeBSpoASLXnbaBavcGV4U5cFztowi8X7A36mKQErU
29
- M9WO2rSA1tKXRPCgbIXxDOjfSvIeElIOiCt3pOxUoh6hOdW74NJrouhE3SD+SaSD
30
- 2DA9KfXiX1mX95ab0fZkdDQgMGFaaoO1FUl36iSsZFU07dBVEYJAn5qm4UjQpJw3
31
- 7Zyr65t7l+gKktE7SK7Lz8bNcP+z7axdilCst21q0J3u0gEye917Xo/O53nzDNFY
32
- FOnC3DQL7rPfXbHvtUh/pdI0VxYHqEbvAm7yU8MtknlBiDLDomSUGTqMRLXHzMDm
33
- LY3ynRaBjiMdQYyXTDZMtrEiPBiWA3kiX0LSJmrVlHBUz+QCncMTvisHBndUgTqk
34
- 49JLHdNSx+oB1JJWVUYG3mdKOvfmmdoGOi1tno8iO7x7Q2k3Sq/h4ePeVvkQJhyG
35
- zoPaOSt4xoowKqommO0RHQimrbPQWds1bnkTc//n7y6ALRc9fqvN/8MJHf0wpUja
36
- dsRU+5pPlIOwJbnDyYzEZrS9
28
+ BgkqhkiG9w0BAQsFAAOCAYEAS2Rq49RGwtcxjN9jto0LK5Pi/9F/T8fOaA6mS+Jm
29
+ TpIOGZppcqy/c9S7+duS0boopB0wy6WKgcrBFl7sMzvhY8HsC+1IvfK/OrEnGf5E
30
+ RKb+gj1LHMLNDDDjmR49hxr4HC5q0xdQjNROKecJK/9pd26FEzh83h91/y4eTDHB
31
+ R+CoV+XxQQZsaM7ob0/XXo6CLNVfexXZjaVmLb/hte8h2TsjB8ACyBE5aOPHlTqk
32
+ Q2N93GgIEx7mTTkmp0GbDx3+C5CCYTAaDzl37blfWJor24FhhKVZwSeIb0BEJDmZ
33
+ 4FZeY1kID07JzDljwH+svLG4pYTOxSj0EVmiKKvVNKmHr4vDxovt/MJvRfEcTKic
34
+ zTKnpkkAKBz5bx1IPHZNy3lDcizHKyyM9NpqnhahDLay2bvPziCTFZ4TSUTY1+uT
35
+ OtP+/rSpQ79ezyeNwN9qKx23SWrNBvMkeNyMBMDdoNL+vA/sRwmiKuaWJuqIVaay
36
+ B7KTOXvQC2+5guaFLzsIiU9w
37
37
  -----END CERTIFICATE-----
38
- date: 2019-06-11 00:00:00.000000000 Z
38
+ date: 2021-12-09 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: pxgraphviz
@@ -123,7 +123,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  requirements: []
126
- rubygems_version: 3.0.1
126
+ rubyforge_project:
127
+ rubygems_version: 2.7.10
127
128
  signing_key:
128
129
  specification_version: 4
129
130
  summary: Generates a complete dependency tree from disparate dependencies to an SVG
metadata.gz.sig CHANGED
Binary file