podfileDep 2.6.0 → 2.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +3 -0
- data/lib/cocoapods_plugin.rb +2 -1
- data/lib/podfileDep/command/dep.rb +36 -0
- data/lib/podfileDep/dep/find.rb +118 -0
- data/lib/podfileDep/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0d32097193876845e685b951363a7b4476654390db321ffbed66677c5e056184
|
4
|
+
data.tar.gz: 10b832fbc8d5ec05f36f11f6b6a9603cb2bfcc22d51f96b3bde839251b8d2d35
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6135afcbd4cac979bb16cf41152c0f0c02a16e2ce33f6931f02afe446938164cfcd919f85115da1a45845508b0e0e9e0bc4f9d834f056e0e2a1ca7e5433608cd
|
7
|
+
data.tar.gz: 3ac770ccd5ce158c71b1b5c3c018d34a465881868da6adef69b0b11831197454682fc8258a8a323576f346b7785553070166261873090da46e6cc898c7503f51
|
data/CHANGELOG.md
CHANGED
data/lib/cocoapods_plugin.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'cocoapods'
|
2
|
-
require_relative 'podfileDep/command/
|
2
|
+
require_relative 'podfileDep/command/dep'
|
3
|
+
require_relative 'podfileDep/command/quick'
|
3
4
|
require_relative 'podfileDep/command/quick'
|
4
5
|
require_relative 'podfileDep/check/project'
|
5
6
|
require_relative 'podfileDep/check/podspec'
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require_relative '../dep/find'
|
2
|
+
require_relative '../version'
|
3
|
+
module Pod
|
4
|
+
class Command
|
5
|
+
class Dep < Command
|
6
|
+
|
7
|
+
self.summary = '从Podfile.lock文件里检索出依赖反转后的情况'
|
8
|
+
|
9
|
+
self.description = <<-DESC
|
10
|
+
从Podfile.lock文件里检索出依赖反转后的情况
|
11
|
+
DESC
|
12
|
+
|
13
|
+
def self.options
|
14
|
+
[
|
15
|
+
%w[--name=xx xx为要查询的组件的名字],
|
16
|
+
%w[--sort 输出反转依赖时按数量从小到大排序],
|
17
|
+
].concat(super).reject { |(name, _)| (name == '--no-ansi' or name == '--silent' or name == '--allow-root' or name == '--verbose') }
|
18
|
+
end
|
19
|
+
|
20
|
+
def initialize(argv)
|
21
|
+
super
|
22
|
+
puts "插件版本号: #{PodfileDep::VERSION}"
|
23
|
+
@name = argv.option('name')
|
24
|
+
@sort_count = argv.flag?('sort', false)
|
25
|
+
end
|
26
|
+
|
27
|
+
def run
|
28
|
+
verify_lockfile_exists!
|
29
|
+
finder = Pod::DepFinder.new
|
30
|
+
finder.find_name = @name
|
31
|
+
finder.sort_count = @sort_count
|
32
|
+
finder.find
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,118 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
|
3
|
+
module Pod
|
4
|
+
class DepFinder
|
5
|
+
|
6
|
+
# @param [Hash] podfileLock内容
|
7
|
+
attr_accessor :lockfile_content
|
8
|
+
|
9
|
+
# @param [String] 要查询的组件名
|
10
|
+
attr_accessor :find_name
|
11
|
+
|
12
|
+
# @param [bool] 是否按数量从小到大排序
|
13
|
+
attr_accessor :sort_count
|
14
|
+
|
15
|
+
def initialize
|
16
|
+
super
|
17
|
+
init_lock
|
18
|
+
end
|
19
|
+
|
20
|
+
def init_lock
|
21
|
+
# 读取名为Podfile.lock的yaml文件, 并通过分析里面的PODS数组,输出依赖的第三方库的名字
|
22
|
+
unless File.exist?("Podfile.lock")
|
23
|
+
puts "Podfile.lock文件不存在,请先执行pod install或pod update"
|
24
|
+
end
|
25
|
+
|
26
|
+
@sort_count = false
|
27
|
+
|
28
|
+
@lockfile_content = YAML.load_file('Podfile.lock')
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
# @api 反向依赖查询
|
33
|
+
def find
|
34
|
+
|
35
|
+
if @find_name
|
36
|
+
find_for_name
|
37
|
+
else
|
38
|
+
find_all
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def find_all
|
43
|
+
|
44
|
+
reverse_map = Hash.new
|
45
|
+
# 循环遍历lockfile对象中的PODS数组
|
46
|
+
@lockfile_content['PODS'].each do |pod|
|
47
|
+
# 拿到所有的组件名
|
48
|
+
key = pod.is_a?(Hash) ? pod.keys[0] : pod
|
49
|
+
key = key.split(" (")[0]
|
50
|
+
results = find_with_name(key)
|
51
|
+
|
52
|
+
reverse_map[key] = results
|
53
|
+
|
54
|
+
end
|
55
|
+
|
56
|
+
puts ""
|
57
|
+
sorted_hash = reverse_map
|
58
|
+
if @sort_count
|
59
|
+
puts "反转后依赖如下(数量从少到多):"
|
60
|
+
sorted_hash = Hash[reverse_map.sort_by { |key, value| value.length }]
|
61
|
+
else
|
62
|
+
puts "反转后依赖如下:"
|
63
|
+
end
|
64
|
+
|
65
|
+
sorted_hash.each do |key, array|
|
66
|
+
puts "依赖#{key}的组件有(#{array.length}个):"
|
67
|
+
array.each do |obj|
|
68
|
+
puts obj
|
69
|
+
end
|
70
|
+
puts "\n"
|
71
|
+
end
|
72
|
+
|
73
|
+
unless @sort_count
|
74
|
+
puts "==> 按数量从少到多排序,可使用pod dep --sort"
|
75
|
+
end
|
76
|
+
puts "==> 查询单个依赖的情况,可使用pod dep --name=xx"
|
77
|
+
end
|
78
|
+
|
79
|
+
def find_for_name
|
80
|
+
results = find_with_name(@find_name)
|
81
|
+
|
82
|
+
if results.empty?
|
83
|
+
puts "组件#{@find_name}没有被任何其他组件依赖"
|
84
|
+
return
|
85
|
+
end
|
86
|
+
|
87
|
+
puts "依赖#{@find_name}的组件有:"
|
88
|
+
results.each do |res|
|
89
|
+
puts res
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
def find_with_name(name)
|
94
|
+
results = Array.new
|
95
|
+
# 循环遍历lockfile对象中的PODS数组
|
96
|
+
@lockfile_content['PODS'].each do |pod|
|
97
|
+
if pod.is_a?(Hash)
|
98
|
+
pod.values.each do |value|
|
99
|
+
# 如果value是一个数组,则判断数组中是否包含name
|
100
|
+
if value.is_a?(Array)
|
101
|
+
value.each { |sub_value|
|
102
|
+
# 这里的处理包含了子模块的情况
|
103
|
+
sub_module = sub_value.split(" (")[0]
|
104
|
+
if sub_module == name
|
105
|
+
results << pod.keys.first
|
106
|
+
end
|
107
|
+
}
|
108
|
+
end
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
# 去重
|
114
|
+
results.uniq
|
115
|
+
end
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
data/lib/podfileDep/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: podfileDep
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- 王帅朋
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-08-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cocoapods
|
@@ -75,7 +75,9 @@ files:
|
|
75
75
|
- lib/podfileDep/check/util.rb
|
76
76
|
- lib/podfileDep/check/xcodeproj.rb
|
77
77
|
- lib/podfileDep/command/all.rb
|
78
|
+
- lib/podfileDep/command/dep.rb
|
78
79
|
- lib/podfileDep/command/quick.rb
|
80
|
+
- lib/podfileDep/dep/find.rb
|
79
81
|
- lib/podfileDep/indirect/indirect.rb
|
80
82
|
- lib/podfileDep/modify/modify_code.rb
|
81
83
|
- lib/podfileDep/my_constants.rb
|