Change method name to avoid name collision

This commit is contained in:
kubo_takaichi 2015-05-26 10:59:55 +09:00
parent 02c41ac574
commit 7be35bb02e
5 changed files with 27 additions and 14 deletions

View File

@ -15,7 +15,7 @@ class {{projectName}}API {
class APIBase {
func toParameters(encodable: JSONEncodable?) -> [String: AnyObject]? {
let encoded: AnyObject? = encodable?.encode()
let encoded: AnyObject? = encodable?.encodeToJSON()
if encoded! is [AnyObject] {
var dictionary = [String:AnyObject]()

View File

@ -8,41 +8,41 @@ import Alamofire
import PromiseKit
extension Bool: JSONEncodable {
func encode() -> AnyObject { return self }
func encodeToJSON() -> AnyObject { return self }
}
extension Float: JSONEncodable {
func encode() -> AnyObject { return self }
func encodeToJSON() -> AnyObject { return self }
}
extension Int: JSONEncodable {
func encode() -> AnyObject { return self }
func encodeToJSON() -> AnyObject { return self }
}
extension Double: JSONEncodable {
func encode() -> AnyObject { return self }
func encodeToJSON() -> AnyObject { return self }
}
extension String: JSONEncodable {
func encode() -> AnyObject { return self }
func encodeToJSON() -> AnyObject { return self }
}
private func encodeIfPossible<T>(object: T) -> AnyObject {
if object is JSONEncodable {
return (object as! JSONEncodable).encode()
return (object as! JSONEncodable).encodeToJSON()
} else {
return object as! AnyObject
}
}
extension Array: JSONEncodable {
func encode() -> AnyObject {
func encodeToJSON() -> AnyObject {
return self.map(encodeIfPossible)
}
}
extension Dictionary: JSONEncodable {
func encode() -> AnyObject {
func encodeToJSON() -> AnyObject {
var dictionary = [NSObject:AnyObject]()
for (key, value) in self {
dictionary[key as! NSObject] = encodeIfPossible(value)
@ -50,3 +50,16 @@ extension Dictionary: JSONEncodable {
return dictionary
}
}
private let dateFormatter: NSDateFormatter = {
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
return dateFormatter
}()
extension NSDate: JSONEncodable {
func encodeToJSON() -> AnyObject {
return dateFormatter.stringFromDate(self)
}
}

View File

@ -7,7 +7,7 @@
import Foundation
protocol JSONEncodable {
func encode() -> AnyObject
func encodeToJSON() -> AnyObject
}
class Response<T> {

View File

@ -35,7 +35,7 @@ extension {{projectName}}API {
path = path.stringByReplacingOccurrencesOfString("{{=<% %>=}}{<%paramName%>}<%={{ }}=%>", withString: "\({{paramName}})", options: .LiteralSearch, range: nil){{/pathParams}}
let url = {{projectName}}API.basePath + path
{{#bodyParam}}
let parameters = {{paramName}}{{^required}}?{{/required}}.encode() as? [String:AnyObject]{{/bodyParam}}{{^bodyParam}}
let parameters = {{paramName}}{{^required}}?{{/required}}.encodeToJSON() as? [String:AnyObject]{{/bodyParam}}{{^bodyParam}}
let nillableParameters: [String:AnyObject?] = {{^queryParams}}[:]{{/queryParams}}{{#queryParams}}{{^secondaryParam}}[{{/secondaryParam}}
"{{paramName}}": {{paramName}}{{#hasMore}},{{/hasMore}}{{^hasMore}}
]{{/hasMore}}{{/queryParams}}

View File

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