yk_command 0.4.5 → 0.4.6

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.
Files changed (29) hide show
  1. checksums.yaml +4 -4
  2. data/.idea/yk_command.iml +20 -21
  3. data/Gemfile.lock +30 -32
  4. data/lib/yk_command/analyze/analyze.rb +153 -0
  5. data/lib/yk_command/{dependency_handler.rb → analyze/dependency_handler.rb} +0 -0
  6. data/lib/yk_command/analyze/dependency_result.rb +143 -0
  7. data/lib/yk_command/{request.rb → analyze/request.rb} +0 -0
  8. data/lib/yk_command/commands.rb +9 -300
  9. data/lib/yk_command/{template → module/template}/objc/CategoryHeader.h +0 -0
  10. data/lib/yk_command/{template → module/template}/objc/PrefixHeader.pch +0 -0
  11. data/lib/yk_command/{template → module/template}/objc/RouterDefine.h +0 -0
  12. data/lib/yk_command/{template → module/template}/objc/RouterRegister.h +0 -0
  13. data/lib/yk_command/{template → module/template}/objc/RouterRegister.m +0 -0
  14. data/lib/yk_command/{template → module/template}/objc/ServiceProtocol.h +0 -0
  15. data/lib/yk_command/{template → module/template}/objc/ServiceRegister.h +0 -0
  16. data/lib/yk_command/{template → module/template}/objc/ServiceRegister.m +0 -0
  17. data/lib/yk_command/{template → module/template}/objc/ToolsHeader.h +0 -0
  18. data/lib/yk_command/{template → module/template}/objc/VendorHeader.h +0 -0
  19. data/lib/yk_command/{template → module/template}/objc/demo/DemoViewController.h +0 -0
  20. data/lib/yk_command/{template → module/template}/objc/demo/DemoViewController.m +0 -0
  21. data/lib/yk_command/{template → module/template}/objc/demo/DemoViewModel.h +0 -0
  22. data/lib/yk_command/{template → module/template}/objc/demo/DemoViewModel.m +0 -0
  23. data/lib/yk_command/{template → module/template}/swift/RouterDefine.swift +0 -0
  24. data/lib/yk_command/module/yk_module.rb +226 -0
  25. data/lib/yk_command/version.rb +1 -1
  26. data/yk_command.gemspec +2 -3
  27. metadata +29 -42
  28. data/lib/yk_command/analyze.rb +0 -129
  29. data/lib/yk_command/yk_module.rb +0 -0
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yk_command
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.5
4
+ version: 0.4.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Major Tom
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-05-12 00:00:00.000000000 Z
11
+ date: 2022-05-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -136,20 +136,6 @@ dependencies:
136
136
  - - ">="
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
- - !ruby/object:Gem::Dependency
140
- name: gitlab
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - ">="
144
- - !ruby/object:Gem::Version
145
- version: '0'
146
- type: :development
147
- prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - ">="
151
- - !ruby/object:Gem::Version
152
- version: '0'
153
139
  - !ruby/object:Gem::Dependency
154
140
  name: git
155
141
  requirement: !ruby/object:Gem::Requirement
@@ -221,7 +207,7 @@ dependencies:
221
207
  - !ruby/object:Gem::Version
222
208
  version: '0'
223
209
  - !ruby/object:Gem::Dependency
224
- name: pathname
210
+ name: colored2
225
211
  requirement: !ruby/object:Gem::Requirement
226
212
  requirements:
227
213
  - - ">="
@@ -235,21 +221,21 @@ dependencies:
235
221
  - !ruby/object:Gem::Version
236
222
  version: '0'
237
223
  - !ruby/object:Gem::Dependency
238
- name: httparty
224
+ name: pathname
239
225
  requirement: !ruby/object:Gem::Requirement
240
226
  requirements:
241
- - - ">="
227
+ - - '='
242
228
  - !ruby/object:Gem::Version
243
- version: '0'
229
+ version: 0.1.0
244
230
  type: :runtime
245
231
  prerelease: false
246
232
  version_requirements: !ruby/object:Gem::Requirement
247
233
  requirements:
248
- - - ">="
234
+ - - '='
249
235
  - !ruby/object:Gem::Version
250
- version: '0'
236
+ version: 0.1.0
251
237
  - !ruby/object:Gem::Dependency
252
- name: gitlab
238
+ name: httparty
253
239
  requirement: !ruby/object:Gem::Requirement
254
240
  requirements:
255
241
  - - ">="
@@ -290,27 +276,28 @@ files:
290
276
  - images/Xnip2022-04-26_17-27-32.jpg
291
277
  - images/Xnip2022-04-26_17-30-36.jpg
292
278
  - lib/yk_command.rb
293
- - lib/yk_command/analyze.rb
279
+ - lib/yk_command/analyze/analyze.rb
280
+ - lib/yk_command/analyze/dependency_handler.rb
281
+ - lib/yk_command/analyze/dependency_result.rb
282
+ - lib/yk_command/analyze/request.rb
294
283
  - lib/yk_command/commands.rb
295
- - lib/yk_command/dependency_handler.rb
296
- - lib/yk_command/request.rb
297
- - lib/yk_command/template/objc/CategoryHeader.h
298
- - lib/yk_command/template/objc/PrefixHeader.pch
299
- - lib/yk_command/template/objc/RouterDefine.h
300
- - lib/yk_command/template/objc/RouterRegister.h
301
- - lib/yk_command/template/objc/RouterRegister.m
302
- - lib/yk_command/template/objc/ServiceProtocol.h
303
- - lib/yk_command/template/objc/ServiceRegister.h
304
- - lib/yk_command/template/objc/ServiceRegister.m
305
- - lib/yk_command/template/objc/ToolsHeader.h
306
- - lib/yk_command/template/objc/VendorHeader.h
307
- - lib/yk_command/template/objc/demo/DemoViewController.h
308
- - lib/yk_command/template/objc/demo/DemoViewController.m
309
- - lib/yk_command/template/objc/demo/DemoViewModel.h
310
- - lib/yk_command/template/objc/demo/DemoViewModel.m
311
- - lib/yk_command/template/swift/RouterDefine.swift
284
+ - lib/yk_command/module/template/objc/CategoryHeader.h
285
+ - lib/yk_command/module/template/objc/PrefixHeader.pch
286
+ - lib/yk_command/module/template/objc/RouterDefine.h
287
+ - lib/yk_command/module/template/objc/RouterRegister.h
288
+ - lib/yk_command/module/template/objc/RouterRegister.m
289
+ - lib/yk_command/module/template/objc/ServiceProtocol.h
290
+ - lib/yk_command/module/template/objc/ServiceRegister.h
291
+ - lib/yk_command/module/template/objc/ServiceRegister.m
292
+ - lib/yk_command/module/template/objc/ToolsHeader.h
293
+ - lib/yk_command/module/template/objc/VendorHeader.h
294
+ - lib/yk_command/module/template/objc/demo/DemoViewController.h
295
+ - lib/yk_command/module/template/objc/demo/DemoViewController.m
296
+ - lib/yk_command/module/template/objc/demo/DemoViewModel.h
297
+ - lib/yk_command/module/template/objc/demo/DemoViewModel.m
298
+ - lib/yk_command/module/template/swift/RouterDefine.swift
299
+ - lib/yk_command/module/yk_module.rb
312
300
  - lib/yk_command/version.rb
313
- - lib/yk_command/yk_module.rb
314
301
  - sig/yk_command.rbs
315
302
  - yk_command.gemspec
316
303
  - 归档.zip
@@ -1,129 +0,0 @@
1
- require 'cocoapods'
2
- require 'pathname'
3
-
4
- require 'pp'
5
-
6
- require 'tmpdir'
7
- require 'json'
8
- require 'colored2'
9
- module YkCommand
10
- #
11
- # Analyze the project using cocoapods
12
- #
13
- class Analyzer
14
-
15
- def analyze(podfile_dir_path)
16
-
17
-
18
-
19
- @path = Pathname.new(podfile_dir_path)
20
- raise 'absolute path is needed' unless @path.absolute?
21
- Pod::Config.instance.installation_root = @path
22
- @podFile = Pod::Podfile.from_file(@path + 'Podfile')
23
- @podLock = Pod::Lockfile.from_file(@path + 'Podfile.lock')
24
-
25
-
26
- Dir.chdir(podfile_dir_path) do
27
- analyze_with_podfile
28
- end
29
-
30
-
31
- end
32
-
33
-
34
-
35
- def analyze_with_podfile
36
- sandbox = Dir.pwd + '/Pods'
37
- # if @path
38
- # sandbox = Dir.mktmpdir
39
- # else
40
- # end
41
-
42
- analyzer = Pod::Installer::Analyzer.new(
43
- Pod::Sandbox.new(sandbox),
44
- @podFile,
45
- @podLock
46
- )
47
-
48
- specifications = analyzer.analyze.specifications.map(&:root).uniq
49
- podfile_dependency = podfile_dependencies(@podFile)
50
-
51
- map = {}
52
- specifications.each do |s|
53
- map[s.name] = if s.default_subspecs.count > 0
54
- subspecs_with_name(s, s.default_subspecs) + s.dependencies
55
- else
56
- s.subspecs + s.dependencies
57
- end
58
-
59
- subspecs_in_podfile = podfile_dependency.select { |pd|
60
- pd.split('/')[0] == s.name
61
- }
62
- sp = subspecs_in_podfile.map { |sip|
63
- s.subspecs.find { |ss|
64
- ss.name == sip
65
- }
66
- }.compact
67
-
68
- map[s.name] = sp if sp.count != 0
69
- s.subspecs.each do |ss|
70
- map[ss.name] = ss.dependencies
71
- end
72
-
73
- end
74
-
75
- # for performance
76
- dependencies_map = {}
77
- specifications.each do |s|
78
- dependencies_map[s.name] = s
79
- end
80
-
81
- new_map = {}
82
- specifications.each do |s|
83
- new_map[s.name] = find_dependencies(s.name, map, [], dependencies_map, s.name).uniq.sort
84
- end
85
-
86
- new_map
87
- specifications.to_json
88
- end
89
-
90
- def podfile_dependencies(podfile)
91
- res = []
92
- podfile.root_target_definitions.each do |td|
93
- children_definitions = td.recursive_children
94
- children_definitions.each do |cd|
95
- dependencies_hash_array = cd.send(:get_hash_value, 'dependencies')
96
- next if dependencies_hash_array.nil? || dependencies_hash_array.count.zero?
97
-
98
- dependencies_hash_array.each do |item|
99
- next if item.class.name != 'Hash'
100
-
101
- item.each do |name, _|
102
- res.push name
103
- end
104
- end
105
- end
106
- end
107
- res
108
- end
109
-
110
- def find_dependencies(name, map, res, dependencies_map, root_name)
111
- return unless map[name]
112
-
113
- map[name].each do |k|
114
- find_dependencies(k.name, map, res, dependencies_map, root_name)
115
- dependency = dependencies_map[k.name.split('/')[0]]
116
- res.push dependency.name if dependency && dependency.name != root_name
117
- end
118
- res
119
- end
120
-
121
- def subspecs_with_name(spec, subspecs_short_names)
122
- subspecs_short_names.map do |name|
123
- spec.subspecs.find { |ss| ss.name.include? name }
124
- end
125
- end
126
-
127
-
128
- end
129
- end
File without changes