OSDN Git Service

Parameterを別ファイルに分けた
authormasakih <masakih@users.sourceforge.jp>
Tue, 12 Dec 2017 11:56:30 +0000 (20:56 +0900)
committermasakih <masakih@users.sourceforge.jp>
Tue, 12 Dec 2017 11:56:30 +0000 (20:56 +0900)
KCD.xcodeproj/project.pbxproj
KCD/APIResponse.swift
KCD/DataExtension.swift [new file with mode: 0644]
KCD/JSONViewCommand.swift
KCD/Parameter.swift [new file with mode: 0644]

index 0ab907f..7a208ef 100644 (file)
@@ -22,6 +22,8 @@
                F41465681DAB852E00D68C97 /* ScreenshotCollectionViewItem.xib in Resources */ = {isa = PBXBuildFile; fileRef = F41465671DAB852E00D68C97 /* ScreenshotCollectionViewItem.xib */; };
                F41465741DB4F1A700D68C97 /* ScreenshotListWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F41465761DB4F1A700D68C97 /* ScreenshotListWindowController.xib */; };
                F41A451B1F4917640066F83D /* SeikuCalclator.swift in Sources */ = {isa = PBXBuildFile; fileRef = F41A451A1F4917640066F83D /* SeikuCalclator.swift */; };
+               F41AA4761FDEDC3700FFFBD1 /* Parameter.swift in Sources */ = {isa = PBXBuildFile; fileRef = F41AA4751FDEDC3700FFFBD1 /* Parameter.swift */; };
+               F41AA4781FDEDCD200FFFBD1 /* DataExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = F41AA4771FDEDCD200FFFBD1 /* DataExtension.swift */; };
                F421850A1DF44AA900256590 /* AirBaseWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F421850C1DF44AA900256590 /* AirBaseWindowController.xib */; };
                F421850F1DF4518000256590 /* BroswerTouchBar.xib in Resources */ = {isa = PBXBuildFile; fileRef = F421850E1DF4518000256590 /* BroswerTouchBar.xib */; };
                F42185111DF461A600256590 /* ScreenshotTouchBar.xib in Resources */ = {isa = PBXBuildFile; fileRef = F42185101DF461A600256590 /* ScreenshotTouchBar.xib */; };
                F40F97721E6989B300AE81BB /* NSViewExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSViewExtension.swift; sourceTree = "<group>"; };
                F41465671DAB852E00D68C97 /* ScreenshotCollectionViewItem.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ScreenshotCollectionViewItem.xib; sourceTree = "<group>"; };
                F41A451A1F4917640066F83D /* SeikuCalclator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SeikuCalclator.swift; sourceTree = "<group>"; };
+               F41AA4751FDEDC3700FFFBD1 /* Parameter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Parameter.swift; sourceTree = "<group>"; };
+               F41AA4771FDEDCD200FFFBD1 /* DataExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataExtension.swift; sourceTree = "<group>"; };
                F421850D1DF44AEA00256590 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/AirBaseWindowController.xib; sourceTree = "<group>"; };
                F421850E1DF4518000256590 /* BroswerTouchBar.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = BroswerTouchBar.xib; sourceTree = "<group>"; };
                F42185101DF461A600256590 /* ScreenshotTouchBar.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ScreenshotTouchBar.xib; sourceTree = "<group>"; };
                                F48883441F2E095F0069E0C3 /* DefaultSettings.swift */,
                                F46FEA3E1F81285D00E2427C /* Localizable.swift */,
                                F46FEA401F8128BB00E2427C /* LocalizedStrings.swift */,
+                               F41AA4771FDEDCD200FFFBD1 /* DataExtension.swift */,
                                F40F97701E68536400AE81BB /* FileManagerExtension.swift */,
                                F44AA26A1E82AD2E00EED8BE /* NSObjectExtension.swift */,
                                F4AF56851F7F6EF8004F4F4E /* NSNibExtension.swift */,
                                F4FC3E8F1E437E1F00E41228 /* JSONReciever.swift */,
                                F4CF25A91E338ED000C02A66 /* JSONTracker.swift */,
                                F4CF25A71E325ABA00C02A66 /* APIResponse.swift */,
+                               F41AA4751FDEDC3700FFFBD1 /* Parameter.swift */,
                                F4760CE71FDAC5F100702C3E /* API.swift */,
                                F4CF25BF1E36428400C02A66 /* MissionStatus.swift */,
                                F4CF25BD1E361F4600C02A66 /* NyukyoDockStatus.swift */,
                                F45F3BE31E06A60A0009434E /* UpgradableShipsWindowController.swift in Sources */,
                                F4E5FF121E17D6850026868C /* GameViewController.swift in Sources */,
                                F42A8FE61E420A360099DC1D /* KaihatuHistory.swift in Sources */,
+                               F41AA4761FDEDC3700FFFBD1 /* Parameter.swift in Sources */,
                                F4AA592E1E1D1D4D001667AF /* SokuTransformer.swift in Sources */,
                                F4AA594A1E1E4863001667AF /* MapWindowController.swift in Sources */,
                                F4FC3E961E46AC3000E41228 /* TSVSupport.swift in Sources */,
                                F49097871E1A85F70085A45D /* ImageView.swift in Sources */,
                                F4D05BC61E0ABD6800688D66 /* SlotItemWindowController.swift in Sources */,
                                F4AA593A1E1E02D9001667AF /* UpgradeShipExcludeColorTransformer.swift in Sources */,
+                               F41AA4781FDEDCD200FFFBD1 /* DataExtension.swift in Sources */,
                                F4BDEEB21E73FE2000D689AE /* Entity.swift in Sources */,
                                F42A8FCC1E3DA4DF0099DC1D /* MasterMission.swift in Sources */,
                                F44BC6C71E222675004644E3 /* FailedCommand.swift in Sources */,
index 69b8a86..404d567 100644 (file)
@@ -24,11 +24,6 @@ extension JSON {
     }
 }
 
-private extension Data {
-    
-    var utf8String: String? { return String(data: self, encoding: .utf8) }
-}
-
 private func splitJSON(_ data: Data) -> String? {
     
     let prefix = "svdata="
@@ -42,99 +37,6 @@ private func splitJSON(_ data: Data) -> String? {
     return String(string[range.upperBound...])
 }
 
-private func parseParameter(_ request: URLRequest) -> [String: String]? {
-    
-    return request
-        .httpBody?
-        .utf8String?
-        .removingPercentEncoding?
-        .components(separatedBy: "&")
-        .map { $0.components(separatedBy: "=") }
-        .filter { $0.count == 2 }
-        .map { (piar: [String]) -> (String, String) in (piar[0], piar[1]) }
-        .reduce(into: [String: String]()) { (dict: inout [String: String], value: (String, String)) in
-            
-            dict[value.0] = value.1
-    }
-}
-
-struct ParameterValue {
-    
-    private let rawValue: String?
-    
-    var int: Int? { return rawValue.flatMap { Int($0) } }
-    var double: Double? { return rawValue.flatMap { Double($0) } }
-    var string: String? { return rawValue }
-    var bool: Bool? {
-        
-        guard let _ = rawValue else { return nil }
-        
-        if let i = self.int {
-            
-            return i != 0
-        }
-        
-        if let s = self.string?.lowercased() {
-            
-            switch s {
-            case "true", "yes", "t", "y": return true
-                
-            default: return false
-            }
-        }
-        
-        return false
-    }
-    var array: [ParameterValue] {
-        
-        return rawValue?.components(separatedBy: ",").map { ParameterValue($0) } ?? []
-    }
-    var integerArray: [Int] {
-        return array.flatMap { $0.int }
-    }
-    
-    var valid: Bool { return rawValue != nil }
-    
-    init(_ rawValue: String?) {
-        
-        self.rawValue = rawValue
-    }
-}
-
-struct Parameter {
-    
-    private let rawValue: [String: String]
-    
-    init(_ rawValue: [String: String]) {
-        
-        self.rawValue = rawValue
-    }
-    
-    init?(_ request: URLRequest) {
-        
-        guard let paramList = parseParameter(request) else { return nil }
-        
-        self.init(paramList)
-    }
-    
-    subscript(_ key: String) -> ParameterValue {
-        
-        return ParameterValue(rawValue[key])
-    }
-    
-    func map<T>(_ transform: (String, String) throws -> T) rethrows -> [T] {
-        
-        return try rawValue.map(transform)
-    }
-}
-
-extension Parameter: Equatable {
-    
-    public static func == (lhs: Parameter, rhs: Parameter) -> Bool {
-        return lhs.rawValue == rhs.rawValue
-    }
-}
-
 struct APIResponse {
     
     let api: API
diff --git a/KCD/DataExtension.swift b/KCD/DataExtension.swift
new file mode 100644 (file)
index 0000000..3b3c069
--- /dev/null
@@ -0,0 +1,14 @@
+//
+//  DataExtension.swift
+//  KCD
+//
+//  Created by Hori,Masaki on 2017/12/12.
+//  Copyright © 2017年 Hori,Masaki. All rights reserved.
+//
+
+import Foundation
+
+extension Data {
+    
+    var utf8String: String? { return String(data: self, encoding: .utf8) }
+}
index 99ba6f1..d47be6e 100644 (file)
@@ -22,7 +22,7 @@ final class JSONViewCommand: JSONCommand {
         self.recieveDate = Date()
         self.parameterList = apiResponse
             .parameter
-           .map { ["key": $0, "value": $1] }
+            .map { ["key": $0, "value": $1] }
         self.jsonTree = JSONNode
             .nodeWithJSON(apiResponse.json)
             .map { [$0] }
diff --git a/KCD/Parameter.swift b/KCD/Parameter.swift
new file mode 100644 (file)
index 0000000..a0d69e8
--- /dev/null
@@ -0,0 +1,103 @@
+//
+//  Parameter.swift
+//  KCD
+//
+//  Created by Hori,Masaki on 2017/12/12.
+//  Copyright © 2017年 Hori,Masaki. All rights reserved.
+//
+
+import Foundation
+
+private func parseParameter(_ request: URLRequest) -> [String: String]? {
+    
+    return request
+        .httpBody?
+        .utf8String?
+        .removingPercentEncoding?
+        .components(separatedBy: "&")
+        .map { $0.components(separatedBy: "=") }
+        .filter { $0.count == 2 }
+        .map { (piar: [String]) -> (String, String) in (piar[0], piar[1]) }
+        .reduce(into: [String: String]()) { (dict: inout [String: String], value: (String, String)) in
+            
+            dict[value.0] = value.1
+    }
+}
+
+struct ParameterValue {
+    
+    private let rawValue: String?
+    
+    var int: Int? { return rawValue.flatMap { Int($0) } }
+    var double: Double? { return rawValue.flatMap { Double($0) } }
+    var string: String? { return rawValue }
+    var bool: Bool? {
+        
+        guard let _ = rawValue else { return nil }
+        
+        if let i = self.int {
+            
+            return i != 0
+        }
+        
+        if let s = self.string?.lowercased() {
+            
+            switch s {
+            case "true", "yes", "t", "y": return true
+                
+            default: return false
+            }
+        }
+        
+        return false
+    }
+    var array: [ParameterValue] {
+        
+        return rawValue?.components(separatedBy: ",").map { ParameterValue($0) } ?? []
+    }
+    var integerArray: [Int] {
+        
+        return array.flatMap { $0.int }
+    }
+    
+    var valid: Bool { return rawValue != nil }
+    
+    init(_ rawValue: String?) {
+        
+        self.rawValue = rawValue
+    }
+}
+
+struct Parameter {
+    
+    private let rawValue: [String: String]
+    
+    init(_ rawValue: [String: String]) {
+        
+        self.rawValue = rawValue
+    }
+    
+    init?(_ request: URLRequest) {
+        
+        guard let paramList = parseParameter(request) else { return nil }
+        
+        self.init(paramList)
+    }
+    
+    subscript(_ key: String) -> ParameterValue {
+        
+        return ParameterValue(rawValue[key])
+    }
+    
+    func map<T>(_ transform: (String, String) throws -> T) rethrows -> [T] {
+        
+        return try rawValue.map(transform)
+    }
+}
+
+extension Parameter: Equatable {
+    
+    public static func == (lhs: Parameter, rhs: Parameter) -> Bool {
+        return lhs.rawValue == rhs.rawValue
+    }
+}