diff --git a/Sources/Core/FileGenerator.swift b/Sources/Core/FileGenerator.swift index 93e8eb1b..5591326d 100644 --- a/Sources/Core/FileGenerator.swift +++ b/Sources/Core/FileGenerator.swift @@ -8,7 +8,7 @@ import Foundation -public typealias GenerationParameters = [GenerationParameterType:String] +public typealias GenerationParameters = [GenerationParameterType: String] let formatter = DateFormatter() let date = Date() @@ -106,7 +106,7 @@ func generator(forLanguage language: Languages) -> FileGeneratorManager { public func generateRuntimeFiles(outputDirectory: URL, generationParameters: GenerationParameters, forLanguages languages: [Languages]) { let fileGenerators: [FileGeneratorManager] = languages.map(generator) fileGenerators.forEach { - $0.generateFileRuntime(outputDirectory: outputDirectory, generationParameters:generationParameters) + $0.generateFileRuntime(outputDirectory: outputDirectory, generationParameters: generationParameters) } } diff --git a/Sources/Core/JSModelRenderer.swift b/Sources/Core/JSModelRenderer.swift index 5cfd5e7b..8e672422 100644 --- a/Sources/Core/JSModelRenderer.swift +++ b/Sources/Core/JSModelRenderer.swift @@ -49,7 +49,7 @@ public struct JSModelRenderer: JSFileRenderer { return self.properties.flatMap { (param, prop) -> [JSIR.Root] in switch prop.schema { case .enumT(let enumValues): - return [JSIR.Root.enumDecl(name: JSModelRenderer.enumTypeName(className: self.className, propertyName:param), values: enumValues)] + return [JSIR.Root.enumDecl(name: JSModelRenderer.enumTypeName(className: self.className, propertyName: param), values: enumValues)] default: return [] } } diff --git a/Sources/Core/ObjCADTRenderer.swift b/Sources/Core/ObjCADTRenderer.swift index 7029d594..36c10c20 100644 --- a/Sources/Core/ObjCADTRenderer.swift +++ b/Sources/Core/ObjCADTRenderer.swift @@ -201,10 +201,10 @@ struct ObjCADTRenderer: ObjCFileRenderer { func renderClass(name: String) -> [ObjCIR.Root] { let internalTypeEnum = self.renderInternalTypeEnum() let internalTypeProp: SimpleProperty = ("internal_type", objcClassFromSchema("internal_type", .enumT(.integer([]))), - SchemaObjectProperty(schema:.enumT(.integer([])), nullability: nil), // Ask @schneider about this + SchemaObjectProperty(schema: .enumT(.integer([])), nullability: nil), // Ask @schneider about this .readwrite) - let protocols: [String : [ObjCIR.Method]] = [ + let protocols: [String: [ObjCIR.Method]] = [ "NSSecureCoding": [self.renderSupportsSecureCoding(), self.renderInitWithCoder(), self.renderEncodeWithCoder()], "NSCopying": [ObjCIR.method("- (id)copyWithZone:(NSZone *)zone") { ["return self;"] }] ] diff --git a/Sources/Core/ObjCModelRenderer.swift b/Sources/Core/ObjCModelRenderer.swift index 4e41de7c..3968b14b 100644 --- a/Sources/Core/ObjCModelRenderer.swift +++ b/Sources/Core/ObjCModelRenderer.swift @@ -115,7 +115,7 @@ public struct ObjCModelRenderer: ObjCFileRenderer { func renderRoots() -> [ObjCIR.Root] { let properties: [(Parameter, SchemaObjectProperty)] = rootSchema.properties.map { $0 } // Convert [String:Schema] -> [(String, Schema)] - let protocols: [String : [ObjCIR.Method]] = [ + let protocols: [String: [ObjCIR.Method]] = [ "NSSecureCoding": [self.renderSupportsSecureCoding(), self.renderInitWithCoder(), self.renderEncodeWithCoder()], "NSCopying": [ObjCIR.method("- (id)copyWithZone:(NSZone *)zone") { ["return self;"] }] ] diff --git a/Sources/Core/ObjectiveCFileGenerator.swift b/Sources/Core/ObjectiveCFileGenerator.swift index d51f149d..1fb84812 100644 --- a/Sources/Core/ObjectiveCFileGenerator.swift +++ b/Sources/Core/ObjectiveCFileGenerator.swift @@ -93,7 +93,7 @@ struct ObjCRuntimeFile { ObjCIR.Root.optionSetEnum( name: "PlankModelInitType", - values:[ + values: [ EnumValue(defaultValue: 0, description: "Default"), EnumValue(defaultValue: 1, description: "FromMerge"), EnumValue(defaultValue: 2, description: "FromSubmerge") diff --git a/Sources/Core/ObjectiveCNSCodingExtension.swift b/Sources/Core/ObjectiveCNSCodingExtension.swift index 3bae82e0..5a78206a 100644 --- a/Sources/Core/ObjectiveCNSCodingExtension.swift +++ b/Sources/Core/ObjectiveCNSCodingExtension.swift @@ -111,24 +111,25 @@ extension ObjCFileRenderer { fileprivate func decodeStatement(_ param: String, _ schema: Schema) -> String { let propIVarName = "_\(param.snakeCaseToPropertyName())" - return "\(propIVarName) = " + { switch schema { - case .enumT: - return "[aDecoder decodeIntegerForKey:\(param.objcLiteral())];" - case .boolean: - return "[aDecoder decodeBoolForKey:\(param.objcLiteral())];" - case .float: - return "[aDecoder decodeDoubleForKey:\(param.objcLiteral())];" - case .integer: - return "[aDecoder decodeIntegerForKey:\(param.objcLiteral())];" - case .string, .map, .array, .set, .oneOf, .reference, .object: - let refObjectClasses = referencedObjectClasses(schema).map { "[\($0) class]" } - let refObjectClassesString = refObjectClasses.count == 1 ? refObjectClasses.joined(separator: ",") : "[NSSet setWithArray:\(refObjectClasses.objcLiteral())]" - if refObjectClasses.count == 0 { fatalError("Can't determine class for decode for \(schema)") } - if refObjectClasses.count == 1 { - return "[aDecoder decodeObjectOfClass:\(refObjectClassesString) forKey:\(param.objcLiteral())];" - } else { - return "[aDecoder decodeObjectOfClasses:\(refObjectClassesString) forKey:\(param.objcLiteral())];" - } + return "\(propIVarName) = " + { + switch schema { + case .enumT: + return "[aDecoder decodeIntegerForKey:\(param.objcLiteral())];" + case .boolean: + return "[aDecoder decodeBoolForKey:\(param.objcLiteral())];" + case .float: + return "[aDecoder decodeDoubleForKey:\(param.objcLiteral())];" + case .integer: + return "[aDecoder decodeIntegerForKey:\(param.objcLiteral())];" + case .string, .map, .array, .set, .oneOf, .reference, .object: + let refObjectClasses = referencedObjectClasses(schema).map { "[\($0) class]" } + let refObjectClassesString = refObjectClasses.count == 1 ? refObjectClasses.joined(separator: ",") : "[NSSet setWithArray:\(refObjectClasses.objcLiteral())]" + if refObjectClasses.count == 0 { fatalError("Can't determine class for decode for \(schema)") } + if refObjectClasses.count == 1 { + return "[aDecoder decodeObjectOfClass:\(refObjectClassesString) forKey:\(param.objcLiteral())];" + } else { + return "[aDecoder decodeObjectOfClasses:\(refObjectClassesString) forKey:\(param.objcLiteral())];" + } } }() } diff --git a/Sources/Core/Schema.swift b/Sources/Core/Schema.swift index a5a31bb2..5ce5b269 100644 --- a/Sources/Core/Schema.swift +++ b/Sources/Core/Schema.swift @@ -8,7 +8,7 @@ import Foundation -typealias JSONObject = [String:Any] +typealias JSONObject = [String: Any] public enum JSONType: String { case object = "object" @@ -86,7 +86,7 @@ extension Dictionary { func decodeRef(from source: URL, with ref: String) -> URL { if ref.hasPrefix("#") { // Local URL - return URL(string:ref, relativeTo:source)! + return URL(string: ref, relativeTo: source)! } else { let baseUrl = source.deletingLastPathComponent() let lastPathComponentString = URL(string: ref)?.pathComponents.last @@ -109,7 +109,7 @@ public struct SchemaObjectProperty { public struct SchemaObjectRoot: Equatable { let name: String - let properties: [String:SchemaObjectProperty] + let properties: [String: SchemaObjectProperty] let extends: URLSchemaReference? let algebraicTypeIdentifier: String? @@ -122,7 +122,7 @@ public func == (lhs: SchemaObjectRoot, rhs: SchemaObjectRoot) -> Bool { return lhs.name == rhs.name } -extension SchemaObjectRoot : CustomDebugStringConvertible { +extension SchemaObjectRoot: CustomDebugStringConvertible { public var debugDescription: String { return (["\(name)\n extends from \(String(describing: extends.map { $0.force()?.debugDescription }))\n"] + properties.map { (key, value) in "\t\(key): \(value.schema.debugDescription)\n" }).reduce("", +) } @@ -144,7 +144,7 @@ public indirect enum Schema { typealias Property = (Parameter, SchemaObjectProperty) -extension Schema : CustomDebugStringConvertible { +extension Schema: CustomDebugStringConvertible { public var debugDescription: String { switch self { case .array(itemType: let itemType): @@ -294,7 +294,7 @@ extension Schema { algebraicTypeIdentifier: propertyInfo["algebraicDataTypeIdentifier"] as? String)) } } else { // Map type - return Schema.map(valueType:(propertyInfo["additionalProperties"] as? JSONObject) + return Schema.map(valueType: (propertyInfo["additionalProperties"] as? JSONObject) .flatMap { propertyForType(propertyInfo: $0, source: source) }) } case JSONType.polymorphic: diff --git a/Sources/Core/SchemaLoader.swift b/Sources/Core/SchemaLoader.swift index ae03f0a4..222faecc 100644 --- a/Sources/Core/SchemaLoader.swift +++ b/Sources/Core/SchemaLoader.swift @@ -15,7 +15,7 @@ protocol SchemaLoader { class FileSchemaLoader: SchemaLoader { static let sharedInstance = FileSchemaLoader() static let sharedPropertyLoader = Schema.propertyFunctionForType(loader: FileSchemaLoader.sharedInstance) - var refs: [URL:Schema] + var refs: [URL: Schema] init() { self.refs = [URL: Schema]() diff --git a/Sources/plank/Cli.swift b/Sources/plank/Cli.swift index 372a2b76..b7b06e6e 100644 --- a/Sources/plank/Cli.swift +++ b/Sources/plank/Cli.swift @@ -37,7 +37,7 @@ enum FlagOptions: String { } } -extension FlagOptions : HelpCommandOutput { +extension FlagOptions: HelpCommandOutput { internal static func printHelp() -> String { return [ " --\(FlagOptions.objectiveCClassPrefix.rawValue) - The prefix to add to all generated class names.", @@ -52,7 +52,7 @@ extension FlagOptions : HelpCommandOutput { } } -func parseFlag(arguments: [String]) -> ([FlagOptions:String], [String])? { +func parseFlag(arguments: [String]) -> ([FlagOptions: String], [String])? { guard let someFlag = (arguments.first.map { $0.components(separatedBy: "=")[0] @@ -90,7 +90,7 @@ func parseFlag(arguments: [String]) -> ([FlagOptions:String], [String])? { } } -func parseFlags(fromArguments arguments: [String]) -> ([FlagOptions:String], [String]) { +func parseFlags(fromArguments arguments: [String]) -> ([FlagOptions: String], [String]) { guard !arguments.isEmpty else { return ([:], arguments) } if let (flagDict, remainingArgs) = parseFlag(arguments: arguments) { @@ -174,7 +174,7 @@ func handleGenerateCommand(withArguments arguments: [String]) { return lang } ?? [.objectiveC] guard languages.count > 0 else { - fatalError("Unsupported value for lang: \"\(String(describing:flags[.lang]))\"") + fatalError("Unsupported value for lang: \"\(String(describing: flags[.lang]))\"") } if flags[.printDeps] != nil {