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 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: