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