yk_command 0.3.5 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.idea/yk_command.iml +70 -61
- data/Gemfile.lock +33 -1
- data/README.html +109 -0
- data/README.md +44 -9
- data/images/Xnip2022-04-26_17-25-30.jpg +0 -0
- data/images/Xnip2022-04-26_17-27-32.jpg +0 -0
- data/images/Xnip2022-04-26_17-30-36.jpg +0 -0
- data/lib/yk_command/analyze.rb +129 -0
- data/lib/yk_command/commands.rb +108 -23
- data/lib/yk_command/dependency_handler.rb +6 -0
- data/lib/yk_command/request.rb +19 -0
- data/lib/yk_command/template/objc/CategoryHeader.h +1 -1
- data/lib/yk_command/template/objc/RouterRegister.m +4 -5
- data/lib/yk_command/template/objc/ServiceRegister.m +1 -1
- data/lib/yk_command/version.rb +1 -1
- data/lib/yk_command/yk_module.rb +0 -0
- data/lib/yk_command.rb +0 -1
- data/yk_command.gemspec +7 -1
- data//345/275/222/346/241/243.zip +0 -0
- metadata +109 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a9f809a06f1a6edfb4851536bc0234ccb9a3639d5ec8263d9f9842fe0d200711
|
4
|
+
data.tar.gz: 207110a66f02a958d2a5cecd52d48568e6e11634eeae328c6c00d2730df3b6f0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 40614da31702f52801e7ee75daa11737de69b25bc58b47b677502eec51651fa0c608912b26055993a9d234703dd2a6dbc36e1c7c1045758f9f9a5f2ce73ab217
|
7
|
+
data.tar.gz: 5a12da7c3578a35cf01d44d737f3bd780aaf651ed63c65be542ea55596fbf81f8b51fb2fca5e364e97f5d88904b201a114cd500a1ed17489d8e4b3377bad9e5e
|
data/.idea/yk_command.iml
CHANGED
@@ -9,83 +9,92 @@
|
|
9
9
|
<sourceFolder url="file://$MODULE_DIR$/spec" isTestSource="true" />
|
10
10
|
<sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
|
11
11
|
</content>
|
12
|
-
<orderEntry type="
|
12
|
+
<orderEntry type="jdk" jdkName="RVM: ruby-2.7.2 [tom]" jdkType="RUBY_SDK" />
|
13
13
|
<orderEntry type="sourceFolder" forTests="false" />
|
14
|
-
<orderEntry type="library" scope="PROVIDED" name="CFPropertyList (v3.0.5, RVM: ruby-2.7.2) [gem]" level="application" />
|
15
|
-
<orderEntry type="library" scope="PROVIDED" name="activesupport (v5.2.7, RVM: ruby-2.7.2) [gem]" level="application" />
|
16
|
-
<orderEntry type="library" scope="PROVIDED" name="addressable (v2.8.0, RVM: ruby-2.7.2) [gem]" level="application" />
|
17
|
-
<orderEntry type="library" scope="PROVIDED" name="algoliasearch (v1.27.5, RVM: ruby-2.7.2) [gem]" level="application" />
|
18
|
-
<orderEntry type="library" scope="PROVIDED" name="ast (v2.4.2, RVM: ruby-2.7.2) [gem]" level="application" />
|
19
|
-
<orderEntry type="library" scope="PROVIDED" name="atomos (v0.1.3, RVM: ruby-2.7.2) [gem]" level="application" />
|
20
|
-
<orderEntry type="library" scope="PROVIDED" name="bundler (v2.2.33, RVM: ruby-2.7.2) [gem]" level="application" />
|
21
|
-
<orderEntry type="library" scope="PROVIDED" name="claide (v1.1.0, RVM: ruby-2.7.2) [gem]" level="application" />
|
22
|
-
<orderEntry type="library" scope="PROVIDED" name="cocoapods (v1.11.3, RVM: ruby-2.7.2) [gem]" level="application" />
|
23
|
-
<orderEntry type="library" scope="PROVIDED" name="cocoapods-core (v1.11.3, RVM: ruby-2.7.2) [gem]" level="application" />
|
24
|
-
<orderEntry type="library" scope="PROVIDED" name="cocoapods-deintegrate (v1.0.5, RVM: ruby-2.7.2) [gem]" level="application" />
|
25
|
-
<orderEntry type="library" scope="PROVIDED" name="cocoapods-downloader (v1.6.1, RVM: ruby-2.7.2) [gem]" level="application" />
|
26
|
-
<orderEntry type="library" scope="PROVIDED" name="cocoapods-plugins (v1.0.0, RVM: ruby-2.7.2) [gem]" level="application" />
|
27
|
-
<orderEntry type="library" scope="PROVIDED" name="cocoapods-search (v1.0.1, RVM: ruby-2.7.2) [gem]" level="application" />
|
28
|
-
<orderEntry type="library" scope="PROVIDED" name="cocoapods-trunk (v1.6.0, RVM: ruby-2.7.2) [gem]" level="application" />
|
29
|
-
<orderEntry type="library" scope="PROVIDED" name="cocoapods-try (v1.2.0, RVM: ruby-2.7.2) [gem]" level="application" />
|
30
|
-
<orderEntry type="library" scope="PROVIDED" name="colored (v1.2, RVM: ruby-2.7.2) [gem]" level="application" />
|
31
|
-
<orderEntry type="library" scope="PROVIDED" name="colored2 (v3.1.2, RVM: ruby-2.7.2) [gem]" level="application" />
|
32
|
-
<orderEntry type="library" scope="PROVIDED" name="concurrent-ruby (v1.1.10, RVM: ruby-2.7.2) [gem]" level="application" />
|
33
|
-
<orderEntry type="library" scope="PROVIDED" name="diff-lcs (v1.5.0, RVM: ruby-2.7.2) [gem]" level="application" />
|
34
|
-
<orderEntry type="library" scope="PROVIDED" name="escape (v0.0.4, RVM: ruby-2.7.2) [gem]" level="application" />
|
35
|
-
<orderEntry type="library" scope="PROVIDED" name="ethon (v0.15.0, RVM: ruby-2.7.2) [gem]" level="application" />
|
36
|
-
<orderEntry type="library" scope="PROVIDED" name="ffi (v1.15.5, RVM: ruby-2.7.2) [gem]" level="application" />
|
37
|
-
<orderEntry type="library" scope="PROVIDED" name="fourflusher (v2.3.1, RVM: ruby-2.7.2) [gem]" level="application" />
|
38
|
-
<orderEntry type="library" scope="PROVIDED" name="fuzzy_match (v2.0.4, RVM: ruby-2.7.2) [gem]" level="application" />
|
39
|
-
<orderEntry type="library" scope="PROVIDED" name="gh_inspector (v1.1.3, RVM: ruby-2.7.2) [gem]" level="application" />
|
40
|
-
<orderEntry type="library" scope="PROVIDED" name="
|
41
|
-
<orderEntry type="library" scope="PROVIDED" name="
|
42
|
-
<orderEntry type="library" scope="PROVIDED" name="
|
43
|
-
<orderEntry type="library" scope="PROVIDED" name="
|
44
|
-
<orderEntry type="library" scope="PROVIDED" name="
|
45
|
-
<orderEntry type="library" scope="PROVIDED" name="
|
46
|
-
<orderEntry type="library" scope="PROVIDED" name="
|
47
|
-
<orderEntry type="library" scope="PROVIDED" name="
|
48
|
-
<orderEntry type="library" scope="PROVIDED" name="
|
49
|
-
<orderEntry type="library" scope="PROVIDED" name="
|
50
|
-
<orderEntry type="library" scope="PROVIDED" name="
|
51
|
-
<orderEntry type="library" scope="PROVIDED" name="
|
52
|
-
<orderEntry type="library" scope="PROVIDED" name="
|
53
|
-
<orderEntry type="library" scope="PROVIDED" name="
|
54
|
-
<orderEntry type="library" scope="PROVIDED" name="
|
55
|
-
<orderEntry type="library" scope="PROVIDED" name="
|
56
|
-
<orderEntry type="library" scope="PROVIDED" name="
|
57
|
-
<orderEntry type="library" scope="PROVIDED" name="
|
58
|
-
<orderEntry type="library" scope="PROVIDED" name="
|
59
|
-
<orderEntry type="library" scope="PROVIDED" name="
|
60
|
-
<orderEntry type="library" scope="PROVIDED" name="
|
61
|
-
<orderEntry type="library" scope="PROVIDED" name="
|
62
|
-
<orderEntry type="library" scope="PROVIDED" name="
|
63
|
-
<orderEntry type="library" scope="PROVIDED" name="
|
64
|
-
<orderEntry type="library" scope="PROVIDED" name="
|
65
|
-
<orderEntry type="library" scope="PROVIDED" name="
|
66
|
-
<orderEntry type="library" scope="PROVIDED" name="
|
67
|
-
<orderEntry type="library" scope="PROVIDED" name="
|
68
|
-
<orderEntry type="library" scope="PROVIDED" name="
|
14
|
+
<orderEntry type="library" scope="PROVIDED" name="CFPropertyList (v3.0.5, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
15
|
+
<orderEntry type="library" scope="PROVIDED" name="activesupport (v5.2.7, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
16
|
+
<orderEntry type="library" scope="PROVIDED" name="addressable (v2.8.0, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
17
|
+
<orderEntry type="library" scope="PROVIDED" name="algoliasearch (v1.27.5, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
18
|
+
<orderEntry type="library" scope="PROVIDED" name="ast (v2.4.2, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
19
|
+
<orderEntry type="library" scope="PROVIDED" name="atomos (v0.1.3, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
20
|
+
<orderEntry type="library" scope="PROVIDED" name="bundler (v2.2.33, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
21
|
+
<orderEntry type="library" scope="PROVIDED" name="claide (v1.1.0, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
22
|
+
<orderEntry type="library" scope="PROVIDED" name="cocoapods (v1.11.3, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
23
|
+
<orderEntry type="library" scope="PROVIDED" name="cocoapods-core (v1.11.3, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
24
|
+
<orderEntry type="library" scope="PROVIDED" name="cocoapods-deintegrate (v1.0.5, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
25
|
+
<orderEntry type="library" scope="PROVIDED" name="cocoapods-downloader (v1.6.1, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
26
|
+
<orderEntry type="library" scope="PROVIDED" name="cocoapods-plugins (v1.0.0, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
27
|
+
<orderEntry type="library" scope="PROVIDED" name="cocoapods-search (v1.0.1, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
28
|
+
<orderEntry type="library" scope="PROVIDED" name="cocoapods-trunk (v1.6.0, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
29
|
+
<orderEntry type="library" scope="PROVIDED" name="cocoapods-try (v1.2.0, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
30
|
+
<orderEntry type="library" scope="PROVIDED" name="colored (v1.2, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
31
|
+
<orderEntry type="library" scope="PROVIDED" name="colored2 (v3.1.2, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
32
|
+
<orderEntry type="library" scope="PROVIDED" name="concurrent-ruby (v1.1.10, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
33
|
+
<orderEntry type="library" scope="PROVIDED" name="diff-lcs (v1.5.0, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
34
|
+
<orderEntry type="library" scope="PROVIDED" name="escape (v0.0.4, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
35
|
+
<orderEntry type="library" scope="PROVIDED" name="ethon (v0.15.0, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
36
|
+
<orderEntry type="library" scope="PROVIDED" name="ffi (v1.15.5, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
37
|
+
<orderEntry type="library" scope="PROVIDED" name="fourflusher (v2.3.1, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
38
|
+
<orderEntry type="library" scope="PROVIDED" name="fuzzy_match (v2.0.4, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
39
|
+
<orderEntry type="library" scope="PROVIDED" name="gh_inspector (v1.1.3, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
40
|
+
<orderEntry type="library" scope="PROVIDED" name="git (v1.10.2, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
41
|
+
<orderEntry type="library" scope="PROVIDED" name="gitlab (v4.18.0, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
42
|
+
<orderEntry type="library" scope="PROVIDED" name="httparty (v0.20.0, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
43
|
+
<orderEntry type="library" scope="PROVIDED" name="httpclient (v2.8.3, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
44
|
+
<orderEntry type="library" scope="PROVIDED" name="i18n (v1.10.0, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
45
|
+
<orderEntry type="library" scope="PROVIDED" name="json (v2.6.1, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
46
|
+
<orderEntry type="library" scope="PROVIDED" name="mime-types (v3.4.1, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
47
|
+
<orderEntry type="library" scope="PROVIDED" name="mime-types-data (v3.2022.0105, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
48
|
+
<orderEntry type="library" scope="PROVIDED" name="minitest (v5.15.0, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
49
|
+
<orderEntry type="library" scope="PROVIDED" name="molinillo (v0.8.0, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
50
|
+
<orderEntry type="library" scope="PROVIDED" name="multi_xml (v0.6.0, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
51
|
+
<orderEntry type="library" scope="PROVIDED" name="nanaimo (v0.3.0, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
52
|
+
<orderEntry type="library" scope="PROVIDED" name="nap (v1.1.0, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
53
|
+
<orderEntry type="library" scope="PROVIDED" name="netrc (v0.11.0, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
54
|
+
<orderEntry type="library" scope="PROVIDED" name="parallel (v1.21.0, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
55
|
+
<orderEntry type="library" scope="PROVIDED" name="parser (v2.7.2.0, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
56
|
+
<orderEntry type="library" scope="PROVIDED" name="pathname (v0.2.0, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
57
|
+
<orderEntry type="library" scope="PROVIDED" name="powerpack (v0.1.3, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
58
|
+
<orderEntry type="library" scope="PROVIDED" name="public_suffix (v4.0.6, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
59
|
+
<orderEntry type="library" scope="PROVIDED" name="rainbow (v2.2.2, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
60
|
+
<orderEntry type="library" scope="PROVIDED" name="rake (v13.0.6, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
61
|
+
<orderEntry type="library" scope="PROVIDED" name="rchardet (v1.8.0, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
62
|
+
<orderEntry type="library" scope="PROVIDED" name="rexml (v3.2.5, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
63
|
+
<orderEntry type="library" scope="PROVIDED" name="rspec (v3.11.0, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
64
|
+
<orderEntry type="library" scope="PROVIDED" name="rspec-core (v3.11.0, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
65
|
+
<orderEntry type="library" scope="PROVIDED" name="rspec-expectations (v3.11.0, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
66
|
+
<orderEntry type="library" scope="PROVIDED" name="rspec-mocks (v3.11.0, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
67
|
+
<orderEntry type="library" scope="PROVIDED" name="rspec-support (v3.11.0, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
68
|
+
<orderEntry type="library" scope="PROVIDED" name="rubocop (v0.50.0, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
69
|
+
<orderEntry type="library" scope="PROVIDED" name="ruby-macho (v2.5.1, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
70
|
+
<orderEntry type="library" scope="PROVIDED" name="ruby-progressbar (v1.11.0, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
71
|
+
<orderEntry type="library" scope="PROVIDED" name="terminal-table (v3.0.2, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
72
|
+
<orderEntry type="library" scope="PROVIDED" name="thor (v1.2.1, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
73
|
+
<orderEntry type="library" scope="PROVIDED" name="thread_safe (v0.3.6, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
74
|
+
<orderEntry type="library" scope="PROVIDED" name="typhoeus (v1.4.0, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
75
|
+
<orderEntry type="library" scope="PROVIDED" name="tzinfo (v1.2.9, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
76
|
+
<orderEntry type="library" scope="PROVIDED" name="unicode-display_width (v1.8.0, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
77
|
+
<orderEntry type="library" scope="PROVIDED" name="xcodeproj (v1.21.0, RVM: ruby-2.7.2 [tom]) [gem]" level="application" />
|
69
78
|
</component>
|
70
79
|
<component name="RakeTasksCache">
|
71
80
|
<option name="myRootTask">
|
72
81
|
<RakeTaskImpl id="rake">
|
73
82
|
<subtasks>
|
74
|
-
<RakeTaskImpl description="Build yk_command-0.
|
83
|
+
<RakeTaskImpl description="Build yk_command-0.3.6.gem into the pkg directory" fullCommand="build" id="build" />
|
75
84
|
<RakeTaskImpl id="build">
|
76
85
|
<subtasks>
|
77
|
-
<RakeTaskImpl description="Generate SHA512 checksum if yk_command-0.
|
86
|
+
<RakeTaskImpl description="Generate SHA512 checksum if yk_command-0.3.6.gem into the checksums directory" fullCommand="build:checksum" id="checksum" />
|
78
87
|
</subtasks>
|
79
88
|
</RakeTaskImpl>
|
80
89
|
<RakeTaskImpl description="Remove any temporary products" fullCommand="clean" id="clean" />
|
81
90
|
<RakeTaskImpl description="Remove any generated files" fullCommand="clobber" id="clobber" />
|
82
|
-
<RakeTaskImpl description="Build and install yk_command-0.
|
91
|
+
<RakeTaskImpl description="Build and install yk_command-0.3.6.gem into system gems" fullCommand="install" id="install" />
|
83
92
|
<RakeTaskImpl id="install">
|
84
93
|
<subtasks>
|
85
|
-
<RakeTaskImpl description="Build and install yk_command-0.
|
94
|
+
<RakeTaskImpl description="Build and install yk_command-0.3.6.gem into system gems without network access" fullCommand="install:local" id="local" />
|
86
95
|
</subtasks>
|
87
96
|
</RakeTaskImpl>
|
88
|
-
<RakeTaskImpl description="Create tag v0.
|
97
|
+
<RakeTaskImpl description="Create tag v0.3.6 and build and push yk_command-0.3.6.gem to rubygems.org" fullCommand="release[remote]" id="release[remote]" />
|
89
98
|
<RakeTaskImpl description="" fullCommand="default" id="default" />
|
90
99
|
<RakeTaskImpl description="" fullCommand="release" id="release" />
|
91
100
|
<RakeTaskImpl id="release">
|
data/Gemfile.lock
CHANGED
@@ -1,9 +1,14 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
yk_command (0.
|
4
|
+
yk_command (0.4.0)
|
5
|
+
async
|
5
6
|
bundler
|
6
7
|
colored
|
8
|
+
git
|
9
|
+
gitlab
|
10
|
+
httparty
|
11
|
+
pathname
|
7
12
|
thor
|
8
13
|
xcodeproj
|
9
14
|
|
@@ -23,6 +28,10 @@ GEM
|
|
23
28
|
httpclient (~> 2.8, >= 2.8.3)
|
24
29
|
json (>= 1.5.1)
|
25
30
|
ast (2.4.2)
|
31
|
+
async (1.30.2)
|
32
|
+
console (~> 1.10)
|
33
|
+
nio4r (~> 2.3)
|
34
|
+
timers (~> 4.1)
|
26
35
|
atomos (0.1.3)
|
27
36
|
claide (1.1.0)
|
28
37
|
cocoapods (1.11.3)
|
@@ -65,31 +74,49 @@ GEM
|
|
65
74
|
colored (1.2)
|
66
75
|
colored2 (3.1.2)
|
67
76
|
concurrent-ruby (1.1.10)
|
77
|
+
console (1.15.0)
|
78
|
+
fiber-local
|
68
79
|
diff-lcs (1.5.0)
|
69
80
|
escape (0.0.4)
|
70
81
|
ethon (0.15.0)
|
71
82
|
ffi (>= 1.15.0)
|
72
83
|
ffi (1.15.5)
|
84
|
+
fiber-local (1.0.0)
|
73
85
|
fourflusher (2.3.1)
|
74
86
|
fuzzy_match (2.0.4)
|
75
87
|
gh_inspector (1.1.3)
|
88
|
+
git (1.10.2)
|
89
|
+
rchardet (~> 1.8)
|
90
|
+
gitlab (4.18.0)
|
91
|
+
httparty (~> 0.18)
|
92
|
+
terminal-table (>= 1.5.1)
|
93
|
+
httparty (0.20.0)
|
94
|
+
mime-types (~> 3.0)
|
95
|
+
multi_xml (>= 0.5.2)
|
76
96
|
httpclient (2.8.3)
|
77
97
|
i18n (1.10.0)
|
78
98
|
concurrent-ruby (~> 1.0)
|
79
99
|
json (2.6.1)
|
100
|
+
mime-types (3.4.1)
|
101
|
+
mime-types-data (~> 3.2015)
|
102
|
+
mime-types-data (3.2022.0105)
|
80
103
|
minitest (5.15.0)
|
81
104
|
molinillo (0.8.0)
|
105
|
+
multi_xml (0.6.0)
|
82
106
|
nanaimo (0.3.0)
|
83
107
|
nap (1.1.0)
|
84
108
|
netrc (0.11.0)
|
109
|
+
nio4r (2.5.8)
|
85
110
|
parallel (1.21.0)
|
86
111
|
parser (2.7.2.0)
|
87
112
|
ast (~> 2.4.1)
|
113
|
+
pathname (0.2.0)
|
88
114
|
powerpack (0.1.3)
|
89
115
|
public_suffix (4.0.6)
|
90
116
|
rainbow (2.2.2)
|
91
117
|
rake
|
92
118
|
rake (13.0.6)
|
119
|
+
rchardet (1.8.0)
|
93
120
|
rexml (3.2.5)
|
94
121
|
rspec (3.11.0)
|
95
122
|
rspec-core (~> 3.11.0)
|
@@ -113,8 +140,11 @@ GEM
|
|
113
140
|
unicode-display_width (~> 1.0, >= 1.0.1)
|
114
141
|
ruby-macho (2.5.1)
|
115
142
|
ruby-progressbar (1.11.0)
|
143
|
+
terminal-table (3.0.2)
|
144
|
+
unicode-display_width (>= 1.1.1, < 3)
|
116
145
|
thor (1.2.1)
|
117
146
|
thread_safe (0.3.6)
|
147
|
+
timers (4.3.3)
|
118
148
|
typhoeus (1.4.0)
|
119
149
|
ethon (>= 0.9.0)
|
120
150
|
tzinfo (1.2.9)
|
@@ -137,6 +167,8 @@ DEPENDENCIES
|
|
137
167
|
cocoapods-core
|
138
168
|
colored
|
139
169
|
colored2
|
170
|
+
gitlab
|
171
|
+
httparty
|
140
172
|
rake (~> 13.0)
|
141
173
|
rspec (~> 3.2)
|
142
174
|
rubocop
|
data/README.html
ADDED
@@ -0,0 +1,109 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta charset="UTF-8">
|
5
|
+
<title>YkCommand</title>
|
6
|
+
<style>
|
7
|
+
/* From extension vscode.github */
|
8
|
+
/*---------------------------------------------------------------------------------------------
|
9
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
10
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
11
|
+
*--------------------------------------------------------------------------------------------*/
|
12
|
+
|
13
|
+
.vscode-dark img[src$=\#gh-light-mode-only],
|
14
|
+
.vscode-light img[src$=\#gh-dark-mode-only] {
|
15
|
+
display: none;
|
16
|
+
}
|
17
|
+
|
18
|
+
/* From extension vscode.markdown-math */
|
19
|
+
@font-face{font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(fonts/KaTeX_AMS-Regular.woff2) format("woff2"),url(fonts/KaTeX_AMS-Regular.woff) format("woff"),url(fonts/KaTeX_AMS-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Caligraphic-Bold.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Bold.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Caligraphic-Regular.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Regular.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Fraktur-Bold.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Bold.woff) format("woff"),url(fonts/KaTeX_Fraktur-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Fraktur-Regular.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Regular.woff) format("woff"),url(fonts/KaTeX_Fraktur-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Main-Bold.woff2) format("woff2"),url(fonts/KaTeX_Main-Bold.woff) format("woff"),url(fonts/KaTeX_Main-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(fonts/KaTeX_Main-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Main-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Main-BoldItalic.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(fonts/KaTeX_Main-Italic.woff2) format("woff2"),url(fonts/KaTeX_Main-Italic.woff) format("woff"),url(fonts/KaTeX_Main-Italic.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Main-Regular.woff2) format("woff2"),url(fonts/KaTeX_Main-Regular.woff) format("woff"),url(fonts/KaTeX_Main-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(fonts/KaTeX_Math-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Math-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Math-BoldItalic.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(fonts/KaTeX_Math-Italic.woff2) format("woff2"),url(fonts/KaTeX_Math-Italic.woff) format("woff"),url(fonts/KaTeX_Math-Italic.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:normal;font-weight:700;src:url(fonts/KaTeX_SansSerif-Bold.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Bold.woff) format("woff"),url(fonts/KaTeX_SansSerif-Bold.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:italic;font-weight:400;src:url(fonts/KaTeX_SansSerif-Italic.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Italic.woff) format("woff"),url(fonts/KaTeX_SansSerif-Italic.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:normal;font-weight:400;src:url(fonts/KaTeX_SansSerif-Regular.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Regular.woff) format("woff"),url(fonts/KaTeX_SansSerif-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Script-Regular.woff2) format("woff2"),url(fonts/KaTeX_Script-Regular.woff) format("woff"),url(fonts/KaTeX_Script-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size1-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size1-Regular.woff) format("woff"),url(fonts/KaTeX_Size1-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size2-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size2-Regular.woff) format("woff"),url(fonts/KaTeX_Size2-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size3-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size3-Regular.woff) format("woff"),url(fonts/KaTeX_Size3-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size4-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size4-Regular.woff) format("woff"),url(fonts/KaTeX_Size4-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Typewriter-Regular.woff2) format("woff2"),url(fonts/KaTeX_Typewriter-Regular.woff) format("woff"),url(fonts/KaTeX_Typewriter-Regular.ttf) format("truetype")}.katex{text-rendering:auto;font:normal 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;text-indent:0}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.13.24"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-webkit-min-content;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.27777778em;margin-right:-.55555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.83333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.16666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.66666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.45666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.14666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.71428571em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.85714286em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.14285714em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.28571429em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.42857143em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.71428571em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.05714286em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.46857143em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.96285714em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.55428571em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.55555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.66666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.77777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.88888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.11111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.30444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.76444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.41666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.58333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.66666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.83333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.72833333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.07333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.34722222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.41666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.48611111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.55555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.69444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.83333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.44027778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.72777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.28935185em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.34722222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.40509259em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.46296296em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.52083333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.69444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.83333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.20023148em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.43981481em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.24108004em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.28929605em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.33751205em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.38572806em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.43394407em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.48216008em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.57859209em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.69431051em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.83317261em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.19961427em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.20096463em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.24115756em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.28135048em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.32154341em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.36173633em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.40192926em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.48231511em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.57877814em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.69453376em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.83360129em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo}
|
20
|
+
|
21
|
+
/*---------------------------------------------------------------------------------------------
|
22
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
23
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
24
|
+
*--------------------------------------------------------------------------------------------*/
|
25
|
+
|
26
|
+
.katex-error {
|
27
|
+
color: var(--vscode-editorError-foreground);
|
28
|
+
}
|
29
|
+
|
30
|
+
</style>
|
31
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.10.2/dist/katex.min.css" integrity="sha384-yFRtMMDnQtDRO8rLpMIKrtPCD5jdktao2TV19YiZYWMDkUR5GQZR/NOVTdquEx1j" crossorigin="anonymous">
|
32
|
+
<link href="https://cdn.jsdelivr.net/npm/katex-copytex@latest/dist/katex-copytex.min.css" rel="stylesheet" type="text/css">
|
33
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/Microsoft/vscode/extensions/markdown-language-features/media/markdown.css">
|
34
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/Microsoft/vscode/extensions/markdown-language-features/media/highlight.css">
|
35
|
+
<style>
|
36
|
+
body {
|
37
|
+
font-family: -apple-system, BlinkMacSystemFont, 'Segoe WPC', 'Segoe UI', system-ui, 'Ubuntu', 'Droid Sans', sans-serif;
|
38
|
+
font-size: 14px;
|
39
|
+
line-height: 1.6;
|
40
|
+
}
|
41
|
+
</style>
|
42
|
+
<style>
|
43
|
+
.task-list-item { list-style-type: none; } .task-list-item-checkbox { margin-left: -20px; vertical-align: middle; }
|
44
|
+
</style>
|
45
|
+
|
46
|
+
</head>
|
47
|
+
<body class="vscode-body vscode-light">
|
48
|
+
<h1 id="ykcommand">YkCommand</h1>
|
49
|
+
<h2 id="主要功能">主要功能</h2>
|
50
|
+
<p>1.交互式创建标准业务组件</p>
|
51
|
+
<p>2.命令式直接创建业务组件</p>
|
52
|
+
<h2 id="业务组件初始化功能">业务组件初始化功能</h2>
|
53
|
+
<p>1.自动依赖 三大核心组件和基础组件</p>
|
54
|
+
<p>2.拥有标准的工程目录和export文件和auto-import文件</p>
|
55
|
+
<p>3.拥有规范的podspec文件,和部分强制性的字段</p>
|
56
|
+
<p>4.带有一个 starter demo ,熟悉的人可以自行删除</p>
|
57
|
+
<p>5.创建后可编译通过并运行</p>
|
58
|
+
<h2 id="运行截图">运行截图</h2>
|
59
|
+
<p><img src="file:////images/Xnip2022-04-26_17-25-30.jpg" alt="使用"></p>
|
60
|
+
<h2 id="标准目录">标准目录</h2>
|
61
|
+
<p><img src="file:////images/Xnip2022-04-26_17-27-32.jpg" alt="使用"></p>
|
62
|
+
<h2 id="demo">Demo</h2>
|
63
|
+
<p><img src="file:////images/Xnip2022-04-26_17-30-36.jpg" alt="使用"></p>
|
64
|
+
<h2 id="环境准备">环境准备</h2>
|
65
|
+
<p>准备好Ruby环境 ,依赖于RVM做ruby环境管理</p>
|
66
|
+
<pre><code class="language-shell"><div>\curl -sSL https://get.rvm.io | bash -s stable
|
67
|
+
</div></code></pre>
|
68
|
+
<pre><code class="language-shell"><div>source ~/.zshrc
|
69
|
+
</div></code></pre>
|
70
|
+
<pre><code class="language-shell"><div>rvm install 2.7.2
|
71
|
+
</div></code></pre>
|
72
|
+
<pre><code class="language-shell"><div>rvm gemset create 2.7.2@tom
|
73
|
+
</div></code></pre>
|
74
|
+
<pre><code class="language-shell"><div> rvm use 2.7.2@tom
|
75
|
+
</div></code></pre>
|
76
|
+
<h2 id="安装">安装</h2>
|
77
|
+
<p>手动处理依赖,新版本跳过这一步骤</p>
|
78
|
+
<pre><code>$ gem install cocoapods thor colored2
|
79
|
+
</code></pre>
|
80
|
+
<p>install it yourself as:</p>
|
81
|
+
<pre><code>$ gem install yk_command
|
82
|
+
</code></pre>
|
83
|
+
<p>Or Add this line to your application's Gemfile:</p>
|
84
|
+
<pre><code class="language-ruby"><div>gem <span class="hljs-string">'yk_command'</span>
|
85
|
+
</div></code></pre>
|
86
|
+
<p>And then execute:</p>
|
87
|
+
<pre><code>$ bundle install
|
88
|
+
</code></pre>
|
89
|
+
<h2 id="使用">使用</h2>
|
90
|
+
<pre><code class="language-shell"><div>cd < you folder >
|
91
|
+
</div></code></pre>
|
92
|
+
<p>查看帮助</p>
|
93
|
+
<pre><code class="language-shell"><div>yk_command -h
|
94
|
+
</div></code></pre>
|
95
|
+
<pre><code class="language-shell"><div>yk_command create
|
96
|
+
|
97
|
+
</div></code></pre>
|
98
|
+
<h2 id="开发介绍">开发介绍</h2>
|
99
|
+
<p>依赖的 'gem rake'</p>
|
100
|
+
<pre><code class="language-shell"><div><span class="hljs-meta">$</span><span class="bash"> rake build</span>
|
101
|
+
<span class="hljs-meta">
|
102
|
+
$</span><span class="bash"> rake release</span>
|
103
|
+
|
104
|
+
</div></code></pre>
|
105
|
+
|
106
|
+
<script async src="https://cdn.jsdelivr.net/npm/katex-copytex@latest/dist/katex-copytex.min.js"></script>
|
107
|
+
|
108
|
+
</body>
|
109
|
+
</html>
|
data/README.md
CHANGED
@@ -1,6 +1,36 @@
|
|
1
1
|
# YkCommand
|
2
2
|
|
3
|
-
##
|
3
|
+
## 主要功能
|
4
|
+
|
5
|
+
1.交互式创建标准业务组件
|
6
|
+
|
7
|
+
2.命令式直接创建业务组件
|
8
|
+
|
9
|
+
## 业务组件初始化功能
|
10
|
+
|
11
|
+
1.自动依赖 三大核心组件和基础组件
|
12
|
+
|
13
|
+
2.拥有标准的工程目录和export文件和auto-import文件
|
14
|
+
|
15
|
+
3.拥有规范的podspec文件,和部分强制性的字段
|
16
|
+
|
17
|
+
4.带有一个 starter demo ,熟悉的人可以自行删除
|
18
|
+
|
19
|
+
5.创建后可编译通过并运行
|
20
|
+
|
21
|
+
## 运行截图
|
22
|
+
|
23
|
+
![使用](/images/Xnip2022-04-26_17-25-30.jpg)
|
24
|
+
|
25
|
+
## 标准目录
|
26
|
+
|
27
|
+
![使用](/images/Xnip2022-04-26_17-27-32.jpg)
|
28
|
+
|
29
|
+
## Demo
|
30
|
+
|
31
|
+
![使用](/images/Xnip2022-04-26_17-30-36.jpg)
|
32
|
+
|
33
|
+
## 环境准备
|
4
34
|
|
5
35
|
准备好Ruby环境 ,依赖于RVM做ruby环境管理
|
6
36
|
|
@@ -25,7 +55,9 @@ rvm gemset create 2.7.2@tom
|
|
25
55
|
```
|
26
56
|
|
27
57
|
|
28
|
-
##
|
58
|
+
## 安装
|
59
|
+
|
60
|
+
手动处理依赖,新版本跳过这一步骤
|
29
61
|
|
30
62
|
$ gem install cocoapods thor colored2
|
31
63
|
|
@@ -43,27 +75,30 @@ And then execute:
|
|
43
75
|
|
44
76
|
$ bundle install
|
45
77
|
|
46
|
-
|
47
|
-
## Usage
|
78
|
+
## 使用
|
48
79
|
|
49
80
|
```shell
|
50
81
|
cd < you folder >
|
51
82
|
```
|
83
|
+
查看帮助
|
52
84
|
|
53
85
|
```shell
|
54
|
-
yk_command
|
86
|
+
yk_command -h
|
55
87
|
```
|
56
88
|
|
89
|
+
```shell
|
90
|
+
yk_command create
|
57
91
|
|
58
|
-
|
92
|
+
```
|
59
93
|
|
60
|
-
|
94
|
+
## 开发介绍
|
61
95
|
|
62
|
-
|
96
|
+
依赖的 'gem rake'
|
63
97
|
|
64
98
|
```shell
|
65
99
|
$ rake build
|
66
100
|
|
67
101
|
$ rake release
|
68
102
|
|
69
|
-
```
|
103
|
+
```
|
104
|
+
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,129 @@
|
|
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
|
+
@podFile = Pod::Podfile.from_file(@path + 'Podfile')
|
21
|
+
@podLock = Pod::Lockfile.from_file(@path + 'Podfile.lock')
|
22
|
+
|
23
|
+
raise 'absolute path is needed' unless @path.absolute?
|
24
|
+
|
25
|
+
Dir.chdir(podfile_dir_path) do
|
26
|
+
Pod::Config.instance.installation_root = @path;
|
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
|
data/lib/yk_command/commands.rb
CHANGED
@@ -3,6 +3,9 @@ require 'thor'
|
|
3
3
|
require 'fileutils'
|
4
4
|
require 'psych'
|
5
5
|
require 'yaml'
|
6
|
+
require 'yk_command/analyze'
|
7
|
+
require 'yk_command/request'
|
8
|
+
require 'git'
|
6
9
|
|
7
10
|
module YkCommand
|
8
11
|
class CLI < Thor
|
@@ -12,7 +15,8 @@ module YkCommand
|
|
12
15
|
|
13
16
|
desc 'generate <Path> <Module Name> <Language> <Prefix - 前缀> <Author - 作者>', '直接生成项目 例子: yk_command generate . HomeModule oc MT Tom.Liu '
|
14
17
|
method_option :generate, aliases: '-g'
|
15
|
-
|
18
|
+
|
19
|
+
def generate(path = nil, name, lang, class_prefix, author)
|
16
20
|
@name = name
|
17
21
|
@module = @name
|
18
22
|
@lang = lang
|
@@ -39,6 +43,7 @@ module YkCommand
|
|
39
43
|
|
40
44
|
desc 'create <Path>', '在某个路径下交互式生成项目'
|
41
45
|
method_option :create, aliases: '-c'
|
46
|
+
|
42
47
|
def create(path = nil)
|
43
48
|
path = Dir.pwd if path.nil?
|
44
49
|
|
@@ -91,10 +96,10 @@ module YkCommand
|
|
91
96
|
say '文件作者:', :green
|
92
97
|
author = ask("Author [#{config[:author]}] ?")
|
93
98
|
|
94
|
-
config[:project]
|
95
|
-
config[:language]
|
99
|
+
config[:project] = project.empty? ? config[:project] || '' : project
|
100
|
+
config[:language] = language.empty? ? config[:language] || 'objc' : language
|
96
101
|
config[:class_prefix] = class_prefix.empty? ? config[:class_prefix] || '' : class_prefix
|
97
|
-
config[:author]
|
102
|
+
config[:author] = author.empty? ? config[:author] || '' : author
|
98
103
|
|
99
104
|
File.open(config_file_path, 'w') do |f|
|
100
105
|
f.write config.to_yaml
|
@@ -104,9 +109,9 @@ module YkCommand
|
|
104
109
|
@module = @name
|
105
110
|
@class_prefix = config[:class_prefix]
|
106
111
|
@prefixed_module = config[:class_prefix] + @module
|
107
|
-
@project
|
108
|
-
@author
|
109
|
-
@date
|
112
|
+
@project = config[:project]
|
113
|
+
@author = config[:author]
|
114
|
+
@date = Time.now.strftime('%d/%m/%y')
|
110
115
|
@lang = config[:language]
|
111
116
|
end
|
112
117
|
|
@@ -139,8 +144,6 @@ module YkCommand
|
|
139
144
|
empty_directory path
|
140
145
|
end
|
141
146
|
|
142
|
-
|
143
|
-
|
144
147
|
private_level_folders.each do |folder|
|
145
148
|
path = "#{class_folder_path}/Private/#{folder}"
|
146
149
|
empty_directory path
|
@@ -152,10 +155,10 @@ module YkCommand
|
|
152
155
|
def yk_template_files
|
153
156
|
register_path = "#{@final_path}/#{@name}/Classes/Private/Register"
|
154
157
|
registger = {
|
155
|
-
'RouterRegister.h'
|
156
|
-
'RouterRegister.m'
|
157
|
-
'ServiceRegister.h'
|
158
|
-
'ServiceRegister.m'
|
158
|
+
'RouterRegister.h' => 'RouterRegister',
|
159
|
+
'RouterRegister.m' => 'RouterRegister',
|
160
|
+
'ServiceRegister.h' => 'ServiceRegister',
|
161
|
+
'ServiceRegister.m' => 'ServiceRegister'
|
159
162
|
}
|
160
163
|
|
161
164
|
registger.each do |file_name, _folder|
|
@@ -165,7 +168,7 @@ module YkCommand
|
|
165
168
|
|
166
169
|
public_folder_path = "#{@final_path}/#{@name}/Classes/Public"
|
167
170
|
|
168
|
-
template_code_filename = ['ServiceProtocol.h','RouterDefine.h']
|
171
|
+
template_code_filename = ['ServiceProtocol.h', 'RouterDefine.h']
|
169
172
|
template_code_filename.each do |file_name|
|
170
173
|
final_file = "#{public_folder_path}/#{@prefixed_module}#{file_name}"
|
171
174
|
source = "#{__dir__}/template/objc/#{file_name}"
|
@@ -179,8 +182,6 @@ module YkCommand
|
|
179
182
|
template source, final_file
|
180
183
|
end
|
181
184
|
|
182
|
-
|
183
|
-
|
184
185
|
private_folder_path = "#{@final_path}/#{@name}/Classes/Private"
|
185
186
|
#pch file
|
186
187
|
# pch_file_name = "PrefixHeader.pch"
|
@@ -189,10 +190,10 @@ module YkCommand
|
|
189
190
|
# template source, final_file
|
190
191
|
|
191
192
|
private_level_folder_files = {
|
192
|
-
'PrefixHeader.pch'
|
193
|
-
'CategoryHeader.h'
|
194
|
-
'ToolsHeader.h'
|
195
|
-
'vendorHeader.h'
|
193
|
+
'PrefixHeader.pch' => 'Business',
|
194
|
+
'CategoryHeader.h' => 'Category',
|
195
|
+
'ToolsHeader.h' => 'Tools',
|
196
|
+
'vendorHeader.h' => 'Vendor'
|
196
197
|
}
|
197
198
|
|
198
199
|
private_level_folder_files.each do |file_name, folder|
|
@@ -207,15 +208,13 @@ module YkCommand
|
|
207
208
|
end
|
208
209
|
|
209
210
|
business_demo_path = "#{@final_path}/#{@name}/Classes/Private/Business"
|
210
|
-
demo_replace_file = ['DemoViewController.h','DemoViewController.m','DemoViewModel.h','DemoViewModel.m']
|
211
|
+
demo_replace_file = ['DemoViewController.h', 'DemoViewController.m', 'DemoViewModel.h', 'DemoViewModel.m']
|
211
212
|
demo_replace_file.each do |file_name|
|
212
213
|
final_file = "#{business_demo_path}/Demo/#{@prefixed_module}#{file_name}"
|
213
214
|
source = "#{__dir__}/template/objc/demo/#{file_name}"
|
214
215
|
template source, final_file
|
215
216
|
end
|
216
217
|
|
217
|
-
|
218
|
-
|
219
218
|
Dir.chdir("#{@final_path}/Example") do
|
220
219
|
system 'pod install'
|
221
220
|
system "open './#{@name}.xcworkspace'"
|
@@ -224,6 +223,92 @@ module YkCommand
|
|
224
223
|
|
225
224
|
end
|
226
225
|
|
226
|
+
require 'gitlab'
|
227
|
+
require 'gitlab/paginated_response'
|
228
|
+
|
229
|
+
include Gitlab
|
230
|
+
desc 'dependency <Podfile.lock Path>', '解析Podfile.lock'
|
231
|
+
method_option :dependency, aliases: '-d'
|
232
|
+
|
233
|
+
def dependency(path = nil)
|
234
|
+
say "\ncurrent working folder: #{path}\n"
|
235
|
+
project_path =''
|
236
|
+
project_name =''
|
237
|
+
begin
|
238
|
+
g = Git.open(path,)
|
239
|
+
project_path = Pathname.new(g.lib.git_work_dir)
|
240
|
+
project_name = project_path.split[1]
|
241
|
+
rescue
|
242
|
+
say "No .git folder find in #{path} ,skip folder ... ", :yellow
|
243
|
+
say "\n<--\n", :yellow
|
244
|
+
end
|
245
|
+
|
246
|
+
unless project_name.empty?
|
247
|
+
podfiles = Dir.glob("#{path}/**/Podfile")
|
248
|
+
if !podfiles.empty?
|
249
|
+
begin
|
250
|
+
#开始
|
251
|
+
project_path = podfiles[podfiles.length - 1]
|
252
|
+
podfile_dir = "#{Pathname.new(project_path).dirname}"
|
253
|
+
say "start analyze... path contain [Podfile ,Pods/ ,Podfile.lock] is #{podfile_dir}", :green
|
254
|
+
|
255
|
+
result = Analyzer.new.analyze(podfile_dir)
|
256
|
+
|
257
|
+
app_info = Request.new.get_project_info(project_name)
|
258
|
+
|
259
|
+
if app_info["id"]
|
260
|
+
say "uploading dependencies for project #{project_name} ..."
|
261
|
+
upload_res = Request.new.upload_app_dependency(app_info["id"], result)
|
262
|
+
if upload_res["code"] == 0
|
263
|
+
say "uploaded , Finished ", :green
|
264
|
+
say "\n<-- \n"
|
265
|
+
else
|
266
|
+
say "Error :upload dependencies for project #{project_name} - #{app_info["id"]} failed ", :red
|
267
|
+
say "\n<-- \n"
|
268
|
+
end
|
269
|
+
|
270
|
+
else
|
271
|
+
say "Error :Get App project ID failed , #{project_name}", :red
|
272
|
+
say "\n<-- \n"
|
273
|
+
end
|
274
|
+
|
275
|
+
|
276
|
+
rescue
|
277
|
+
say "Error : #{$!.to_s}", :red
|
278
|
+
# say "Error : #{ $@.to_s}", :red
|
279
|
+
say "Skip folder : #{podfile_dir} ", :red
|
280
|
+
say "\n<-- \n"
|
281
|
+
end #结束
|
282
|
+
|
283
|
+
else
|
284
|
+
say "No podfile find ,Skip folder : #{project_name} ", :yellow
|
285
|
+
say "\n<-- \n"
|
286
|
+
end
|
287
|
+
|
288
|
+
end
|
289
|
+
|
290
|
+
end
|
291
|
+
|
292
|
+
require 'async'
|
293
|
+
|
294
|
+
desc 'workspace_analyze <AppHost Path>', '遍历项目目录 批量上传项目依赖信息'
|
295
|
+
method_option :workspace_analyze, aliases: '-w'
|
296
|
+
|
297
|
+
def workspace_analyze(path = nil)
|
298
|
+
Dir.chdir(path)
|
299
|
+
subdir_list = Dir["*"].reject { |o| not File.directory?(o) }
|
300
|
+
say "Start in Workspace : #{path} ...", :yellow
|
301
|
+
subdir_list.each do |project_dir|
|
302
|
+
say "\n#{Pathname.new(project_dir).split[1]} ", :yellow
|
303
|
+
end
|
304
|
+
say "\n ... start scanning to analyze ...\n\n"
|
305
|
+
|
306
|
+
subdir_list.each { |project_dir|
|
307
|
+
project_path = "#{path}/#{project_dir}"
|
308
|
+
dependency project_path
|
309
|
+
}
|
310
|
+
|
311
|
+
end
|
227
312
|
|
228
313
|
end
|
229
314
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'httparty'
|
2
|
+
module YkCommand
|
3
|
+
class Request
|
4
|
+
include HTTParty
|
5
|
+
base_uri 'http://127.0.0.1:9988/'
|
6
|
+
headers 'Content-Type' => 'application/json'
|
7
|
+
|
8
|
+
|
9
|
+
|
10
|
+
def upload_app_dependency(project_id,data)
|
11
|
+
self.class.post('/dependency/addDependency', query: { "projectId" => project_id },body: data)
|
12
|
+
end
|
13
|
+
|
14
|
+
def get_project_info(app_project_name)
|
15
|
+
self.class.get('/project/projectByName', query: { "name" => app_project_name } )
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
@@ -9,6 +9,6 @@
|
|
9
9
|
#ifndef <%= @prefixed_module %>CategoryHeader_h
|
10
10
|
#define <%= @prefixed_module %>CategoryHeader_h
|
11
11
|
|
12
|
-
#import <
|
12
|
+
#import <MTCategoryComponent/MTCategoryComponentHeader.h>
|
13
13
|
|
14
14
|
#endif /* <%= @prefixed_module %>CategoryHeader_h */
|
@@ -8,9 +8,8 @@
|
|
8
8
|
|
9
9
|
#import "<%= @prefixed_module %>RouterRegister.h"
|
10
10
|
|
11
|
-
#import <
|
12
|
-
|
13
|
-
|
11
|
+
#import <MTBaseKit/MTBaseKitHeader.h>
|
12
|
+
`
|
14
13
|
#import "<%= @prefixed_module %>RouterDefine.h"
|
15
14
|
|
16
15
|
#import "<%= @prefixed_module %>DemoViewController.h"
|
@@ -21,10 +20,10 @@
|
|
21
20
|
|
22
21
|
@YKRouterRegister() {
|
23
22
|
|
24
|
-
[[
|
23
|
+
[[MTRouterComponent shareInstance] registerUrlPartterns:kDemoRouterString error:nil action:^(MTRouterUrlRequest * _Nonnull urlRequest, MTRouterUrlCompletion _Nonnull completetion) {
|
25
24
|
|
26
25
|
<%= @prefixed_module %>DemoViewController *vc = [[<%= @prefixed_module %>DemoViewController alloc] init];
|
27
|
-
[[UIViewController
|
26
|
+
[[UIViewController mt_topViewController].navigationController pushViewController:vc animated:YES];
|
28
27
|
|
29
28
|
}];
|
30
29
|
|
data/lib/yk_command/version.rb
CHANGED
File without changes
|
data/lib/yk_command.rb
CHANGED
data/yk_command.gemspec
CHANGED
@@ -40,12 +40,18 @@ Gem::Specification.new do |spec|
|
|
40
40
|
spec.add_development_dependency 'xcodeproj'
|
41
41
|
spec.add_development_dependency 'cocoapods'
|
42
42
|
spec.add_development_dependency 'cocoapods-core'
|
43
|
+
spec.add_development_dependency 'httparty'
|
44
|
+
spec.add_development_dependency 'gitlab'
|
43
45
|
|
46
|
+
spec.add_dependency 'git'
|
44
47
|
spec.add_dependency 'bundler'
|
45
48
|
spec.add_dependency 'thor'
|
46
49
|
spec.add_dependency 'xcodeproj'
|
47
50
|
spec.add_dependency 'colored'
|
48
|
-
|
51
|
+
spec.add_dependency 'pathname'
|
52
|
+
spec.add_dependency 'httparty'
|
53
|
+
spec.add_dependency 'gitlab'
|
54
|
+
spec.add_dependency 'async'
|
49
55
|
# For more information and examples about making a new gem, checkout our
|
50
56
|
# guide at: https://bundler.io/guides/creating_gem.html
|
51
57
|
end
|
Binary file
|
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
|
+
version: 0.4.0
|
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-
|
11
|
+
date: 2022-05-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -122,6 +122,48 @@ dependencies:
|
|
122
122
|
- - ">="
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: httparty
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
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
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: git
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - ">="
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0'
|
160
|
+
type: :runtime
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - ">="
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0'
|
125
167
|
- !ruby/object:Gem::Dependency
|
126
168
|
name: bundler
|
127
169
|
requirement: !ruby/object:Gem::Requirement
|
@@ -178,6 +220,62 @@ dependencies:
|
|
178
220
|
- - ">="
|
179
221
|
- !ruby/object:Gem::Version
|
180
222
|
version: '0'
|
223
|
+
- !ruby/object:Gem::Dependency
|
224
|
+
name: pathname
|
225
|
+
requirement: !ruby/object:Gem::Requirement
|
226
|
+
requirements:
|
227
|
+
- - ">="
|
228
|
+
- !ruby/object:Gem::Version
|
229
|
+
version: '0'
|
230
|
+
type: :runtime
|
231
|
+
prerelease: false
|
232
|
+
version_requirements: !ruby/object:Gem::Requirement
|
233
|
+
requirements:
|
234
|
+
- - ">="
|
235
|
+
- !ruby/object:Gem::Version
|
236
|
+
version: '0'
|
237
|
+
- !ruby/object:Gem::Dependency
|
238
|
+
name: httparty
|
239
|
+
requirement: !ruby/object:Gem::Requirement
|
240
|
+
requirements:
|
241
|
+
- - ">="
|
242
|
+
- !ruby/object:Gem::Version
|
243
|
+
version: '0'
|
244
|
+
type: :runtime
|
245
|
+
prerelease: false
|
246
|
+
version_requirements: !ruby/object:Gem::Requirement
|
247
|
+
requirements:
|
248
|
+
- - ">="
|
249
|
+
- !ruby/object:Gem::Version
|
250
|
+
version: '0'
|
251
|
+
- !ruby/object:Gem::Dependency
|
252
|
+
name: gitlab
|
253
|
+
requirement: !ruby/object:Gem::Requirement
|
254
|
+
requirements:
|
255
|
+
- - ">="
|
256
|
+
- !ruby/object:Gem::Version
|
257
|
+
version: '0'
|
258
|
+
type: :runtime
|
259
|
+
prerelease: false
|
260
|
+
version_requirements: !ruby/object:Gem::Requirement
|
261
|
+
requirements:
|
262
|
+
- - ">="
|
263
|
+
- !ruby/object:Gem::Version
|
264
|
+
version: '0'
|
265
|
+
- !ruby/object:Gem::Dependency
|
266
|
+
name: async
|
267
|
+
requirement: !ruby/object:Gem::Requirement
|
268
|
+
requirements:
|
269
|
+
- - ">="
|
270
|
+
- !ruby/object:Gem::Version
|
271
|
+
version: '0'
|
272
|
+
type: :runtime
|
273
|
+
prerelease: false
|
274
|
+
version_requirements: !ruby/object:Gem::Requirement
|
275
|
+
requirements:
|
276
|
+
- - ">="
|
277
|
+
- !ruby/object:Gem::Version
|
278
|
+
version: '0'
|
181
279
|
description: a longer description or delete this line.
|
182
280
|
email:
|
183
281
|
- v2top1@163.com
|
@@ -196,13 +294,20 @@ files:
|
|
196
294
|
- ".idea/yk_command.iml"
|
197
295
|
- Gemfile
|
198
296
|
- Gemfile.lock
|
297
|
+
- README.html
|
199
298
|
- README.md
|
200
299
|
- Rakefile
|
201
300
|
- bin/console
|
202
301
|
- bin/setup
|
203
302
|
- bin/yk_command
|
303
|
+
- images/Xnip2022-04-26_17-25-30.jpg
|
304
|
+
- images/Xnip2022-04-26_17-27-32.jpg
|
305
|
+
- images/Xnip2022-04-26_17-30-36.jpg
|
204
306
|
- lib/yk_command.rb
|
307
|
+
- lib/yk_command/analyze.rb
|
205
308
|
- lib/yk_command/commands.rb
|
309
|
+
- lib/yk_command/dependency_handler.rb
|
310
|
+
- lib/yk_command/request.rb
|
206
311
|
- lib/yk_command/template/objc/CategoryHeader.h
|
207
312
|
- lib/yk_command/template/objc/PrefixHeader.pch
|
208
313
|
- lib/yk_command/template/objc/RouterDefine.h
|
@@ -219,8 +324,10 @@ files:
|
|
219
324
|
- lib/yk_command/template/objc/demo/DemoViewModel.m
|
220
325
|
- lib/yk_command/template/swift/RouterDefine.swift
|
221
326
|
- lib/yk_command/version.rb
|
327
|
+
- lib/yk_command/yk_module.rb
|
222
328
|
- sig/yk_command.rbs
|
223
329
|
- yk_command.gemspec
|
330
|
+
- 归档.zip
|
224
331
|
homepage: https://github.com/lyleLH
|
225
332
|
licenses: []
|
226
333
|
metadata:
|