gwtools 0.0.9 → 0.0.11
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 +4 -4
- data/lib/gwtools/generate/swift.rb +54 -48
- data/lib/gwtools/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e3007bfd409959d80ace62d0c7f4d184fdc87aa5cdf99a0af9131c7178bc054f
|
4
|
+
data.tar.gz: f8d8e7aaf6b6883bc4840e55843a80d2642a0760448a9164dcbed5cf08a4b5da
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 714fb8b942c4e0c2be8cf56a07dc2850cd9899e9ea57eed850900cb9edfa9ccf008a0bc346afb681a497acf78f79b76d927a61beb4fa45b561475bdcc52a8029
|
7
|
+
data.tar.gz: b1b9a19753e711bf0fa15b7168debcbd05158b750a854b55de20ca60cdf5bd7384e71fcdc885cd50a6f5888de18d9f9d818b9141a6a3f8944d3dbad9d60feb11
|
@@ -116,7 +116,8 @@ public extension <%="#{@api_name}"%> {
|
|
116
116
|
end
|
117
117
|
|
118
118
|
def self.getPrefixPath(dir_path)
|
119
|
-
prefixPaths = %w[app-api/api/v1.0 app-api/api/v2.0
|
119
|
+
prefixPaths = %w[app-api/api/v1.0 app-api/api/v2.0 community-app-api/app-api/api/v1.0 app-api/api/haval/v2.0
|
120
|
+
bt-cpsp-api/cpsp-api/v1]
|
120
121
|
|
121
122
|
prefixPaths.each do |prefix_path|
|
122
123
|
return prefix_path.gsub(/^\/|\/$/, "") if dir_path.start_with?(prefix_path)
|
@@ -159,7 +160,7 @@ public extension <%="#{@api_name}"%> {
|
|
159
160
|
app_name = "AppAPI"
|
160
161
|
end
|
161
162
|
if dir == 'restful'
|
162
|
-
swift_model = generate_model("#{httpMethod.capitalize.chomp}Model", responseJson)
|
163
|
+
swift_model = generate_model("#{httpMethod.capitalize.chomp}Model", responseJson, 'data')
|
163
164
|
prefixPath = getPrefixPath(url_path)
|
164
165
|
|
165
166
|
return unless !prefixPath.empty?
|
@@ -232,64 +233,69 @@ public extension <%="#{@api_name}"%> {
|
|
232
233
|
end
|
233
234
|
|
234
235
|
end
|
235
|
-
|
236
236
|
def self.capitalize_first_letter(str)
|
237
237
|
str[0].upcase + str[1..-1]
|
238
238
|
end
|
239
239
|
|
240
|
-
def self.generate_model(name, json_data,
|
241
|
-
|
242
|
-
if
|
243
|
-
|
240
|
+
def self.generate_model(name, json_data, root_path = '')
|
241
|
+
# 找到真实数据(data)所在位置
|
242
|
+
if !root_path.empty?
|
243
|
+
json_data = json_data[root_path]
|
244
|
+
if json_data.all? { |element| element.is_a?(Hash) }
|
245
|
+
json_data = json_data.inject(:merge)
|
246
|
+
end
|
244
247
|
end
|
245
248
|
|
246
|
-
|
247
|
-
|
249
|
+
swift_model = ''
|
250
|
+
case json_data
|
251
|
+
when String
|
252
|
+
return "var #{name}: [String] = []\n"
|
253
|
+
when Float
|
254
|
+
return "var #{name}: [Float] = []\n"
|
255
|
+
when Integer
|
256
|
+
return "var #{name}: [Int] = []\n"
|
257
|
+
when Array
|
258
|
+
return ''
|
259
|
+
when Hash
|
260
|
+
swift_model += "struct #{name}: HandyJSON {\n"
|
261
|
+
# generate_model(name, json_data)
|
248
262
|
json_data.each do |key, value|
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
263
|
+
case value
|
264
|
+
when NilClass # nil 对象默认给个Stirng?类型
|
265
|
+
swift_model += " var #{key}: String?\n"
|
266
|
+
when FalseClass
|
267
|
+
swift_model += " var #{key}: Bool = false\n"
|
268
|
+
when TrueClass
|
269
|
+
swift_model += " var #{key}: Bool = false\n"
|
270
|
+
when Float
|
271
|
+
swift_model += " var #{key}: Float = 0.0\n"
|
272
|
+
when Integer
|
273
|
+
swift_model += " var #{key}: Int = 0\n"
|
274
|
+
when String
|
275
|
+
swift_model += " var #{key}: String?\n"
|
276
|
+
when Array
|
277
|
+
if value.count > 0
|
278
|
+
if value.all? { |element| element.is_a?(Hash) }
|
279
|
+
merged_hash = value.inject(:merge)
|
280
|
+
swift_model += "var #{key}: [#{capitalize_first_letter(key)}Model]?\n"
|
281
|
+
swift_model += generate_model("#{capitalize_first_letter(key)}Model", merged_hash)
|
282
|
+
else
|
283
|
+
swift_model += generate_model(key, value[0])
|
284
|
+
end
|
285
|
+
else
|
286
|
+
swift_model += "var #{key}: [Any]?\n"
|
257
287
|
end
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
swift_model = "struct #{name}: HandyJSON {\n"
|
263
|
-
json_data.each do |key, value|
|
264
|
-
case value
|
265
|
-
when NilClass # nil 对象默认给个Stirng?类型
|
266
|
-
swift_model += " var #{key}: String?\n"
|
267
|
-
when FalseClass
|
268
|
-
swift_model += " var #{key}: Bool = false\n"
|
269
|
-
when TrueClass
|
270
|
-
swift_model += " var #{key}: Bool = false\n"
|
271
|
-
when Float
|
272
|
-
swift_model += " var #{key}: Float = 0.0\n"
|
273
|
-
when Integer
|
274
|
-
swift_model += " var #{key}: Int = 0\n"
|
275
|
-
when String
|
276
|
-
swift_model += " var #{key}: String?\n"
|
277
|
-
when Array
|
278
|
-
|
279
|
-
if !value.empty?
|
280
|
-
swift_model += " var #{key}: [#{capitalize_first_letter(key)}] = []\n"
|
281
|
-
swift_model += generate_model("#{capitalize_first_letter(key)}", value.first, level+1)
|
288
|
+
when Hash
|
289
|
+
swift_model += "var #{key}: #{capitalize_first_letter(key)}Model?\n"
|
290
|
+
swift_model += generate_model("#{capitalize_first_letter(key)}Model", value)
|
282
291
|
else
|
283
|
-
swift_model += "
|
292
|
+
swift_model += "var #{key}: #{value.class}?\n"
|
284
293
|
end
|
285
|
-
when Hash
|
286
|
-
swift_model += " var #{key}: #{capitalize_first_letter(key)}?\n"
|
287
|
-
swift_model += generate_model("#{capitalize_first_letter(key)}", value, level+1)
|
288
|
-
else
|
289
|
-
swift_model += " var #{key}: #{value.class == String ? 'String' : 'Int'}\n"
|
290
294
|
end
|
295
|
+
swift_model + "public init() {}\n}\n"
|
296
|
+
else
|
297
|
+
return swift_model
|
291
298
|
end
|
292
|
-
swift_model + "public init() {}\n}\n"
|
293
299
|
end
|
294
300
|
|
295
301
|
end
|
data/lib/gwtools/version.rb
CHANGED