cocoapods-aomi-bin 0.1.13 → 0.1.18

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: 5ae3af0a13e50fda02f0dc94b7167bcc90dfbaeb4dbf7e41dacbbf473adbf584
4
- data.tar.gz: cf58dc5598b22637808983c72c38d7051d9c927aa34769c7a8cf8429c970e90a
3
+ metadata.gz: bd8c44d20bbf16495837fc21e0473aaf2060431d581740e4890d8430c2dde61a
4
+ data.tar.gz: 90329076ca43ca7b8636a25fa13313a3af1e1d923995313a58c2246d8f256ab6
5
5
  SHA512:
6
- metadata.gz: 3837f523f1839690351f4d660a2735daf00bd50641175c9bf95c77f8e4c2f851ec4f171e52ebbfedcaa0fb8bffd54285493ee31443c844834700f8b1f5b4b30b
7
- data.tar.gz: 83f0c980b2e5a8459dd4e406b86ec68fb7b6dd55e79d282659d52cd936ef6595bd391a40f47430eb3aa863a7a14fa54ee575eb392f30641764d412639b888c2a
6
+ metadata.gz: ec55a2ad458dd66862271722a285e4bdffc774f9ef66a981834c54b0c00c61e60e136c6f6a25c933caf1fe40307635b02be6c31660760325389972a201316abf
7
+ data.tar.gz: 707d281f506be358883240885a13a81de2574f03276440aab7d517e657a8fa05f5580f7236c7f564f508353627e6c4b3f9ca1089ba76689508e986aa89f6b731
@@ -6,6 +6,7 @@ require 'cocoapods-lhj-bin/command/bin/code'
6
6
  require 'cocoapods-lhj-bin/command/bin/update'
7
7
  require 'cocoapods-lhj-bin/command/bin/install'
8
8
  require 'cocoapods-lhj-bin/command/bin/import'
9
+ require 'cocoapods-lhj-bin/command/bin/reverse_import'
9
10
  require 'cocoapods-lhj-bin/command/bin/local/local'
10
11
  require 'cocoapods-lhj-bin/command/bin/local/fetch'
11
12
  require 'cocoapods-lhj-bin/command/bin/local/filter'
@@ -13,6 +14,9 @@ require 'cocoapods-lhj-bin/command/bin/local/micro_service'
13
14
  require 'cocoapods-lhj-bin/command/bin/local/upload'
14
15
  require 'cocoapods-lhj-bin/command/bin/trans'
15
16
  require 'cocoapods-lhj-bin/command/bin/lhj'
17
+ require 'cocoapods-lhj-bin/command/bin/model'
18
+ require 'cocoapods-lhj-bin/command/bin/yapi'
19
+ require 'cocoapods-lhj-bin/command/bin/view'
16
20
  require 'cocoapods-lhj-bin/command/bin/config/push'
17
21
  require 'cocoapods-lhj-bin/command/bin/oss/list'
18
22
  require 'cocoapods-lhj-bin/command/bin/oss/del'
@@ -55,7 +59,7 @@ module Pod
55
59
  end
56
60
 
57
61
  def validate!
58
- super
62
+ # super
59
63
  # 这里由于 --help 是在 validate! 方法中提取的,会导致 --help 失效
60
64
  # pod lib create 也有这个问题
61
65
  banner! if @help
@@ -115,6 +115,16 @@ module Pod
115
115
  result
116
116
  end
117
117
 
118
+ =begin
119
+ def format_string(file, line)
120
+ result = line
121
+ if /(\W)(TicketList)(\W)/ =~ line
122
+ result = result.gsub(/(\W)(TicketList)(\W)/, '\1TKTicketModel\3')
123
+ end
124
+ result
125
+ end
126
+ =end
127
+
118
128
  def exist_in_file(file, header)
119
129
  folder_name = @header_folder_map[header.to_sym]
120
130
  Regexp.new("/Pods/#{folder_name}") =~ File.path(file) if folder_name
@@ -77,6 +77,7 @@ module Pod
77
77
  fname = File.basename(file)
78
78
  dir_name = File.dirname(file)
79
79
  mod_name = framework_name(dir_name)
80
+ # ('a'..'z').to_a.shuffle[0..12].join
80
81
  key = "#{mod_name}.#{File.basename(file, '.*')}.#{rand(36**8).to_s(36)}"
81
82
  cn_str = str[2, str.length - 3]
82
83
  en_str = cn_str.gsub(/[\u4e00-\u9fa5]/, 'x')
@@ -0,0 +1,107 @@
1
+ require 'net/https'
2
+ require 'uri'
3
+ require 'json'
4
+
5
+ module Pod
6
+ class Command
7
+ class Bin < Command
8
+ class Model < Bin
9
+ self.summary = '生成模型文件'
10
+
11
+ def initialize(argv)
12
+ @url = argv.shift_argument
13
+ @model_pre_name = argv.option('model-pre', 'ML')
14
+ @models = []
15
+ end
16
+
17
+ def run
18
+ model = fetch_model
19
+ fetch_models(nil, model) if model
20
+ print_models
21
+ print_models_implementation
22
+ end
23
+
24
+ def fetch_model
25
+ uri = URI.parse(@url)
26
+ res = Net::HTTP.get_response(uri)
27
+ res_body = JSON.parse(res.body)
28
+ res_body['detailMsg']
29
+ end
30
+
31
+ def validate!
32
+ help! "请输入url" unless @url
33
+ end
34
+
35
+ def fetch_models(name, obj)
36
+ model = obj
37
+ model = obj.first if obj.respond_to? :<<
38
+ @models.unshift({name: name, value: model}) if model.instance_of? Hash
39
+ if model.instance_of? Hash
40
+ model.each do |key, value|
41
+ if (value.instance_of? Hash) || (value.instance_of? Array)
42
+ fetch_models(key, value)
43
+ end
44
+ end
45
+ end
46
+ end
47
+
48
+ def print_models
49
+ @models.each do |model|
50
+ model_name = ''
51
+ model_name = model[:name].gsub('List', '').gsub('Vo', '').gsub(/^\w/) { $&.upcase } if model[:name]
52
+ puts "@interface #{@model_pre_name}#{model_name}Model : NSObject"
53
+ model[:value].each do |key, value|
54
+ print_property(key, value)
55
+ end
56
+ puts "@end\n\n\n"
57
+ end
58
+ end
59
+
60
+ def print_models_implementation
61
+ @models.each do |model|
62
+ model_name = model[:name].gsub('List', '').gsub('Vo', '').gsub(/^\w/) { $&.upcase } if model[:name]
63
+ puts "@implementation #{@model_pre_name}#{model_name}Model"
64
+ puts "+(NSDictionary *)modelContainerPropertyGenericClass {"
65
+ puts " return @{@\"#{model[:name]}\" : #{@model_pre_name}#{model_name}Model.class};"
66
+ puts "}"
67
+ puts "@end\n\n\n"
68
+ end
69
+ end
70
+
71
+ def print_property(key, value)
72
+ if value.instance_of? String
73
+ puts "///#{value}"
74
+ puts "@property (nonatomic, copy) NSString *#{key};"
75
+ elsif value.instance_of? Integer
76
+ puts "///#{value}"
77
+ puts "@property (nonatomic, assign) NSInteger #{key};"
78
+ puts "///#{value}" if value > 1000
79
+ puts "@property (nonatomic, strong) MLCentNumber *#{key};" if value > 1000
80
+ elsif value.instance_of? Float
81
+ puts "///#{value}"
82
+ puts "@property (nonatomic, assign) CGFloat #{key};"
83
+ elsif (value.instance_of? TrueClass) || (value.instance_of? FalseClass)
84
+ puts "///#{value}"
85
+ puts "@property (nonatomic, assign) BOOL #{key};"
86
+ elsif value.instance_of? Array
87
+ if value.first.instance_of? String
88
+ puts "///#{key}"
89
+ puts "@property (nonatomic, strong) NSArray<NSString *> *#{key};"
90
+ else
91
+ puts "///#{key}"
92
+ name = key.gsub('List', '').gsub('Vo', '').gsub(/^\w/) { $&.upcase }
93
+ puts "@property (nonatomic, strong) NSArray<#{@model_pre_name}#{name}Model *> *#{key};"
94
+ end
95
+ elsif value.instance_of? Hash
96
+ puts "///#{key}"
97
+ name = key.gsub('List', '').gsub('Vo', '').gsub(/^\w/) { $&.upcase }
98
+ puts "@property (nonatomic, strong) #{@model_pre_name}#{name}Model *#{key};"
99
+ else
100
+ puts "///#{value}"
101
+ puts "@property (nonatomic, copy) NSString *#{key};"
102
+ end
103
+ end
104
+ end
105
+ end
106
+ end
107
+ end
@@ -0,0 +1,76 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'find'
4
+ require 'fileutils'
5
+
6
+ module Pod
7
+ class Command
8
+ class Bin < Command
9
+ class ReverseImport < Bin
10
+ self.summary = '更改头文件引入'
11
+
12
+ def initialize(argv)
13
+ @current_path = argv.shift_argument || Dir.pwd
14
+ @framework_names = []
15
+ super
16
+ end
17
+
18
+ def run
19
+ get_all_frameworks
20
+ get_import_headers
21
+ end
22
+
23
+ def get_import_headers
24
+ Dir.glob("#{@current_path}/**/*.{m,h,pch}").each do |f|
25
+ header_handler_file(f) unless f =~ /Pods/
26
+ end
27
+ end
28
+
29
+ def get_all_frameworks
30
+ folders = child_dir
31
+ folders.each { |name| @framework_names << name }
32
+ end
33
+
34
+ def framework_name_reg
35
+ @url_key_reg ||= begin
36
+ keys = @framework_names.join('|')
37
+ /#{keys}/
38
+ end
39
+ @url_key_reg
40
+ end
41
+
42
+ def pod_folder_name
43
+ File.join(@current_path, 'MacauLife', 'CustomPods')
44
+ end
45
+
46
+ def child_dir
47
+ dirs = Dir.entries(pod_folder_name)
48
+ dirs.reject!{ |d| File.directory?(d) }
49
+ dirs
50
+ end
51
+
52
+ def import_reg
53
+ /#import\s*<(.*)\/(.*)>$/
54
+ end
55
+
56
+ def header_handler_file(f)
57
+ str = ''
58
+ File.readlines(f).each do |l|
59
+ if import_reg =~ l
60
+ ma = l.match(import_reg)
61
+ if framework_name_reg =~ ma[1]
62
+ str += "#import \"#{ma[2]}\"\n"
63
+ else
64
+ str += l.dup
65
+ end
66
+ else
67
+ str += l.dup
68
+ end
69
+ end
70
+ File.write(f, str)
71
+ end
72
+
73
+ end
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,108 @@
1
+ module Pod
2
+ class Command
3
+ class Bin < Command
4
+ class View < Bin
5
+ self.summary = '生成源码'
6
+
7
+ def initialize(argv)
8
+ @name = argv.option('name', 'titleLabel')
9
+ @type = argv.option('type', 'UILabel')
10
+ end
11
+
12
+ def names
13
+ @name.split(",").map(&:strip)
14
+ end
15
+
16
+ def run
17
+ print_declare
18
+ puts "\n\n"
19
+ print_instance
20
+ puts "\n\n"
21
+ print_layout
22
+ puts "\n\n"
23
+ print_value
24
+ end
25
+
26
+ def print_declare
27
+ names.each do |name|
28
+ puts "///"
29
+ puts "@property (nonatomic, strong) #{@type} *#{name};"
30
+ end
31
+ end
32
+
33
+ def print_instance
34
+ names.each do |name|
35
+ puts "-(#{@type} *)#{name}"
36
+ puts "{"
37
+ puts " if(!_#{name}){"
38
+ print_alloc(name)
39
+ puts " _#{name}.translatesAutoresizingMaskIntoConstraints = NO;"
40
+ print_property(name)
41
+ puts " }"
42
+ puts " return _#{name};"
43
+ puts "}"
44
+ puts "\n"
45
+ end
46
+ end
47
+
48
+ def print_alloc(name)
49
+ if @type.eql?('UIImageView')
50
+ puts " _#{name} = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@\"xxxx\"]];"
51
+ elsif @type.eql?('UIButton')
52
+ puts " _#{name} = [UIButton buttonWithType:UIButtonTypeCustom];"
53
+ else
54
+ puts " _#{name} = [[#{@type} alloc] init];"
55
+ end
56
+ end
57
+
58
+ def print_property(name)
59
+ if @type.eql?('UILabel')
60
+ puts " _#{name}.textColor = kSetCOLOR(0x333333);"
61
+ puts " _#{name}.text = @\"xxxxxxxx\";"
62
+ puts " _#{name}.font = [UIFont systemFontOfSize:12.0 weight:UIFontWeightRegular];"
63
+ puts " _#{name}.textAlignment = NSTextAlignmentCenter;"
64
+ elsif @type.eql?('UIImageView')
65
+ puts " _#{name}.backgroundColor = kBackgroundColor;"
66
+ puts " _#{name}.contentMode = UIViewContentModeScaleAspectFit;"
67
+ puts " _#{name}.clipsToBounds = YES;"
68
+ puts " _#{name}.layer.cornerRadius = 6.0f;"
69
+ puts " _#{name}.layer.borderColor = kLineColor.CGColor;"
70
+ puts " _#{name}.layer.borderWidth = 0.5;"
71
+ elsif @type.eql?('UITextField')
72
+ puts " _#{name}.textColor = kSetCOLOR(0x333333);"
73
+ puts " _#{name}.font = [UIFont systemFontOfSize:12.0 weight:UIFontWeightRegular];"
74
+ elsif @type.eql?('UIView')
75
+ puts " _#{name}.backgroundColor = kBackgroundColor;"
76
+ elsif @type.eql?('UIButton')
77
+ puts " _#{name}.backgroundColor = kBackgroundColor;"
78
+ puts " [_#{name} setTitle:@\"xxx\" forState:UIControlStateNormal];"
79
+ puts " [_#{name} setTitleColor:kSetCOLOR(0x999999) forState:UIControlStateNormal];"
80
+ puts " [_#{name} setImage:[UIImage imageNamed:@\"xx\"] forState:UIControlStateNormal];"
81
+ puts " [_#{name} setImage:[UIImage imageNamed:@\"xx\"] forState:UIControlStateSelected];"
82
+ puts " [_#{name} addTarget:self action:@selector(actionHandler:) forControlEvents:UIControlEventTouchUpInside];"
83
+ end
84
+ end
85
+
86
+ def print_layout
87
+ names.each do |name|
88
+ puts "[contentView addSubview:self.#{name}];"
89
+ puts "[self.#{name}.leadingAnchor constraintEqualToAnchor:contentView.leadingAnchor constant:0].active = YES;"
90
+ puts "[self.#{name}.trailingAnchor constraintEqualToAnchor:contentView.trailingAnchor constant:0].active = YES;"
91
+ puts "[self.#{name}.topAnchor constraintEqualToAnchor:contentView.topAnchor].active = YES;"
92
+ puts "[self.#{name}.bottomAnchor constraintEqualToAnchor:contentView.bottomAnchor].active = YES;"
93
+ puts "\n\n"
94
+ end
95
+ end
96
+
97
+ def print_value
98
+ names.each do |name|
99
+ if @type.eql?('UILabel')
100
+ puts "self.#{name}.text = @\"xxxxx\";"
101
+ end
102
+ end
103
+ end
104
+
105
+ end
106
+ end
107
+ end
108
+ end
@@ -0,0 +1,221 @@
1
+ require 'net/https'
2
+ require 'uri'
3
+ require 'json'
4
+
5
+ module Pod
6
+ class Command
7
+ class Bin < Command
8
+ class Yapi < Bin
9
+ self.summary = '通过yapi接口生成请求'
10
+
11
+ def initialize(argv)
12
+ @id = argv.option('id')
13
+ @model_pre_name = argv.option('model-pre')
14
+ @http_url = ''
15
+ @http_headers = []
16
+ @data_json = {}
17
+ @models = []
18
+ @config_id = ''
19
+ @config_model_pre = 'ML'
20
+ @type_trans = {}
21
+ @config_model_names = []
22
+ @model_names = []
23
+ end
24
+
25
+ def run
26
+ load_config
27
+ fetch_model
28
+ print_models
29
+ print_models_implementation
30
+ print_methods
31
+ end
32
+
33
+ def url_str
34
+ "#{@http_url}#{api_id}"
35
+ end
36
+
37
+ def load_config
38
+ yml = File.join(Pod::Config.instance.home_dir, 'yapi.yml')
39
+ config = YAML.load_file(yml)
40
+ config.each do |k, v|
41
+ @http_headers << "#{k}=#{v}" if (k.eql?('__wpkreporterwid_') || k.eql?('_yapi_token') || k.eql?('_yapi_uid'))
42
+ end
43
+ @http_url = config['url']
44
+ @config_id = config['id']
45
+ @config_model_pre = config['model_pre']
46
+ @config_model_names = config['model_names']
47
+ @type_trans = config['type_trans']
48
+ end
49
+
50
+ def api_id
51
+ @id || @config_id.to_s
52
+ end
53
+
54
+ def model_pre
55
+ @model_pre_name || @config_model_pre
56
+ end
57
+
58
+ def req_model
59
+ uri = URI.parse(url_str)
60
+ req = Net::HTTP::Get.new(uri)
61
+ req['Cookie'] = @http_headers.join('; ')
62
+ res = Net::HTTP.start(uri.hostname, uri.port) do |http|
63
+ http.request(req)
64
+ end
65
+ puts res.body
66
+ JSON.parse(res.body)
67
+ end
68
+
69
+ def fetch_model
70
+ res_json = req_model
71
+ if res_json && res_json['data']
72
+ @data_json = res_json['data']
73
+ if @data_json['res_body']
74
+ begin
75
+ res_body = JSON.parse(@data_json['res_body'])
76
+ detail_obj = res_body['properties']['detailMsg'] || {}
77
+ detail_obj['name'] = gen_model_name('')
78
+ handle_model(detail_obj)
79
+ rescue => ex
80
+ puts ex
81
+ end
82
+ end
83
+ end
84
+ end
85
+
86
+ def gen_model_name(name)
87
+ n = name.gsub(/vo|model|list/i, '').gsub(/(.*)s$/, '\1').gsub(/^\w/) { $&.upcase }
88
+ if n.length <= 0
89
+ n = @config_model_names.detect{ |c| !@model_names.any?{ |n| n.gsub(/#{model_pre}(.*)Model/, '\1').eql?(c) } }
90
+ end
91
+ model_name = "#{model_pre}#{n}Model"
92
+ @model_names << model_name
93
+ model_name
94
+ end
95
+
96
+ def handle_model(model)
97
+ p_type = model['type']
98
+ p_name = model['name']
99
+ p_properties = model['properties']
100
+ p_model = { name: p_name }
101
+
102
+ properties = []
103
+ if p_type.eql?('object')
104
+ p_properties.each do |k, v|
105
+ c_type = @type_trans[v['type']] || v['type']
106
+ c_model = {key: k, type: c_type, description: v['description'], default: ''}
107
+ if v['type'].eql?('object') || v['type'].eql?('array')
108
+ o = v['items'] || v
109
+ o['name'] = gen_model_name(k)
110
+ if v['type'].eql?('array') && v['items']['type'].eql?('string')
111
+ c_model[:type_name] = "NSString"
112
+ else
113
+ c_model[:type_name] = o['name']
114
+ handle_model(o)
115
+ end
116
+ end
117
+ properties << c_model
118
+ end
119
+ p_model[:properties] = properties
120
+ @models << p_model
121
+ elsif p_type.eql?('array')
122
+ t = model['items']
123
+ t['name'] = p_name
124
+ handle_model(t)
125
+ end
126
+ end
127
+
128
+ def print_models
129
+ puts "\n<===============打印模型=====================>\n"
130
+ @models.each do |model|
131
+ model_name = model[:name] || ''
132
+ model_properties = model[:properties]
133
+ puts "@interface #{model_name} : NSObject"
134
+ model_properties.each do |m|
135
+ print_model(m)
136
+ end
137
+ puts "@end\n\n\n"
138
+ end
139
+ end
140
+
141
+ def print_models_implementation
142
+ @models.each do |model|
143
+ puts "@implementation #{model[:name]}"
144
+ str = model[:properties].filter { |p| p[:type].eql?('array') && !p[:type_name].eql?('NSString') }.map{ |p| "@\"#{p[:key]}\": #{p[:type_name]}.class" }.join(', ')
145
+ if str && str.length > 0
146
+ puts "+(NSDictionary *)modelContainerPropertyGenericClass {"
147
+ puts " return @{#{str}};"
148
+ puts "}"
149
+ end
150
+ puts "@end\n\n\n"
151
+ end
152
+ end
153
+
154
+ def print_model(m)
155
+ key = m[:key]
156
+ type_name = m[:type_name]
157
+ type = m[:type]
158
+ des = m[:description] || ''
159
+ des.gsub!(/\n/, '')
160
+ default = m[:default]
161
+ puts "///#{des} #{default}"
162
+ if type.eql?('integer')
163
+ puts "@property (nonatomic, assign) NSInteger #{key};"
164
+ elsif type.eql?('cent')
165
+ puts "@property (nonatomic, strong) MLCentNumber *#{key};"
166
+ elsif type.eql?('string')
167
+ puts "@property (nonatomic, copy) NSString *#{key};"
168
+ elsif type.eql?('number')
169
+ puts "@property (nonatomic, strong) NSNumber *#{key};"
170
+ elsif type.eql?('float')
171
+ puts "@property (nonatomic, assign) CGFloat #{key};"
172
+ elsif type.eql?('double')
173
+ puts "@property (nonatomic, assign) double #{key};"
174
+ elsif type.eql?('boolean')
175
+ puts "@property (nonatomic, assign) BOOL #{key};"
176
+ elsif type.eql?('object')
177
+ puts "@property (nonatomic, strong) #{type_name} *#{key};"
178
+ elsif type.eql?('array')
179
+ puts "@property (nonatomic, strong) NSArray<#{type_name} *> *#{key};"
180
+ else
181
+ puts "@property (nonatomic, copy) NSString *#{key};"
182
+ end
183
+ end
184
+
185
+ def print_methods
186
+ puts "\n<===============方法调用=====================>\n"
187
+ puts "/**"
188
+ puts " * #{@data_json['title']} -- #{@data_json['username']}"
189
+ puts " */"
190
+ key_str = @data_json['path'].split('/').map{ |s| s.gsub(/[^A-Za-z0-9]/, '').gsub(/^\w/){ $&.upcase } }.join('')
191
+ key = "k#{key_str}URL"
192
+ puts "static NSString * const #{key} = @\"#{@data_json['path']}\";"
193
+ puts "\n\n"
194
+ puts "@interface MLParamModel : NSObject"
195
+ @data_json['req_headers'].each do |h|
196
+ puts "///#{h['desc']} #{h['value']}"
197
+ puts "@property (nonatomic, copy) NSString *#{h['name']}"
198
+ end
199
+ puts "@end"
200
+ puts "\n\n"
201
+ model = @models.last
202
+ if @data_json['method'].eql?('GET')
203
+ puts " [MLNetworkingManager getWithUrl:#{key} params:nil response:^(MLResponseMessage *responseMessage) {"
204
+ puts " if (response.resultCode == 0 && !response.error){"
205
+ puts " NSDictionary *detailMsg = response.detailMsg"
206
+ puts " #{model[:name]} *model = [#{model[:name]} yy_modelWithDictionary:detailMsg];"
207
+ puts " }"
208
+ puts " }];"
209
+ else
210
+ puts " [MLNetworkingManager postWithUrl:#{key} params:nil response:^(MLResponseMessage *responseMessage) {"
211
+ puts " if (response.resultCode == 0 && !response.error){"
212
+ puts " NSDictionary *detailMsg = response.detailMsg"
213
+ puts " #{model[:name]} *model = [#{model[:name]} yy_modelWithDictionary:detailMsg];"
214
+ puts " }"
215
+ puts " }];"
216
+ end
217
+ end
218
+ end
219
+ end
220
+ end
221
+ end
@@ -1,5 +1,5 @@
1
1
  module CBin
2
- VERSION = '0.1.13'
2
+ VERSION = '0.1.18'
3
3
  end
4
4
 
5
5
  module Pod
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cocoapods-aomi-bin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.13
4
+ version: 0.1.18
5
5
  platform: ruby
6
6
  authors:
7
7
  - lihaijian
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-05-26 00:00:00.000000000 Z
11
+ date: 2021-06-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cocoapods
@@ -122,13 +122,17 @@ files:
122
122
  - lib/cocoapods-lhj-bin/command/bin/local/local.rb
123
123
  - lib/cocoapods-lhj-bin/command/bin/local/micro_service.rb
124
124
  - lib/cocoapods-lhj-bin/command/bin/local/upload.rb
125
+ - lib/cocoapods-lhj-bin/command/bin/model.rb
125
126
  - lib/cocoapods-lhj-bin/command/bin/oss/del.rb
126
127
  - lib/cocoapods-lhj-bin/command/bin/oss/list.rb
127
128
  - lib/cocoapods-lhj-bin/command/bin/repo/update.rb
129
+ - lib/cocoapods-lhj-bin/command/bin/reverse_import.rb
128
130
  - lib/cocoapods-lhj-bin/command/bin/spec/create.rb
129
131
  - lib/cocoapods-lhj-bin/command/bin/spec/push.rb
130
132
  - lib/cocoapods-lhj-bin/command/bin/trans.rb
131
133
  - lib/cocoapods-lhj-bin/command/bin/update.rb
134
+ - lib/cocoapods-lhj-bin/command/bin/view.rb
135
+ - lib/cocoapods-lhj-bin/command/bin/yapi.rb
132
136
  - lib/cocoapods-lhj-bin/config/config.rb
133
137
  - lib/cocoapods-lhj-bin/config/config_asker.rb
134
138
  - lib/cocoapods-lhj-bin/config/config_builder.rb