yk_command 0.3.5 → 0.4.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 531091cba50a1620739c885f2e53736e46d212d6d2ad7fb8163c0fabc1223f1c
4
- data.tar.gz: 406baaee0ddf12558cb4757b33ac658abf7d021d42834835fd4e78e90f7f089a
3
+ metadata.gz: a9f809a06f1a6edfb4851536bc0234ccb9a3639d5ec8263d9f9842fe0d200711
4
+ data.tar.gz: 207110a66f02a958d2a5cecd52d48568e6e11634eeae328c6c00d2730df3b6f0
5
5
  SHA512:
6
- metadata.gz: 48e4a6283ccc3458e5afaa5eaeaec65a6df02a0a6b4ee090f3df79f204669f6c458760804b0280ae8597b0c0de724721d0c08785d6369c53df6263523b09648a
7
- data.tar.gz: ee106c424a3a83f51020c2d054dea830e416b4a17882eb6bb5f4bc643b39a87415ef50bdea205fcbcb149af26c50ea0bcb935edbff1f9dbc7f2c49df21f78a81
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="inheritedJdk" />
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="httpclient (v2.8.3, RVM: ruby-2.7.2) [gem]" level="application" />
41
- <orderEntry type="library" scope="PROVIDED" name="i18n (v1.10.0, RVM: ruby-2.7.2) [gem]" level="application" />
42
- <orderEntry type="library" scope="PROVIDED" name="json (v2.6.1, RVM: ruby-2.7.2) [gem]" level="application" />
43
- <orderEntry type="library" scope="PROVIDED" name="minitest (v5.15.0, RVM: ruby-2.7.2) [gem]" level="application" />
44
- <orderEntry type="library" scope="PROVIDED" name="molinillo (v0.8.0, RVM: ruby-2.7.2) [gem]" level="application" />
45
- <orderEntry type="library" scope="PROVIDED" name="nanaimo (v0.3.0, RVM: ruby-2.7.2) [gem]" level="application" />
46
- <orderEntry type="library" scope="PROVIDED" name="nap (v1.1.0, RVM: ruby-2.7.2) [gem]" level="application" />
47
- <orderEntry type="library" scope="PROVIDED" name="netrc (v0.11.0, RVM: ruby-2.7.2) [gem]" level="application" />
48
- <orderEntry type="library" scope="PROVIDED" name="parallel (v1.21.0, RVM: ruby-2.7.2) [gem]" level="application" />
49
- <orderEntry type="library" scope="PROVIDED" name="parser (v2.7.2.0, RVM: ruby-2.7.2) [gem]" level="application" />
50
- <orderEntry type="library" scope="PROVIDED" name="powerpack (v0.1.3, RVM: ruby-2.7.2) [gem]" level="application" />
51
- <orderEntry type="library" scope="PROVIDED" name="public_suffix (v4.0.6, RVM: ruby-2.7.2) [gem]" level="application" />
52
- <orderEntry type="library" scope="PROVIDED" name="rainbow (v2.2.2, RVM: ruby-2.7.2) [gem]" level="application" />
53
- <orderEntry type="library" scope="PROVIDED" name="rake (v13.0.6, RVM: ruby-2.7.2) [gem]" level="application" />
54
- <orderEntry type="library" scope="PROVIDED" name="rexml (v3.2.5, RVM: ruby-2.7.2) [gem]" level="application" />
55
- <orderEntry type="library" scope="PROVIDED" name="rspec (v3.11.0, RVM: ruby-2.7.2) [gem]" level="application" />
56
- <orderEntry type="library" scope="PROVIDED" name="rspec-core (v3.11.0, RVM: ruby-2.7.2) [gem]" level="application" />
57
- <orderEntry type="library" scope="PROVIDED" name="rspec-expectations (v3.11.0, RVM: ruby-2.7.2) [gem]" level="application" />
58
- <orderEntry type="library" scope="PROVIDED" name="rspec-mocks (v3.11.0, RVM: ruby-2.7.2) [gem]" level="application" />
59
- <orderEntry type="library" scope="PROVIDED" name="rspec-support (v3.11.0, RVM: ruby-2.7.2) [gem]" level="application" />
60
- <orderEntry type="library" scope="PROVIDED" name="rubocop (v0.50.0, RVM: ruby-2.7.2) [gem]" level="application" />
61
- <orderEntry type="library" scope="PROVIDED" name="ruby-macho (v2.5.1, RVM: ruby-2.7.2) [gem]" level="application" />
62
- <orderEntry type="library" scope="PROVIDED" name="ruby-progressbar (v1.11.0, RVM: ruby-2.7.2) [gem]" level="application" />
63
- <orderEntry type="library" scope="PROVIDED" name="thor (v1.2.1, RVM: ruby-2.7.2) [gem]" level="application" />
64
- <orderEntry type="library" scope="PROVIDED" name="thread_safe (v0.3.6, RVM: ruby-2.7.2) [gem]" level="application" />
65
- <orderEntry type="library" scope="PROVIDED" name="typhoeus (v1.4.0, RVM: ruby-2.7.2) [gem]" level="application" />
66
- <orderEntry type="library" scope="PROVIDED" name="tzinfo (v1.2.9, RVM: ruby-2.7.2) [gem]" level="application" />
67
- <orderEntry type="library" scope="PROVIDED" name="unicode-display_width (v1.8.0, RVM: ruby-2.7.2) [gem]" level="application" />
68
- <orderEntry type="library" scope="PROVIDED" name="xcodeproj (v1.21.0, RVM: ruby-2.7.2) [gem]" level="application" />
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.2.1.gem into the pkg directory" fullCommand="build" id="build" />
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.2.1.gem into the checksums directory" fullCommand="build:checksum" id="checksum" />
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.2.1.gem into system gems" fullCommand="install" id="install" />
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.2.1.gem into system gems without network access" fullCommand="install:local" id="local" />
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.2.1 and build and push yk_command-0.2.1.gem to rubygems.org" fullCommand="release[remote]" id="release[remote]" />
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.3.5)
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">&#x27;yk_command&#x27;</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 &lt; you folder &gt;
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
- ## Pre install
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
- ## Installation
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 create
86
+ yk_command -h
55
87
  ```
56
88
 
89
+ ```shell
90
+ yk_command create
57
91
 
58
- ## Development
92
+ ```
59
93
 
60
- After checking out the repo, run `bin/setup` to install dependencies. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
94
+ ## 开发介绍
61
95
 
62
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and the created tag, and push the `.gem` file to [rubygems.org](https://rubygems.org).
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
@@ -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
- def generate(path = nil,name,lang ,class_prefix,author)
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] = project.empty? ? config[:project] || '' : project
95
- config[:language] = language.empty? ? config[:language] || 'objc' : 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] = author.empty? ? config[:author] || '' : 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 = config[:project]
108
- @author = config[:author]
109
- @date = Time.now.strftime('%d/%m/%y')
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' => 'RouterRegister',
156
- 'RouterRegister.m' => 'RouterRegister',
157
- 'ServiceRegister.h' => 'ServiceRegister',
158
- 'ServiceRegister.m' => 'ServiceRegister'
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' => 'Business',
193
- 'CategoryHeader.h' => 'Category',
194
- 'ToolsHeader.h' => 'Tools',
195
- 'vendorHeader.h' => 'Vendor'
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,6 @@
1
+ require 'colored2'
2
+ require 'thor'
3
+ require 'fileutils'
4
+ require 'psych'
5
+ require 'yaml'
6
+
@@ -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 <YKCategoryComponent/YKCategoriesComponentHeader.h>
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 <YKRouterComponent/YKRouterComponentHeader.h>
12
- #import <YKCategoryComponent/YKCategoriesComponentHeader.h>
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
- [[YKRouterComponent shareInstance] ykRegisterUrlPartterns:kDemoRouterString error:nil action:^(YKRouterUrlRequest * _Nonnull urlRequest, YKRouterUrlCompletion _Nonnull completetion) {
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 yk_topViewController].navigationController pushViewController:vc animated:YES];
26
+ [[UIViewController mt_topViewController].navigationController pushViewController:vc animated:YES];
28
27
 
29
28
  }];
30
29
 
@@ -7,7 +7,7 @@
7
7
  //
8
8
 
9
9
  #import "<%= @prefixed_module %>ServiceRegister.h"
10
- #import <YKModuleServiceComponent/YKModuleServiceComponentHeader.h>
10
+ #import <MTBaseKit/MTBaseKitHeader.h>
11
11
 
12
12
  #import "<%= @prefixed_module %>ServiceProtocol.h"
13
13
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module YkCommand
4
- VERSION = '0.3.5'.freeze
4
+ VERSION = '0.4.0'.freeze
5
5
  end
File without changes
data/lib/yk_command.rb CHANGED
@@ -2,7 +2,6 @@
2
2
 
3
3
  require 'yk_command/version'
4
4
  require 'yk_command/commands'
5
-
6
5
  module YkCommand
7
6
  class Error < StandardError; end
8
7
  # Your code goes here...
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.3.5
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-04-14 00:00:00.000000000 Z
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: