yk_command 0.4.5 → 0.4.6

Sign up to get free protection for your applications and to get access to all the features.
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