podfileDep 2.0.1 → 2.1.1
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/CHANGELOG.md +9 -1
- data/lib/cocoapods_plugin.rb +5 -1
- data/lib/podfileDep/check/xcodeproj.rb +12 -1
- data/lib/podfileDep/reference/project.rb +48 -2
- data/lib/podfileDep/reference/uninstall.rb +129 -0
- data/lib/podfileDep/reference/unused.rb +23 -4
- data/lib/podfileDep/version.rb +1 -1
- data/lib/podfileDep/yaml/yaml_dep.rb +49 -26
- data/lib/podfileDep.rb +2 -2
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d685c50ac91b5bc9100a895fe300df13c8d1f4ca29eec6cfd0d36c1e74edaf08
|
4
|
+
data.tar.gz: 60365a5983ce3810316f3b72b061e38717dfbd1f4ae34838f395a90659c4f755
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a3dc46f47e0a2f3fdff945c663396ae3f1727dd2a62f5c6e2c939be6d528f2045469c9bb73d75d6b27be317ec9aee34a1e6e7fe9509875d868df603579a9327d
|
7
|
+
data.tar.gz: b0bcbd47cf7ecad5c0f19a597fb531708b2b31f4da06b2bdc885985901dac4b0276bb4f3ca85f5810f404feb7ff786ec2bdd2ac402f850ee48221e14b0aae1f1
|
data/CHANGELOG.md
CHANGED
data/lib/cocoapods_plugin.rb
CHANGED
@@ -35,7 +35,11 @@ module CocoapodsPlugin
|
|
35
35
|
Unused::UnusedManager.check_unused
|
36
36
|
|
37
37
|
# 添加yaml到引用和忽略
|
38
|
-
Project::ProjectManager.
|
38
|
+
Project::ProjectManager.yaml_reference
|
39
|
+
|
40
|
+
# 添加yaml到资源文件
|
41
|
+
Project::ProjectManager.yaml_resource
|
42
|
+
|
39
43
|
end
|
40
44
|
|
41
45
|
# Pod::HooksManager.register('podfileDep', :post_integrate) do |context|
|
@@ -75,7 +75,18 @@ module XCProject
|
|
75
75
|
|
76
76
|
end
|
77
77
|
|
78
|
-
#获取主APP target列表
|
78
|
+
#获取主APP target列表 包含扩展
|
79
|
+
def get_shell_targets
|
80
|
+
results = []
|
81
|
+
project = self.get_shell_project
|
82
|
+
targets = project.root_object.targets
|
83
|
+
targets.each do |target|
|
84
|
+
results << target.name
|
85
|
+
end
|
86
|
+
results
|
87
|
+
end
|
88
|
+
|
89
|
+
#获取主APP target列表 不包含扩展
|
79
90
|
def get_app_targets
|
80
91
|
results = []
|
81
92
|
project = self.get_shell_project
|
@@ -1,10 +1,56 @@
|
|
1
1
|
require_relative '../check/xcodeproj'
|
2
2
|
require_relative '../constants'
|
3
|
+
|
3
4
|
module Project
|
4
5
|
class ProjectManager
|
6
|
+
def self.yaml_resource
|
7
|
+
puts "yaml资源文件添加"
|
8
|
+
project_manager = XCProject::XcodeprojManager.share_manager
|
9
|
+
targets = project_manager.get_app_targets
|
10
|
+
targets.each do |target_name|
|
11
|
+
target_supporting = "Pods-#{target_name}"
|
12
|
+
resource_shell = "Pods-#{target_name}-resources.sh"
|
13
|
+
resource_shell_path = "#{Dir.pwd}/Pods/Target Support Files/#{target_supporting}/#{resource_shell}"
|
14
|
+
self.yaml_resource_file(resource_shell_path)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.yaml_resource_file(file_path)
|
19
|
+
unless File.exist?(file_path)
|
20
|
+
return
|
21
|
+
end
|
22
|
+
|
23
|
+
# 读内容
|
24
|
+
content = ""
|
25
|
+
line_array = IO.readlines(file_path)
|
26
|
+
line_array.each_with_index { |line, index|
|
27
|
+
content += line
|
28
|
+
next_line = index<line_array.size ? line_array[index+1] : ""
|
29
|
+
if line.include?("if [[ \"$CONFIGURATION\"") and next_line.include?("install_resource")
|
30
|
+
if File.exist?(Constants::PODFILE_LOCAL_YAML)
|
31
|
+
content += " install_resource \"${SRCROOT}/#{Constants::PODFILE_LOCAL_YAML}\"\n"
|
32
|
+
end
|
33
|
+
|
34
|
+
if File.exist?(Constants::PODFILE_MODULE_YAML)
|
35
|
+
content += " install_resource \"${SRCROOT}/#{Constants::PODFILE_MODULE_YAML}\"\n"
|
36
|
+
end
|
37
|
+
|
38
|
+
if File.exist?(Constants::PODFILE_THIRD_PARTY_YAML)
|
39
|
+
content += " install_resource \"${SRCROOT}/#{Constants::PODFILE_THIRD_PARTY_YAML}\"\n"
|
40
|
+
end
|
41
|
+
end
|
42
|
+
}
|
43
|
+
|
44
|
+
# 写文件
|
45
|
+
File.open(file_path, 'w') { |file|
|
46
|
+
file.write(content)
|
47
|
+
}
|
48
|
+
end
|
49
|
+
|
5
50
|
|
6
|
-
|
7
|
-
|
51
|
+
# 将yaml文件加入引用
|
52
|
+
def self.yaml_reference
|
53
|
+
puts "yaml文件引用添加"
|
8
54
|
self.add_yaml
|
9
55
|
self.add_local_yaml_ignore
|
10
56
|
end
|
@@ -0,0 +1,129 @@
|
|
1
|
+
require_relative '../check/xcodeproj'
|
2
|
+
module Pod
|
3
|
+
# 移除未使用的组件
|
4
|
+
class Uninstall
|
5
|
+
|
6
|
+
def uninstall(uninstall_list)
|
7
|
+
project_manager = XCProject::XcodeprojManager.share_manager
|
8
|
+
|
9
|
+
# 删除引用
|
10
|
+
pods_project = project_manager.get_pods_project
|
11
|
+
uninstall_from_project(uninstall_list, pods_project)
|
12
|
+
pods_project.save
|
13
|
+
|
14
|
+
# 删除资源文件等
|
15
|
+
uninstall_from_frameworks(uninstall_list, project_manager)
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
def uninstall_from_frameworks(module_list, project_manager)
|
20
|
+
targets = project_manager.get_shell_targets
|
21
|
+
targets.each do |target_name|
|
22
|
+
|
23
|
+
target_supporting = "Pods-#{target_name}"
|
24
|
+
resource_shell = "Pods-#{target_name}-resources.sh"
|
25
|
+
resource_shell_path = "#{Dir.pwd}/Pods/Target Support Files/#{target_supporting}/#{resource_shell}"
|
26
|
+
uninstall_from_file(resource_shell_path, module_list, "install_resource")
|
27
|
+
|
28
|
+
# 删除frameworks
|
29
|
+
frameworks_shell = "Pods-#{target_name}-frameworks.sh"
|
30
|
+
frameworks_shell_path = "#{Dir.pwd}/Pods/Target Support Files/#{target_supporting}/#{frameworks_shell}"
|
31
|
+
uninstall_from_file(frameworks_shell_path, module_list, "install_framework")
|
32
|
+
|
33
|
+
# 删除配置
|
34
|
+
# 根据通配符找到真实路径
|
35
|
+
config_patton = "Pods-#{target_name}.*.xcconfig"
|
36
|
+
config_patton_path = "#{Dir.pwd}/Pods/Target Support Files/#{target_supporting}/#{config_patton}"
|
37
|
+
Dir[config_patton_path].select{|config_real_path|
|
38
|
+
uninstall_for_config(config_real_path, module_list)
|
39
|
+
}
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
def uninstall_for_config(file_path, module_list)
|
44
|
+
find_array = []
|
45
|
+
module_list.each do |module_name|
|
46
|
+
module_name = module_name.gsub("+", "_")
|
47
|
+
module_name = module_name.gsub("-", "_")
|
48
|
+
|
49
|
+
find_array << " -framework \"#{module_name}\""
|
50
|
+
find_array << " \"${PODS_CONFIGURATION_BUILD_DIR}/#{module_name}/#{module_name}.framework/Headers\""
|
51
|
+
find_array << " \"${PODS_CONFIGURATION_BUILD_DIR}/#{module_name}\""
|
52
|
+
find_array << " \"${PODS_ROOT}/#{module_name}\""
|
53
|
+
find_array << " \"${PODS_XCFRAMEWORKS_BUILD_DIR}/#{module_name}\""
|
54
|
+
|
55
|
+
end
|
56
|
+
|
57
|
+
replace = ""
|
58
|
+
replace_str(file_path, find_array, replace)
|
59
|
+
end
|
60
|
+
def uninstall_from_file(file_path, module_list , keyword)
|
61
|
+
unless File.exist?(file_path)
|
62
|
+
return
|
63
|
+
end
|
64
|
+
|
65
|
+
# 读内容
|
66
|
+
content = ""
|
67
|
+
line_array = IO.readlines(file_path)
|
68
|
+
line_array.each_with_index { |line, index|
|
69
|
+
if line.include?(keyword)
|
70
|
+
contain = false
|
71
|
+
module_list.each{|module_name|
|
72
|
+
if line.include?("/#{module_name}/")
|
73
|
+
contain = true
|
74
|
+
end
|
75
|
+
}
|
76
|
+
|
77
|
+
if contain
|
78
|
+
content += " echo ''\n"
|
79
|
+
next
|
80
|
+
end
|
81
|
+
|
82
|
+
end
|
83
|
+
content += line
|
84
|
+
}
|
85
|
+
|
86
|
+
# 写文件
|
87
|
+
File.open(file_path, 'w') { |file|
|
88
|
+
file.write(content)
|
89
|
+
}
|
90
|
+
end
|
91
|
+
|
92
|
+
def uninstall_from_project(module_list, pods_project)
|
93
|
+
pods_project.main_group.children.each {|child|
|
94
|
+
if child.display_name != "Pods" and child.display_name != "Development Pods"
|
95
|
+
next
|
96
|
+
end
|
97
|
+
child.children.reject! {|sun|
|
98
|
+
module_list.include?(sun.display_name)
|
99
|
+
}
|
100
|
+
}
|
101
|
+
|
102
|
+
pods_project.main_group.children.reject! do |child|
|
103
|
+
(child.class == Array and child.children.size == 0)
|
104
|
+
end
|
105
|
+
|
106
|
+
pods_project.targets.reject! do |child|
|
107
|
+
module_list.include?(child.display_name)
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
# 替换文件内的字符串
|
112
|
+
def replace_str(file_path, find_array, replace)
|
113
|
+
unless File.exist?(file_path)
|
114
|
+
return
|
115
|
+
end
|
116
|
+
FileUtils.chmod("+w", file_path)
|
117
|
+
content = File.read(file_path)
|
118
|
+
|
119
|
+
find_array.each do |find|
|
120
|
+
content = content.gsub(find, replace)
|
121
|
+
end
|
122
|
+
|
123
|
+
File.open(file_path, "w") do |file|
|
124
|
+
file.puts content
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
128
|
+
end
|
129
|
+
end
|
@@ -1,5 +1,7 @@
|
|
1
1
|
require_relative '../check/xcodeproj'
|
2
2
|
require_relative '../podfilelock'
|
3
|
+
require_relative 'uninstall'
|
4
|
+
require_relative '../yaml/yaml_dep'
|
3
5
|
|
4
6
|
module Unused
|
5
7
|
class UnusedManager
|
@@ -24,8 +26,14 @@ module Unused
|
|
24
26
|
return
|
25
27
|
end
|
26
28
|
|
29
|
+
# 是否需要快速编译
|
30
|
+
quick_build = Pod::YamlManager.share_manager.quick_build
|
31
|
+
|
32
|
+
uninstaller = Pod::Uninstall.new
|
33
|
+
|
27
34
|
# 未使用的列表
|
28
35
|
unused_list = []
|
36
|
+
uninstall_list = []
|
29
37
|
installed_modules.each do |module_item|
|
30
38
|
|
31
39
|
module_name = module_item.keys[0]
|
@@ -38,17 +46,28 @@ module Unused
|
|
38
46
|
end
|
39
47
|
|
40
48
|
if not used and not unused_list.include?(real_module_name)
|
41
|
-
|
49
|
+
local_contain = Pod::YamlManager.share_manager.local_yaml_contain(real_module_name)
|
50
|
+
if quick_build and not local_contain
|
51
|
+
uninstall_list << real_module_name
|
52
|
+
else
|
53
|
+
unused_list << real_module_name
|
54
|
+
end
|
42
55
|
end
|
43
56
|
end
|
44
57
|
|
45
58
|
if unused_list.size >0
|
46
|
-
puts unused_list
|
47
|
-
puts "
|
59
|
+
# puts unused_list
|
60
|
+
puts "未被任何地方引用的组件:#{unused_list}"
|
61
|
+
end
|
62
|
+
|
63
|
+
if uninstall_list.size > 0
|
64
|
+
# puts uninstall_list
|
65
|
+
puts "被移除组件:#{uninstall_list}"
|
66
|
+
uninstaller.uninstall(uninstall_list)
|
48
67
|
end
|
49
68
|
|
50
69
|
duration = ((Time.now.to_f * 1000).to_i - start)*0.001
|
51
|
-
puts "
|
70
|
+
puts "未被引用的组件处理完毕! 共检查#{installed_modules.size.to_s}个组件 耗时:#{duration.round(2)}秒"
|
52
71
|
end
|
53
72
|
|
54
73
|
# 获取某个库是否在壳工程内被使用
|
data/lib/podfileDep/version.rb
CHANGED
@@ -42,9 +42,27 @@ module Pod
|
|
42
42
|
end
|
43
43
|
|
44
44
|
end
|
45
|
-
class
|
45
|
+
class YamlManager
|
46
46
|
|
47
|
-
|
47
|
+
# 缓存某个的依赖库
|
48
|
+
# {{"module_nameA":["module_nameA", module_nameB]},}
|
49
|
+
attr_accessor :local_yaml_dependencies
|
50
|
+
|
51
|
+
def initialize
|
52
|
+
@local_yaml_dependencies = {}
|
53
|
+
end
|
54
|
+
|
55
|
+
# 单例方法
|
56
|
+
@@instance = YamlManager.new
|
57
|
+
|
58
|
+
# 获取单例
|
59
|
+
def self.share_manager
|
60
|
+
@@instance
|
61
|
+
end
|
62
|
+
|
63
|
+
private_class_method :new
|
64
|
+
|
65
|
+
def analysis_yaml(podfile, old)
|
48
66
|
|
49
67
|
# 获取targets列表
|
50
68
|
project_manager = XCProject::XcodeprojManager.share_manager
|
@@ -56,25 +74,26 @@ module Pod
|
|
56
74
|
podfile_third_party_yaml = Constants::PODFILE_THIRD_PARTY_YAML
|
57
75
|
|
58
76
|
# 检查参数
|
59
|
-
|
77
|
+
check_param(targets)
|
60
78
|
|
61
79
|
# 生成YAML文件
|
62
|
-
|
63
|
-
|
64
|
-
|
80
|
+
generate_local_yaml(podfile_local_yaml)
|
81
|
+
generate_module_yaml(podfile_module_yaml, "# 企业内部组件")
|
82
|
+
generate_module_yaml(podfile_third_party_yaml, "# 第三方维护组件")
|
65
83
|
|
66
84
|
# 读取yaml依赖
|
67
85
|
yaml_dependencies = {}
|
68
|
-
|
69
|
-
|
70
|
-
|
86
|
+
read_yaml_dependencies(podfile_third_party_yaml,false ,yaml_dependencies)
|
87
|
+
local_yaml_dependencies = yaml_dependencies #这里记录下
|
88
|
+
read_yaml_dependencies(podfile_module_yaml,false ,yaml_dependencies)
|
89
|
+
read_yaml_dependencies(podfile_local_yaml,true ,yaml_dependencies)
|
71
90
|
|
72
91
|
# 打印依赖
|
73
|
-
|
92
|
+
print_dependencies(yaml_dependencies)
|
74
93
|
|
75
94
|
# 为所有target生成依赖
|
76
95
|
targets_dependencies = {}
|
77
|
-
|
96
|
+
update_target_dependencies(targets, yaml_dependencies, targets_dependencies)
|
78
97
|
|
79
98
|
# 兼容老方式
|
80
99
|
if old
|
@@ -82,11 +101,11 @@ module Pod
|
|
82
101
|
end
|
83
102
|
|
84
103
|
# 存储所有依赖
|
85
|
-
|
104
|
+
store_dependencies(targets_dependencies, podfile)
|
86
105
|
|
87
106
|
end
|
88
107
|
|
89
|
-
def
|
108
|
+
def store_dependencies(targets, podfile)
|
90
109
|
# 存储所有的依赖
|
91
110
|
targets.each { |name, dependencies|
|
92
111
|
podfile.target name do
|
@@ -104,7 +123,7 @@ module Pod
|
|
104
123
|
end
|
105
124
|
|
106
125
|
# 检查方法调用的参数
|
107
|
-
def
|
126
|
+
def check_param(targets)
|
108
127
|
msg = "❌ 参数需要填写target名字, 参数类型是字符串格式的数组。例如[\"test1\", \"test2\"]"
|
109
128
|
unless targets.class == Array
|
110
129
|
puts msg
|
@@ -120,7 +139,7 @@ module Pod
|
|
120
139
|
end
|
121
140
|
|
122
141
|
# 校验yaml文件写法是否正确
|
123
|
-
def
|
142
|
+
def yaml_content(yaml_name)
|
124
143
|
unless File.exist?(yaml_name)
|
125
144
|
puts "文件不存在:"+yaml_name
|
126
145
|
return nil
|
@@ -166,10 +185,10 @@ module Pod
|
|
166
185
|
end
|
167
186
|
|
168
187
|
# 读取yaml依赖
|
169
|
-
def
|
188
|
+
def read_yaml_dependencies(yaml_name, can_cover, yaml_dependencies)
|
170
189
|
|
171
190
|
# 检查写法
|
172
|
-
yaml_content =
|
191
|
+
yaml_content = yaml_content(yaml_name)
|
173
192
|
|
174
193
|
unless yaml_content
|
175
194
|
return
|
@@ -202,7 +221,7 @@ module Pod
|
|
202
221
|
dependency.each_key { |key|
|
203
222
|
unless available_keys.include?(key)
|
204
223
|
gem_name = "yaml_relies"
|
205
|
-
puts "❌ #{yaml_name}: 当前#{gem_name}版本(#{
|
224
|
+
puts "❌ #{yaml_name}: 当前#{gem_name}版本(#{PodfileDep::VERSION})不支持字段#{key}"
|
206
225
|
puts "请检查对应字段或尝试执行如下命令升级"
|
207
226
|
puts "gem uninstall #{gem_name} && gem install #{gem_name}"
|
208
227
|
exit!
|
@@ -297,7 +316,7 @@ module Pod
|
|
297
316
|
end
|
298
317
|
|
299
318
|
# 生成传进来的target的依赖库列表
|
300
|
-
def
|
319
|
+
def update_target_dependencies(targets, yaml_dependencies, targets_dependencies)
|
301
320
|
temp_array = []
|
302
321
|
yaml_dependencies.each_value { |value|
|
303
322
|
temp_array << value
|
@@ -308,7 +327,7 @@ module Pod
|
|
308
327
|
}
|
309
328
|
end
|
310
329
|
|
311
|
-
def
|
330
|
+
def print_dependencies(yaml_dependencies)
|
312
331
|
puts "➡️ 解析依赖总数共计:#{yaml_dependencies.size}个\n\n"
|
313
332
|
puts '⬇️ 打印依赖'
|
314
333
|
yaml_dependencies.each_value { |dependency|
|
@@ -347,8 +366,12 @@ module Pod
|
|
347
366
|
puts "⬆️ 打印完毕"
|
348
367
|
end
|
349
368
|
|
369
|
+
def local_yaml_contain(module_name)
|
370
|
+
return local_yaml_dependencies.keys.include?(module_name)
|
371
|
+
end
|
372
|
+
|
350
373
|
# 是否需要快速编译
|
351
|
-
def
|
374
|
+
def quick_build
|
352
375
|
|
353
376
|
podfile_local_yaml = Constants::PODFILE_LOCAL_YAML
|
354
377
|
|
@@ -364,11 +387,11 @@ module Pod
|
|
364
387
|
return false
|
365
388
|
end
|
366
389
|
|
367
|
-
yaml_content["
|
390
|
+
yaml_content["QUICKBUILD"] == true ? true : false
|
368
391
|
end
|
369
392
|
|
370
393
|
# 生成local文件
|
371
|
-
def
|
394
|
+
def generate_local_yaml(podfile_local_yaml)
|
372
395
|
if File.exist?(podfile_local_yaml)
|
373
396
|
return
|
374
397
|
end
|
@@ -379,8 +402,8 @@ module Pod
|
|
379
402
|
content = content + "# 2、PODS下边的配置是数组形式, 如果有多个就写多个\n"
|
380
403
|
content = content + "# 3、本文件加入到忽略文件中\n\n"
|
381
404
|
|
382
|
-
# content = content + "#
|
383
|
-
# content = content + "
|
405
|
+
# content = content + "# QUICKBUILD字段如果为true, 则表示会自动解析所有组件的依赖, 并删除不被使用的依赖库, 以达到开发时快速编译的目的\n"
|
406
|
+
# content = content + "QUICKBUILD: false\n\n"
|
384
407
|
|
385
408
|
content = content + "PODS:\n"
|
386
409
|
|
@@ -404,7 +427,7 @@ module Pod
|
|
404
427
|
end
|
405
428
|
|
406
429
|
# 生成其他的yaml文件
|
407
|
-
def
|
430
|
+
def generate_module_yaml(yaml_name, prefix)
|
408
431
|
if File.exist?(yaml_name)
|
409
432
|
return
|
410
433
|
end
|
data/lib/podfileDep.rb
CHANGED
@@ -9,7 +9,7 @@ module Pod
|
|
9
9
|
plugin("podfileDep")
|
10
10
|
|
11
11
|
# 解析依赖
|
12
|
-
Pod::
|
12
|
+
Pod::YamlManager.share_manager.analysis_yaml(self, false)
|
13
13
|
|
14
14
|
end
|
15
15
|
end
|
@@ -18,7 +18,7 @@ end
|
|
18
18
|
# 兼容旧的方式
|
19
19
|
module PodfileDep
|
20
20
|
def PodfileDep.setup(targets)
|
21
|
-
res = Pod::
|
21
|
+
res = Pod::YamlManager.share_manager.analysis_yaml(nil, true)
|
22
22
|
warn "\n⚠️ [PodfileDep.setup方法已过期],请使用新的方式, 参考:https://gitee.com/sourceiOS/podfileDepDemo/blob/master/Podfile\n"
|
23
23
|
res
|
24
24
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: podfileDep
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- 王帅朋
|
@@ -63,6 +63,7 @@ files:
|
|
63
63
|
- lib/podfileDep/modify/modify_code.rb
|
64
64
|
- lib/podfileDep/podfilelock.rb
|
65
65
|
- lib/podfileDep/reference/project.rb
|
66
|
+
- lib/podfileDep/reference/uninstall.rb
|
66
67
|
- lib/podfileDep/reference/unused.rb
|
67
68
|
- lib/podfileDep/version.rb
|
68
69
|
- lib/podfileDep/yaml/yaml_dep.rb
|