pod-target 0.2.2 → 0.3.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/.idea/modules.xml +0 -1
- data/Gemfile.lock +1 -1
- data/lib/pod/target/cli.rb +2 -0
- data/lib/pod/target/commands/resolve/graph.rb +0 -12
- data/lib/pod/target/commands/target.rb +20 -12
- data/lib/pod/target/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cabccf59c7954023e0392edd2e30f65ffb2192511b27b2bbaca8451f8c09fe08
|
4
|
+
data.tar.gz: 475498fbf859ce5c2e8ab2e572bca243d4c608acb254ff8f9748251ff6821ed1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0e47a241a046b7c5afbdc55abdb973407ae849c1c07e6a7e6e8b4b4cb3f254d2aa4f3aa93924f112c9e59bf4efdd3272c690ac4552f59d0acf60d6f4791d03ba
|
7
|
+
data.tar.gz: 72d2514d303e4d9fe01ba367a161f89c90a38bb24d313e4e29150dbaec0a2dafb607f40e2cc5e115f8390b98ebddef7c022ba57835109062ad660293c1581221
|
data/.idea/modules.xml
CHANGED
@@ -2,7 +2,6 @@
|
|
2
2
|
<project version="4">
|
3
3
|
<component name="ProjectModuleManager">
|
4
4
|
<modules>
|
5
|
-
<module fileurl="file://$USER_HOME$/Learning/pandan/.idea/pandan.iml" filepath="$USER_HOME$/Learning/pandan/.idea/pandan.iml" />
|
6
5
|
<module fileurl="file://$PROJECT_DIR$/.idea/pod-target.iml" filepath="$PROJECT_DIR$/.idea/pod-target.iml" />
|
7
6
|
</modules>
|
8
7
|
</component>
|
data/Gemfile.lock
CHANGED
data/lib/pod/target/cli.rb
CHANGED
@@ -24,6 +24,8 @@ module Pod
|
|
24
24
|
desc: 'Set name of the root target, must be set'
|
25
25
|
method_option :workspace, type: :string,
|
26
26
|
desc: "Set workspace path, if not set will use current directory"
|
27
|
+
method_option :max_depth, type: :numeric,
|
28
|
+
desc: "Set max depth of the graph, if not set will traverse the whole graph"
|
27
29
|
method_option :output, type: :string,
|
28
30
|
desc: "Set output path of csv file, if not set will use current directory"
|
29
31
|
def target(*)
|
@@ -64,18 +64,6 @@ module Pod
|
|
64
64
|
dfs(neighbor, level_map, depth+1)
|
65
65
|
end
|
66
66
|
end
|
67
|
-
|
68
|
-
def dfs2(node, level_map, depth)
|
69
|
-
name = node.name
|
70
|
-
if level_map.key?(name)
|
71
|
-
level_map[name] = [level_map[name], depth].max
|
72
|
-
else
|
73
|
-
level_map[name] = depth
|
74
|
-
end
|
75
|
-
node.neighbors.each do |neighbor|
|
76
|
-
dfs2(neighbor, level_map, depth+1)
|
77
|
-
end
|
78
|
-
end
|
79
67
|
end
|
80
68
|
end
|
81
69
|
end
|
@@ -21,6 +21,8 @@ module Pod
|
|
21
21
|
@output = @options[:output]
|
22
22
|
@output ||= '.'
|
23
23
|
@root = @options[:root]
|
24
|
+
@max_depth = @options[:max_depth]
|
25
|
+
@max_depth ||= -1
|
24
26
|
if @root.nil?
|
25
27
|
prompt = TTY::Prompt.new
|
26
28
|
prompt.error("Root target is not set")
|
@@ -62,24 +64,30 @@ module Pod
|
|
62
64
|
exit 1
|
63
65
|
else
|
64
66
|
graphviz = GraphViz.new(type: :digraph)
|
65
|
-
|
66
|
-
|
67
|
-
visited = Set.new([])
|
68
|
-
dfs(graphviz, node, visited, level_map)
|
67
|
+
parent = {}
|
68
|
+
dfs(graphviz, node, graph, parent, 0)
|
69
69
|
graphviz
|
70
70
|
end
|
71
71
|
end
|
72
72
|
|
73
|
-
def dfs(graphviz, node,
|
74
|
-
|
75
|
-
|
76
|
-
|
73
|
+
def dfs(graphviz, node, graph, parent, depth)
|
74
|
+
if @max_depth != -1 && depth == @max_depth
|
75
|
+
return
|
76
|
+
end
|
77
77
|
target_node = graphviz.add_node(node.name)
|
78
|
+
level_map = {}
|
79
|
+
graph.dfs(node, level_map, 0)
|
78
80
|
node.neighbors.each do |dependency|
|
79
|
-
if level_map[dependency.name] ==
|
80
|
-
|
81
|
-
|
82
|
-
|
81
|
+
if level_map[dependency.name] == 1
|
82
|
+
if parent.key?(dependency.name) == false
|
83
|
+
parent[dependency.name] = Set.new
|
84
|
+
end
|
85
|
+
if parent[dependency.name].include?(node.name) == false
|
86
|
+
parent[dependency.name].add(node.name)
|
87
|
+
dep_node = graphviz.add_node(dependency.name)
|
88
|
+
graphviz.add_edge(target_node, dep_node)
|
89
|
+
dfs(graphviz, dependency, graph, parent, depth+1)
|
90
|
+
end
|
83
91
|
end
|
84
92
|
end
|
85
93
|
end
|
data/lib/pod/target/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pod-target
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bao Do
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-05-
|
11
|
+
date: 2021-05-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: xcodeproj
|