pocky 2.3.0 → 2.4.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/pocky/packwerk.rb +44 -11
- data/lib/pocky/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: ec4633fc47cd55e4bb54ea0378567ebaa792ed20
|
4
|
+
data.tar.gz: 0ff1ee4a69d65d586440ed2287958370ff2edc7f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 17398615fbe7d3b8ac88ac5fd3a36844b417f998d7aea02a6d8f361f5af8402dac03284e091d1a8e2a2776f48a89b1e5f1c8fbef7fefe51681034ebfa82e1331
|
7
|
+
data.tar.gz: 94517f49a5813913ecc8d29dcdbf8f6e6a1847a741dcb622d4b7ae10c6d14565a8da62ff8b16072de3f6018be13a57c7794cd23ed8c5f920bfc1dd6b82d52604
|
data/lib/pocky/packwerk.rb
CHANGED
@@ -8,19 +8,32 @@ module Pocky
|
|
8
8
|
class InvalidRootPathError < StandardError
|
9
9
|
end
|
10
10
|
|
11
|
+
class RubyFileSize
|
12
|
+
def self.compute(directory)
|
13
|
+
# Sum up all ruby source except for specs
|
14
|
+
package_size = Dir[File.join(directory, '**', '*.rb').to_s].reduce(0) do |size, filename|
|
15
|
+
size += File.size(filename) unless filename.match(/spec\.rb$/)
|
16
|
+
size
|
17
|
+
end
|
18
|
+
|
19
|
+
# to kB
|
20
|
+
(package_size / 1024).ceil
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
11
24
|
class Packwerk
|
12
25
|
DEPENDENCIES_FILENAME = 'package.yml'
|
13
26
|
DEPRECATED_REFERENCES_FILENAME = 'deprecated_references.yml'
|
14
27
|
MAX_EDGE_WIDTH = 5
|
15
28
|
|
16
|
-
def self.generate(params)
|
29
|
+
def self.generate(params = {})
|
17
30
|
new(**params).generate
|
18
31
|
end
|
19
32
|
|
20
33
|
private_class_method :new
|
21
34
|
def initialize(
|
22
35
|
package_path: nil,
|
23
|
-
default_package: '
|
36
|
+
default_package: 'root',
|
24
37
|
filename: 'packwerk.png',
|
25
38
|
dpi: 100,
|
26
39
|
package_color: '#5CC8FF',
|
@@ -45,8 +58,9 @@ module Pocky
|
|
45
58
|
color: package_color,
|
46
59
|
height: 1.0,
|
47
60
|
style: 'filled, rounded',
|
48
|
-
shape: 'box'
|
61
|
+
shape: 'box'
|
49
62
|
}
|
63
|
+
|
50
64
|
@dependency_edge_options = {
|
51
65
|
color: dependency_edge
|
52
66
|
}
|
@@ -65,6 +79,27 @@ module Pocky
|
|
65
79
|
|
66
80
|
private
|
67
81
|
|
82
|
+
def node_overrides(file_size)
|
83
|
+
if file_size < 10
|
84
|
+
{ fontsize: 26 }
|
85
|
+
elsif file_size < 100
|
86
|
+
{ fontsize: 26 * 4, margin: 0.2 }
|
87
|
+
elsif file_size < 1000
|
88
|
+
{ fontsize: 26 * 8, margin: 0.4 }
|
89
|
+
elsif file_size < 10_000
|
90
|
+
{ fontsize: 26 * 16, margin: 0.8 }
|
91
|
+
else
|
92
|
+
{ fontsize: 26 * 32, margin: 1.0 }
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
def draw_node(package)
|
97
|
+
package_name = package_name_for_dependency(package)
|
98
|
+
path = package == '.' ? @root_path : @root_path.join(package)
|
99
|
+
file_size = RubyFileSize.compute(path.to_s)
|
100
|
+
@graph.add_nodes(package_name, **@node_options.merge(node_overrides(file_size)))
|
101
|
+
end
|
102
|
+
|
68
103
|
def build_directed_graph
|
69
104
|
@graph = GraphViz.new(:G, type: :digraph, dpi: @dpi)
|
70
105
|
draw_dependencies
|
@@ -74,14 +109,13 @@ module Pocky
|
|
74
109
|
|
75
110
|
def draw_dependencies
|
76
111
|
@package_dependencies.each do |package, file|
|
77
|
-
@nodes[package] ||=
|
112
|
+
@nodes[package] ||= draw_node(package)
|
78
113
|
file.each do |provider|
|
79
|
-
|
80
|
-
@nodes[provider_package] ||= @graph.add_nodes(provider_package, **@node_options)
|
114
|
+
@nodes[provider] ||= draw_node(provider)
|
81
115
|
|
82
116
|
@graph.add_edges(
|
83
117
|
@nodes[package],
|
84
|
-
@nodes[
|
118
|
+
@nodes[provider],
|
85
119
|
**@dependency_edge_options
|
86
120
|
)
|
87
121
|
end
|
@@ -90,14 +124,13 @@ module Pocky
|
|
90
124
|
|
91
125
|
def draw_deprecated_references
|
92
126
|
@deprecated_references.each do |package, references|
|
93
|
-
@nodes[package] ||=
|
127
|
+
@nodes[package] ||= draw_node(package)
|
94
128
|
references.each do |provider, invocations|
|
95
|
-
|
96
|
-
@nodes[provider_package] ||= @graph.add_nodes(provider_package, **@node_options)
|
129
|
+
@nodes[provider] ||= draw_node(provider)
|
97
130
|
|
98
131
|
@graph.add_edges(
|
99
132
|
@nodes[package],
|
100
|
-
@nodes[
|
133
|
+
@nodes[provider],
|
101
134
|
**@deprecated_references_edge_options.merge(
|
102
135
|
penwidth: edge_width(invocations.length),
|
103
136
|
),
|
data/lib/pocky/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pocky
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Quan Nguyen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-01
|
11
|
+
date: 2021-02-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ruby-graphviz
|