use basename for swift model property

This commit is contained in:
wing328 2016-03-18 12:02:26 +08:00
parent 431593f3cf
commit 9525d67cd8
7 changed files with 17 additions and 10 deletions

View File

@ -132,8 +132,8 @@ class Decoders {
Decoders.addDecoder(clazz: {{{classname}}}.self) { (source: AnyObject) -> {{{classname}}} in Decoders.addDecoder(clazz: {{{classname}}}.self) { (source: AnyObject) -> {{{classname}}} in
let sourceDictionary = source as! [NSObject:AnyObject] let sourceDictionary = source as! [NSObject:AnyObject]
let instance = {{classname}}(){{#vars}}{{#isEnum}} let instance = {{classname}}(){{#vars}}{{#isEnum}}
instance.{{name}} = {{classname}}.{{datatypeWithEnum}}(rawValue: (sourceDictionary["{{name}}"] as? String) ?? ""){{#unwrapRequired}}{{#required}}!{{/required}}{{/unwrapRequired}} {{/isEnum}}{{^isEnum}} instance.{{name}} = {{classname}}.{{datatypeWithEnum}}(rawValue: (sourceDictionary["{{baseName}}"] as? String) ?? ""){{#unwrapRequired}}{{#required}}!{{/required}}{{/unwrapRequired}} {{/isEnum}}{{^isEnum}}
instance.{{name}} = Decoders.decode{{^unwrapRequired}}Optional{{/unwrapRequired}}{{#unwrapRequired}}{{^required}}Optional{{/required}}{{/unwrapRequired}}(clazz: {{{baseType}}}.self, source: sourceDictionary["{{name}}"]{{#unwrapRequired}}{{#required}}!{{/required}}{{/unwrapRequired}}){{/isEnum}}{{/vars}} instance.{{name}} = Decoders.decode{{^unwrapRequired}}Optional{{/unwrapRequired}}{{#unwrapRequired}}{{^required}}Optional{{/required}}{{/unwrapRequired}}(clazz: {{{baseType}}}.self, source: sourceDictionary["{{baseName}}"]{{#unwrapRequired}}{{#required}}!{{/required}}{{/unwrapRequired}}){{/isEnum}}{{/vars}}
return instance return instance
}{{/model}} }{{/model}}
{{/models}} {{/models}}

View File

@ -26,10 +26,10 @@ public class {{classname}}: JSONEncodable {
// MARK: JSONEncodable // MARK: JSONEncodable
func encodeToJSON() -> AnyObject { func encodeToJSON() -> AnyObject {
var nillableDictionary = [String:AnyObject?](){{#vars}}{{#isNotContainer}}{{#isPrimitiveType}}{{^isEnum}} var nillableDictionary = [String:AnyObject?](){{#vars}}{{#isNotContainer}}{{#isPrimitiveType}}{{^isEnum}}
nillableDictionary["{{name}}"] = self.{{name}}{{/isEnum}}{{/isPrimitiveType}}{{#isEnum}} nillableDictionary["{{baseName}}"] = self.{{name}}{{/isEnum}}{{/isPrimitiveType}}{{#isEnum}}
nillableDictionary["{{name}}"] = self.{{name}}{{^unwrapRequired}}?{{/unwrapRequired}}{{#unwrapRequired}}{{^required}}?{{/required}}{{/unwrapRequired}}.rawValue{{/isEnum}}{{^isPrimitiveType}} nillableDictionary["{{baseName}}"] = self.{{name}}{{^unwrapRequired}}?{{/unwrapRequired}}{{#unwrapRequired}}{{^required}}?{{/required}}{{/unwrapRequired}}.rawValue{{/isEnum}}{{^isPrimitiveType}}
nillableDictionary["{{name}}"] = self.{{name}}{{^unwrapRequired}}?{{/unwrapRequired}}{{#unwrapRequired}}{{^required}}?{{/required}}{{/unwrapRequired}}.encodeToJSON(){{/isPrimitiveType}}{{/isNotContainer}}{{#isContainer}} nillableDictionary["{{baseName}}"] = self.{{name}}{{^unwrapRequired}}?{{/unwrapRequired}}{{#unwrapRequired}}{{^required}}?{{/required}}{{/unwrapRequired}}.encodeToJSON(){{/isPrimitiveType}}{{/isNotContainer}}{{#isContainer}}
nillableDictionary["{{name}}"] = self.{{name}}{{^unwrapRequired}}?{{/unwrapRequired}}{{#unwrapRequired}}{{^required}}?{{/required}}{{/unwrapRequired}}.encodeToJSON(){{/isContainer}}{{/vars}} nillableDictionary["{{baseName}}"] = self.{{name}}{{^unwrapRequired}}?{{/unwrapRequired}}{{#unwrapRequired}}{{^required}}?{{/required}}{{/unwrapRequired}}.encodeToJSON(){{/isContainer}}{{/vars}}
let dictionary: [String:AnyObject] = APIHelper.rejectNil(nillableDictionary) ?? [:] let dictionary: [String:AnyObject] = APIHelper.rejectNil(nillableDictionary) ?? [:]
return dictionary return dictionary
} }

View File

@ -1318,6 +1318,10 @@
"name": { "name": {
"type": "integer", "type": "integer",
"format": "int32" "format": "int32"
},
"snake_case": {
"type": "integer",
"format": "int32"
} }
}, },
"xml": { "xml": {

View File

@ -177,7 +177,7 @@ class Decoders {
Decoders.addDecoder(clazz: ModelReturn.self) { (source: AnyObject) -> ModelReturn in Decoders.addDecoder(clazz: ModelReturn.self) { (source: AnyObject) -> ModelReturn in
let sourceDictionary = source as! [NSObject:AnyObject] let sourceDictionary = source as! [NSObject:AnyObject]
let instance = ModelReturn() let instance = ModelReturn()
instance._return = Decoders.decodeOptional(clazz: Int.self, source: sourceDictionary["_return"]) instance._return = Decoders.decodeOptional(clazz: Int.self, source: sourceDictionary["return"])
return instance return instance
} }
@ -191,6 +191,7 @@ class Decoders {
let sourceDictionary = source as! [NSObject:AnyObject] let sourceDictionary = source as! [NSObject:AnyObject]
let instance = Name() let instance = Name()
instance.name = Decoders.decodeOptional(clazz: Int.self, source: sourceDictionary["name"]) instance.name = Decoders.decodeOptional(clazz: Int.self, source: sourceDictionary["name"])
instance.snakeCase = Decoders.decodeOptional(clazz: Int.self, source: sourceDictionary["snake_case"])
return instance return instance
} }
@ -239,7 +240,7 @@ class Decoders {
Decoders.addDecoder(clazz: SpecialModelName.self) { (source: AnyObject) -> SpecialModelName in Decoders.addDecoder(clazz: SpecialModelName.self) { (source: AnyObject) -> SpecialModelName in
let sourceDictionary = source as! [NSObject:AnyObject] let sourceDictionary = source as! [NSObject:AnyObject]
let instance = SpecialModelName() let instance = SpecialModelName()
instance.specialPropertyName = Decoders.decodeOptional(clazz: Int.self, source: sourceDictionary["specialPropertyName"]) instance.specialPropertyName = Decoders.decodeOptional(clazz: Int.self, source: sourceDictionary["$special[property.name]"])
return instance return instance
} }

View File

@ -18,7 +18,7 @@ public class ModelReturn: JSONEncodable {
// MARK: JSONEncodable // MARK: JSONEncodable
func encodeToJSON() -> AnyObject { func encodeToJSON() -> AnyObject {
var nillableDictionary = [String:AnyObject?]() var nillableDictionary = [String:AnyObject?]()
nillableDictionary["_return"] = self._return nillableDictionary["return"] = self._return
let dictionary: [String:AnyObject] = APIHelper.rejectNil(nillableDictionary) ?? [:] let dictionary: [String:AnyObject] = APIHelper.rejectNil(nillableDictionary) ?? [:]
return dictionary return dictionary
} }

View File

@ -11,6 +11,7 @@ import Foundation
public class Name: JSONEncodable { public class Name: JSONEncodable {
public var name: Int? public var name: Int?
public var snakeCase: Int?
public init() {} public init() {}
@ -19,6 +20,7 @@ public class Name: JSONEncodable {
func encodeToJSON() -> AnyObject { func encodeToJSON() -> AnyObject {
var nillableDictionary = [String:AnyObject?]() var nillableDictionary = [String:AnyObject?]()
nillableDictionary["name"] = self.name nillableDictionary["name"] = self.name
nillableDictionary["snake_case"] = self.snakeCase
let dictionary: [String:AnyObject] = APIHelper.rejectNil(nillableDictionary) ?? [:] let dictionary: [String:AnyObject] = APIHelper.rejectNil(nillableDictionary) ?? [:]
return dictionary return dictionary
} }

View File

@ -18,7 +18,7 @@ public class SpecialModelName: JSONEncodable {
// MARK: JSONEncodable // MARK: JSONEncodable
func encodeToJSON() -> AnyObject { func encodeToJSON() -> AnyObject {
var nillableDictionary = [String:AnyObject?]() var nillableDictionary = [String:AnyObject?]()
nillableDictionary["specialPropertyName"] = self.specialPropertyName nillableDictionary["$special[property.name]"] = self.specialPropertyName
let dictionary: [String:AnyObject] = APIHelper.rejectNil(nillableDictionary) ?? [:] let dictionary: [String:AnyObject] = APIHelper.rejectNil(nillableDictionary) ?? [:]
return dictionary return dictionary
} }