From 2fd72c692afb58a2bc854bfcc742333674f405bd Mon Sep 17 00:00:00 2001 From: Yasuhiro Inami Date: Sat, 18 Jul 2015 14:27:06 +0900 Subject: [PATCH 1/3] Upgrade to Swift 2 (Xcode7-beta3) --- Cartfile | 2 +- Cartfile.private | 4 +- Cartfile.resolved | 8 ++-- Carthage/Checkouts/Nimble | 2 +- Carthage/Checkouts/Quick | 2 +- Carthage/Checkouts/ReactKit | 2 +- Carthage/Checkouts/SwiftTask | 2 +- .../project.pbxproj | 6 ++- .../CalculatorViewController.swift | 2 +- Demo/ReactKitCalculatorDemo/Info.plist | 2 +- ReactKitCalculator.xcodeproj/project.pbxproj | 10 ++++- .../xcschemes/ReactKitCalculator-OSX.xcscheme | 13 +++--- .../xcschemes/ReactKitCalculator-iOS.xcscheme | 13 +++--- ReactKitCalculator/Calculator.swift | 40 +++++++++---------- ReactKitCalculator/Helper.swift | 32 +++++++-------- ReactKitCalculator/Info.plist | 2 +- ReactKitCalculatorTests/ExpressionSpec.swift | 14 +++---- ReactKitCalculatorTests/Info.plist | 2 +- ReactKitCalculatorTests/OutputSpec.swift | 10 ++--- 19 files changed, 93 insertions(+), 75 deletions(-) diff --git a/Cartfile b/Cartfile index 81288df..a70f23a 100644 --- a/Cartfile +++ b/Cartfile @@ -1 +1 @@ -github "ReactKit/ReactKit" ~> 0.11.3 \ No newline at end of file +github "ReactKit/ReactKit" "swift/2.0" \ No newline at end of file diff --git a/Cartfile.private b/Cartfile.private index 94b912b..3d7e4cb 100644 --- a/Cartfile.private +++ b/Cartfile.private @@ -1,2 +1,2 @@ -github "Quick/Quick" ~> 0.3.1 -github "Quick/Nimble" ~> 0.4.2 \ No newline at end of file +github "Quick/Quick" "swift-2.0" +github "Quick/Nimble" "swift-2.0" \ No newline at end of file diff --git a/Cartfile.resolved b/Cartfile.resolved index 84d6a4a..1c2da8f 100644 --- a/Cartfile.resolved +++ b/Cartfile.resolved @@ -1,4 +1,4 @@ -github "Quick/Nimble" "v0.4.2" -github "Quick/Quick" "v0.3.1" -github "ReactKit/SwiftTask" "3.3.0" -github "ReactKit/ReactKit" "0.11.3" +github "Quick/Nimble" "0adbea1f51e6bb489d81463a164df16d8d36d810" +github "Quick/Quick" "39db56818cf68f8fefd6c3534362890fa337a326" +github "ReactKit/SwiftTask" "3c3a4bb0d96a50c513505fcca194403cc8dbee60" +github "ReactKit/ReactKit" "a9d4d2d067e7047a4cb8448a541a59c24f6a51e1" diff --git a/Carthage/Checkouts/Nimble b/Carthage/Checkouts/Nimble index 8927113..0adbea1 160000 --- a/Carthage/Checkouts/Nimble +++ b/Carthage/Checkouts/Nimble @@ -1 +1 @@ -Subproject commit 8927113f877f32c8a01b41b746c4ac261b42c48e +Subproject commit 0adbea1f51e6bb489d81463a164df16d8d36d810 diff --git a/Carthage/Checkouts/Quick b/Carthage/Checkouts/Quick index 8bf96f7..39db568 160000 --- a/Carthage/Checkouts/Quick +++ b/Carthage/Checkouts/Quick @@ -1 +1 @@ -Subproject commit 8bf96f708924d728dab5f0cf7543b6f1b896a209 +Subproject commit 39db56818cf68f8fefd6c3534362890fa337a326 diff --git a/Carthage/Checkouts/ReactKit b/Carthage/Checkouts/ReactKit index 5c3317e..a9d4d2d 160000 --- a/Carthage/Checkouts/ReactKit +++ b/Carthage/Checkouts/ReactKit @@ -1 +1 @@ -Subproject commit 5c3317e10547a4e3873ad1c64f158886bace1a2e +Subproject commit a9d4d2d067e7047a4cb8448a541a59c24f6a51e1 diff --git a/Carthage/Checkouts/SwiftTask b/Carthage/Checkouts/SwiftTask index c964fdf..3c3a4bb 160000 --- a/Carthage/Checkouts/SwiftTask +++ b/Carthage/Checkouts/SwiftTask @@ -1 +1 @@ -Subproject commit c964fdfd76bf95fcb22b2be69bae5d045cc7547b +Subproject commit 3c3a4bb0d96a50c513505fcca194403cc8dbee60 diff --git a/Demo/ReactKitCalculatorDemo.xcodeproj/project.pbxproj b/Demo/ReactKitCalculatorDemo.xcodeproj/project.pbxproj index 6a04bac..8a8f694 100644 --- a/Demo/ReactKitCalculatorDemo.xcodeproj/project.pbxproj +++ b/Demo/ReactKitCalculatorDemo.xcodeproj/project.pbxproj @@ -291,7 +291,8 @@ 1F8560361A949F6700103F01 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0610; + LastSwiftUpdateCheck = 0700; + LastUpgradeCheck = 0700; ORGANIZATIONNAME = "Yasuhiro Inami"; TargetAttributes = { 1F85603D1A949F6700103F01 = { @@ -486,6 +487,7 @@ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_OPTIMIZATION_LEVEL = 0; @@ -552,6 +554,7 @@ EMBEDDED_CONTENT_CONTAINS_SWIFT = YES; INFOPLIST_FILE = ReactKitCalculatorDemo/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.inamiy.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = ReactKitCalculatorDemo; }; name = Debug; @@ -563,6 +566,7 @@ EMBEDDED_CONTENT_CONTAINS_SWIFT = YES; INFOPLIST_FILE = ReactKitCalculatorDemo/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.inamiy.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = ReactKitCalculatorDemo; }; name = Release; diff --git a/Demo/ReactKitCalculatorDemo/CalculatorViewController.swift b/Demo/ReactKitCalculatorDemo/CalculatorViewController.swift index 67800da..81fae74 100644 --- a/Demo/ReactKitCalculatorDemo/CalculatorViewController.swift +++ b/Demo/ReactKitCalculatorDemo/CalculatorViewController.swift @@ -72,7 +72,7 @@ class CalculatorViewController: UIViewController { // REACT: toggle C <-> AC self.calculator!.inputStream ~> { [weak self] key in - if contains(Calculator.Key.numKeys(), key) { + if Calculator.Key.numKeys().contains(key) { self?.clearButton?.setTitle("C", forState: .Normal) } diff --git a/Demo/ReactKitCalculatorDemo/Info.plist b/Demo/ReactKitCalculatorDemo/Info.plist index fbe6c87..eabb3ae 100644 --- a/Demo/ReactKitCalculatorDemo/Info.plist +++ b/Demo/ReactKitCalculatorDemo/Info.plist @@ -7,7 +7,7 @@ CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier - com.inamiy.$(PRODUCT_NAME:rfc1034identifier) + $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundleName diff --git a/ReactKitCalculator.xcodeproj/project.pbxproj b/ReactKitCalculator.xcodeproj/project.pbxproj index e81b18a..52b6785 100644 --- a/ReactKitCalculator.xcodeproj/project.pbxproj +++ b/ReactKitCalculator.xcodeproj/project.pbxproj @@ -220,7 +220,8 @@ 1F977EB81A94978B00A7D656 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0610; + LastSwiftUpdateCheck = 0700; + LastUpgradeCheck = 0700; ORGANIZATIONNAME = "Yasuhiro Inami"; TargetAttributes = { 1F977EC01A94978B00A7D656 = { @@ -339,6 +340,7 @@ COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = 1; ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_OPTIMIZATION_LEVEL = 0; @@ -415,6 +417,7 @@ INFOPLIST_FILE = ReactKitCalculator/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.inamiy.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(PROJECT_NAME)"; SKIP_INSTALL = YES; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -433,6 +436,7 @@ INFOPLIST_FILE = ReactKitCalculator/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.inamiy.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(PROJECT_NAME)"; SKIP_INSTALL = YES; }; @@ -457,6 +461,7 @@ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.10; + PRODUCT_BUNDLE_IDENTIFIER = "com.inamiy.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(PROJECT_NAME)"; SDKROOT = macosx; SKIP_INSTALL = YES; @@ -480,6 +485,7 @@ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.10; + PRODUCT_BUNDLE_IDENTIFIER = "com.inamiy.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(PROJECT_NAME)"; SDKROOT = macosx; SKIP_INSTALL = YES; @@ -501,6 +507,7 @@ INFOPLIST_FILE = ReactKitCalculatorTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.10; + PRODUCT_BUNDLE_IDENTIFIER = "com.inamiy.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; }; @@ -518,6 +525,7 @@ INFOPLIST_FILE = ReactKitCalculatorTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.10; + PRODUCT_BUNDLE_IDENTIFIER = "com.inamiy.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; }; diff --git a/ReactKitCalculator.xcodeproj/xcshareddata/xcschemes/ReactKitCalculator-OSX.xcscheme b/ReactKitCalculator.xcodeproj/xcshareddata/xcschemes/ReactKitCalculator-OSX.xcscheme index 47368bb..7011b06 100644 --- a/ReactKitCalculator.xcodeproj/xcshareddata/xcschemes/ReactKitCalculator-OSX.xcscheme +++ b/ReactKitCalculator.xcodeproj/xcshareddata/xcschemes/ReactKitCalculator-OSX.xcscheme @@ -1,6 +1,6 @@ + shouldUseLaunchSchemeArgsEnv = "YES"> @@ -48,15 +48,18 @@ ReferencedContainer = "container:ReactKitCalculator.xcodeproj"> + + + shouldUseLaunchSchemeArgsEnv = "YES"> + + 1 && contains(Key.arithOperatorKeys(), self.lastArithKey) { + if self.tokens.count > 1 && Key.arithOperatorKeys().contains(self.lastArithKey) { self.lastArithValue = value } } @@ -271,7 +271,7 @@ public class Calculator } // numKey except `.Point` (NOTE: `case .Point` declared above) - case let numKey where contains(Key.numKeys(), numKey): + case let numKey where Key.numKeys().contains(numKey): if acc == Key.Minus.rawValue + Key.Num0.rawValue { return Key.Minus.rawValue + newKey.rawValue // e.g. "-0" then "1" will be "-1" } @@ -295,7 +295,7 @@ public class Calculator } // NOTE: this unaryKey will not contain `.PlusMinus` as `case .PlusMinus` is declared above - case let unaryKey where contains(Key.unaryOperators(), unaryKey): + case let unaryKey where Key.unaryOperators().contains(unaryKey): return newKey.evaluate((acc as NSString).doubleValue).calculatorString // comment-out: don't send "0" because it will confuse with `Key.Num0` input @@ -309,7 +309,7 @@ public class Calculator } } |> filter { $0 != nil } - |> peek { println("numBuildStream ---> \($0)") } + |> peek { print("numBuildStream ---> \($0)") } let numTokenStream: Stream<_Token> = numBuildStream @@ -317,14 +317,14 @@ public class Calculator let operatorKeyTokenStream: Stream<_Token> = mergedKeyStream - |> filter { !contains(Key.numBuildKeys(), $0) } + |> filter { !Key.numBuildKeys().contains($0) } |> map { _Token.Operator($0, calculatedValue: 0, bracketLevel: 0) } /// numTokenStream + operatorKeyTokenStream let tokenStream: Stream<_Token> = numTokenStream |> merge(operatorKeyTokenStream) - |> peek { println(); println("tokenStream ---> \($0)") } + |> peek { print(); print("tokenStream ---> \($0)") } /// /// Quite complex stream-operation using `customize()` to encapsulate `buffer` @@ -340,8 +340,8 @@ public class Calculator upstream.react { (newToken: _Token) in - println("[progress] newToken = \(newToken)") - println("[progress] buffer = \(_b)") + print("[progress] newToken = \(newToken)") + print("[progress] buffer = \(_b)") assert(_b.tokens.find { $0.operatorKey != nil && $0.operatorKey! == Key.Equal } == nil, "`buffer.tokens` should not contain `.Equal`.") @@ -371,7 +371,7 @@ public class Calculator } // use `_b.lastArithKey` & `_b.lastArithValue` e.g. `2 + 3 = 4 =` will print `7` - if _b.tokens.count == 1 && newOperatorKey == .Equal && contains(Key.arithOperatorKeys(), _b.lastArithKey) { + if _b.tokens.count == 1 && newOperatorKey == .Equal && Key.arithOperatorKeys().contains(_b.lastArithKey) { let lastNumber = _b.tokens.last!.number! _b.tokens.append(_Token.Operator(_b.lastArithKey, calculatedValue: lastNumber, bracketLevel: 0)) _b.tokens.append(_Token.Number(_b.lastArithValue)) @@ -390,7 +390,7 @@ public class Calculator } } - println("prepared tokens = \(_b.tokens)") + print("prepared tokens = \(_b.tokens)") assert(_b.tokens.last?.number != nil, "`buffer.tokens.last` should have number.") let lastNumber = _b.tokens.last!.number! @@ -402,7 +402,7 @@ public class Calculator let prevOperatorToken = _b.tokens.reverse().find { $0.operatorKey != nil && $0.operatorBracketLevel == newToken.operatorBracketLevel } - println("prevOperatorToken = \(prevOperatorToken)") + print("prevOperatorToken = \(prevOperatorToken)") if let prevOperatorKey = prevOperatorToken?.operatorKey { @@ -429,7 +429,7 @@ public class Calculator if pastOperatorPrecedence < maxPrecedence { let beforeCalculatedValue = calculatedValue calculatedValue = pastOperatorTuple.key.evaluate(calculatedValue)(pastOperatorTuple.calculatedValue) - println("[precalculate] \(beforeCalculatedValue) -> (\(pastOperatorTuple.key.rawValue), \(pastOperatorTuple.calculatedValue)) -> \(calculatedValue)") + print("[precalculate] \(beforeCalculatedValue) -> (\(pastOperatorTuple.key.rawValue), \(pastOperatorTuple.calculatedValue)) -> \(calculatedValue)") maxPrecedence = pastOperatorPrecedence } } @@ -447,7 +447,7 @@ public class Calculator } // update lastArithKey - if contains(Key.arithOperatorKeys(), newOperatorKey) { + if Key.arithOperatorKeys().contains(newOperatorKey) { _b.lastArithKey = newOperatorKey } @@ -471,12 +471,12 @@ public class Calculator } // switch newToken } } - |> peek { println("bufferingTokensStream ---> \($0)") } + |> peek { print("bufferingTokensStream ---> \($0)") } let precalculatingStream: Stream = bufferingTokensStream |> map { ($0.last?.operatorCalculatedValue ?? 0).calculatorString } - |> peek { println("precalculatingStream ---> \($0)") } + |> peek { print("precalculatingStream ---> \($0)") } self.inputStream = mergedKeyStream @@ -484,7 +484,7 @@ public class Calculator numBuildStream |> map { _calculatorString(raw: $0!, rtrims: false) } // output `calculatorString` to show commas & exponent, and also suffixed `.Point`+`.Num0`s if needed |> merge(precalculatingStream) - |> peek { println("outputStream ---> \($0)") } + |> peek { print("outputStream ---> \($0)") } self.expressionStream = bufferingTokensStream @@ -494,11 +494,11 @@ public class Calculator return acc + (token.number?.calculatorString ?? token.operatorKey?.rawValue ?? "") + " " } } - |> peek { println("expressionStream ---> \($0)") } + |> peek { print("expressionStream ---> \($0)") } } deinit { - println("[deinit] \(self)") + print("[deinit] \(self)") } } \ No newline at end of file diff --git a/ReactKitCalculator/Helper.swift b/ReactKitCalculator/Helper.swift index 75b82c1..54f009b 100644 --- a/ReactKitCalculator/Helper.swift +++ b/ReactKitCalculator/Helper.swift @@ -48,7 +48,7 @@ func _scientificNotation(num: Double) -> ScientificNotation exponent++ } -// println("_scientificNotation(\(num)) = \((significand, exponent))") +// print("_scientificNotation(\(num)) = \((significand, exponent))") return (significand, exponent) } @@ -61,7 +61,7 @@ func _scientificNotation(num: Double) -> ScientificNotation /// - inf -> "inf" /// - NaN -> "nan" /// -func _calculatorString(_ num: Double? = nil, raw numString: String? = nil, rtrims rtrimsSuffixedPointAndZeros: Bool = true) -> String +func _calculatorString(num: Double? = nil, raw numString: String? = nil, rtrims rtrimsSuffixedPointAndZeros: Bool = true) -> String { precondition(num != nil || numString != nil, "Either `num` or `numString` must be non-nil.") @@ -80,11 +80,11 @@ func _calculatorString(_ num: Double? = nil, raw numString: String? = nil, rtrim // add exponent, e.g. 1.2345678e+9 if shouldShowPositiveExponent || shouldShowNegativeExponent { - println() - println("*** calculatorString ***") - println("num = \(num)") - println("significand = \(significand)") - println("exponent = \(exponent)") + print() + print("*** calculatorString ***") + print("num = \(num)") + print("significand = \(significand)") + print("exponent = \(exponent)") if significand == Double.infinity { string = "\(significand)" @@ -92,7 +92,7 @@ func _calculatorString(_ num: Double? = nil, raw numString: String? = nil, rtrim else { string = _rtrimFloatString(significand.calculatorString) - if count(string) > SIGNIFICAND_DIGIT + 1 { // +1 for `.Point` + if string.characters.count > SIGNIFICAND_DIGIT + 1 { // +1 for `.Point` string = string.substringToIndex(advance(string.startIndex, SIGNIFICAND_DIGIT + 1)) } @@ -128,11 +128,11 @@ func _commaString(var string: String) -> String let splittedStrings = string.componentsSeparatedByString(Calculator.Key.Point.rawValue) if let integerString = splittedStrings.first { - var integerCharacters = Array(integerString) + var integerCharacters = Array(integerString.characters) let isNegative = integerString.hasPrefix(Calculator.Key.Minus.rawValue) // insert commas - for var i = count(integerCharacters) - 3; i > (isNegative ? 1 : 0); i -= 3 { + for var i = integerCharacters.count - 3; i > (isNegative ? 1 : 0); i -= 3 { integerCharacters.insert(Character(COMMA_SEPARATOR), atIndex: i) } @@ -145,14 +145,14 @@ func _commaString(var string: String) -> String } var nonNumberCount = 0 - for char in string { + for char in string.characters { if char == Character(COMMA_SEPARATOR) || char == Character(Calculator.Key.Point.rawValue) { nonNumberCount++ } } // limit to MAX_DIGIT_FOR_NONEXPONENT considering non-number characters - if count(string) > MAX_DIGIT_FOR_NONEXPONENT + nonNumberCount { + if string.characters.count > MAX_DIGIT_FOR_NONEXPONENT + nonNumberCount { string = string.substringToIndex(advance(string.startIndex, MAX_DIGIT_FOR_NONEXPONENT + nonNumberCount)) } @@ -165,13 +165,13 @@ func _rtrimFloatString(var string: String) -> String // trim floating zeros, e.g. `123.000` -> `123.` if string.rangeOfString(Calculator.Key.Point.rawValue) != nil { while string.hasSuffix(Calculator.Key.Num0.rawValue) { - string = string.substringToIndex(advance(string.startIndex, count(string)-1)) + string = string.substringToIndex(advance(string.startIndex, string.characters.count-1)) } } // trim suffix `.Point` if needed, e.g. `123.` -> `123` if string.hasSuffix(Calculator.Key.Point.rawValue) { - string = string.substringToIndex(advance(string.startIndex, count(string)-1)) + string = string.substringToIndex(advance(string.startIndex, string.characters.count-1)) } return string @@ -187,9 +187,9 @@ extension Double extension Array { - func find(findClosure: T -> Bool) -> T? + func find(findClosure: Element -> Bool) -> Element? { - for (idx, element) in enumerate(self) { + for element in self { if findClosure(element) { return element } diff --git a/ReactKitCalculator/Info.plist b/ReactKitCalculator/Info.plist index d989045..d3de8ee 100644 --- a/ReactKitCalculator/Info.plist +++ b/ReactKitCalculator/Info.plist @@ -7,7 +7,7 @@ CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier - com.inamiy.$(PRODUCT_NAME:rfc1034identifier) + $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundleName diff --git a/ReactKitCalculatorTests/ExpressionSpec.swift b/ReactKitCalculatorTests/ExpressionSpec.swift index a32591a..1018ac6 100644 --- a/ReactKitCalculatorTests/ExpressionSpec.swift +++ b/ReactKitCalculatorTests/ExpressionSpec.swift @@ -37,23 +37,23 @@ class ExpressionSpec: QuickSpec #if true // REACT (debug print) calculator.inputStream ~> { key in - println() - println("***************************") - println("pressed key = `\(key.rawValue)`") + print() + print("***************************") + print("pressed key = `\(key.rawValue)`") } // REACT (debug print) calculator.outputStream ~> { output in let output = output ?? "(nil)"; - println("output = `\(output)`") - println() + print("output = `\(output)`") + print() } // REACT (debug print) calculator.expressionStream ~> { expression in let expression = expression ?? "(nil)"; - println("expression = `\(expression)`") - println() + print("expression = `\(expression)`") + print() } #endif diff --git a/ReactKitCalculatorTests/Info.plist b/ReactKitCalculatorTests/Info.plist index 4fceeb7..ba72822 100644 --- a/ReactKitCalculatorTests/Info.plist +++ b/ReactKitCalculatorTests/Info.plist @@ -7,7 +7,7 @@ CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier - com.inamiy.$(PRODUCT_NAME:rfc1034identifier) + $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundleName diff --git a/ReactKitCalculatorTests/OutputSpec.swift b/ReactKitCalculatorTests/OutputSpec.swift index ceb64da..da678e3 100644 --- a/ReactKitCalculatorTests/OutputSpec.swift +++ b/ReactKitCalculatorTests/OutputSpec.swift @@ -37,16 +37,16 @@ class OutputSpec: QuickSpec #if true // REACT (debug print) calculator.inputStream ~> { key in - println() - println("***************************") - println("pressed key = `\(key.rawValue)`") + print() + print("***************************") + print("pressed key = `\(key.rawValue)`") } // REACT (debug print) calculator.outputStream ~> { output in let output = output ?? "(nil)"; - println("output = `\(output)`") - println() + print("output = `\(output)`") + print() } #endif From 301b8ad828f4a181b3da5a4d52fe04eaeee9a088 Mon Sep 17 00:00:00 2001 From: Yasuhiro Inami Date: Tue, 8 Sep 2015 02:17:20 +0900 Subject: [PATCH 2/3] Fix for Xcode7-beta6. --- Cartfile.resolved | 8 ++++---- Carthage/Checkouts/Nimble | 2 +- Carthage/Checkouts/Quick | 2 +- Carthage/Checkouts/ReactKit | 2 +- Carthage/Checkouts/SwiftTask | 2 +- ReactKitCalculator/Calculator.swift | 4 ++-- ReactKitCalculator/Helper.swift | 12 ++++++------ ReactKitCalculatorTests/ExpressionSpec.swift | 6 +++--- ReactKitCalculatorTests/OutputSpec.swift | 4 ++-- 9 files changed, 21 insertions(+), 21 deletions(-) diff --git a/Cartfile.resolved b/Cartfile.resolved index 1c2da8f..b678fa7 100644 --- a/Cartfile.resolved +++ b/Cartfile.resolved @@ -1,4 +1,4 @@ -github "Quick/Nimble" "0adbea1f51e6bb489d81463a164df16d8d36d810" -github "Quick/Quick" "39db56818cf68f8fefd6c3534362890fa337a326" -github "ReactKit/SwiftTask" "3c3a4bb0d96a50c513505fcca194403cc8dbee60" -github "ReactKit/ReactKit" "a9d4d2d067e7047a4cb8448a541a59c24f6a51e1" +github "Quick/Nimble" "8baefcc94bc2b58b7be3cd9ebfc3984ea5c8b87e" +github "Quick/Quick" "503f1515427d0cd2eaa19830694dcde60c46d945" +github "ReactKit/SwiftTask" "bbff1f2ceda80dabc3f4cda92ed8506e21320ccc" +github "ReactKit/ReactKit" "7643d9db0cb3c76d97bdb966b9ef568d7f78ab36" diff --git a/Carthage/Checkouts/Nimble b/Carthage/Checkouts/Nimble index 0adbea1..8baefcc 160000 --- a/Carthage/Checkouts/Nimble +++ b/Carthage/Checkouts/Nimble @@ -1 +1 @@ -Subproject commit 0adbea1f51e6bb489d81463a164df16d8d36d810 +Subproject commit 8baefcc94bc2b58b7be3cd9ebfc3984ea5c8b87e diff --git a/Carthage/Checkouts/Quick b/Carthage/Checkouts/Quick index 39db568..503f151 160000 --- a/Carthage/Checkouts/Quick +++ b/Carthage/Checkouts/Quick @@ -1 +1 @@ -Subproject commit 39db56818cf68f8fefd6c3534362890fa337a326 +Subproject commit 503f1515427d0cd2eaa19830694dcde60c46d945 diff --git a/Carthage/Checkouts/ReactKit b/Carthage/Checkouts/ReactKit index a9d4d2d..7643d9d 160000 --- a/Carthage/Checkouts/ReactKit +++ b/Carthage/Checkouts/ReactKit @@ -1 +1 @@ -Subproject commit a9d4d2d067e7047a4cb8448a541a59c24f6a51e1 +Subproject commit 7643d9db0cb3c76d97bdb966b9ef568d7f78ab36 diff --git a/Carthage/Checkouts/SwiftTask b/Carthage/Checkouts/SwiftTask index 3c3a4bb..bbff1f2 160000 --- a/Carthage/Checkouts/SwiftTask +++ b/Carthage/Checkouts/SwiftTask @@ -1 +1 @@ -Subproject commit 3c3a4bb0d96a50c513505fcca194403cc8dbee60 +Subproject commit bbff1f2ceda80dabc3f4cda92ed8506e21320ccc diff --git a/ReactKitCalculator/Calculator.swift b/ReactKitCalculator/Calculator.swift index aac3f55..aa20a9d 100644 --- a/ReactKitCalculator/Calculator.swift +++ b/ReactKitCalculator/Calculator.swift @@ -288,7 +288,7 @@ public class Calculator // string-based toggling of prefixed "-" if acc.hasPrefix(Key.Minus.rawValue) { - return acc.substringFromIndex(advance(acc.startIndex, 1)) + return acc.substringFromIndex(acc.startIndex.advancedBy(1)) } else { return Key.Minus.rawValue + acc @@ -324,7 +324,7 @@ public class Calculator let tokenStream: Stream<_Token> = numTokenStream |> merge(operatorKeyTokenStream) - |> peek { print(); print("tokenStream ---> \($0)") } + |> peek { print(""); print("tokenStream ---> \($0)") } /// /// Quite complex stream-operation using `customize()` to encapsulate `buffer` diff --git a/ReactKitCalculator/Helper.swift b/ReactKitCalculator/Helper.swift index 54f009b..a4677b2 100644 --- a/ReactKitCalculator/Helper.swift +++ b/ReactKitCalculator/Helper.swift @@ -70,7 +70,7 @@ func _calculatorString(num: Double? = nil, raw numString: String? = nil, rtrims // return "inf" or "nan" if needed if !num.isFinite { return "\(num)" } - var (significand, exponent) = _scientificNotation(num) + let (significand, exponent) = _scientificNotation(num) let shouldShowNegativeExponent = (num > -1 && num < 1 && exponent <= -MIN_EXPONENT) let shouldShowPositiveExponent = ((num > 1 || num < -1) && exponent >= MIN_EXPONENT) @@ -80,7 +80,7 @@ func _calculatorString(num: Double? = nil, raw numString: String? = nil, rtrims // add exponent, e.g. 1.2345678e+9 if shouldShowPositiveExponent || shouldShowNegativeExponent { - print() + print("") print("*** calculatorString ***") print("num = \(num)") print("significand = \(significand)") @@ -93,7 +93,7 @@ func _calculatorString(num: Double? = nil, raw numString: String? = nil, rtrims string = _rtrimFloatString(significand.calculatorString) if string.characters.count > SIGNIFICAND_DIGIT + 1 { // +1 for `.Point` - string = string.substringToIndex(advance(string.startIndex, SIGNIFICAND_DIGIT + 1)) + string = string.substringToIndex(string.startIndex.advancedBy(SIGNIFICAND_DIGIT + 1)) } // append exponent @@ -153,7 +153,7 @@ func _commaString(var string: String) -> String // limit to MAX_DIGIT_FOR_NONEXPONENT considering non-number characters if string.characters.count > MAX_DIGIT_FOR_NONEXPONENT + nonNumberCount { - string = string.substringToIndex(advance(string.startIndex, MAX_DIGIT_FOR_NONEXPONENT + nonNumberCount)) + string = string.substringToIndex(string.startIndex.advancedBy(MAX_DIGIT_FOR_NONEXPONENT + nonNumberCount)) } return string @@ -165,13 +165,13 @@ func _rtrimFloatString(var string: String) -> String // trim floating zeros, e.g. `123.000` -> `123.` if string.rangeOfString(Calculator.Key.Point.rawValue) != nil { while string.hasSuffix(Calculator.Key.Num0.rawValue) { - string = string.substringToIndex(advance(string.startIndex, string.characters.count-1)) + string = string.substringToIndex(string.startIndex.advancedBy(string.characters.count-1)) } } // trim suffix `.Point` if needed, e.g. `123.` -> `123` if string.hasSuffix(Calculator.Key.Point.rawValue) { - string = string.substringToIndex(advance(string.startIndex, string.characters.count-1)) + string = string.substringToIndex(string.startIndex.advancedBy(string.characters.count-1)) } return string diff --git a/ReactKitCalculatorTests/ExpressionSpec.swift b/ReactKitCalculatorTests/ExpressionSpec.swift index 1018ac6..d9db7eb 100644 --- a/ReactKitCalculatorTests/ExpressionSpec.swift +++ b/ReactKitCalculatorTests/ExpressionSpec.swift @@ -37,7 +37,7 @@ class ExpressionSpec: QuickSpec #if true // REACT (debug print) calculator.inputStream ~> { key in - print() + print("") print("***************************") print("pressed key = `\(key.rawValue)`") } @@ -46,14 +46,14 @@ class ExpressionSpec: QuickSpec calculator.outputStream ~> { output in let output = output ?? "(nil)"; print("output = `\(output)`") - print() + print("") } // REACT (debug print) calculator.expressionStream ~> { expression in let expression = expression ?? "(nil)"; print("expression = `\(expression)`") - print() + print("") } #endif diff --git a/ReactKitCalculatorTests/OutputSpec.swift b/ReactKitCalculatorTests/OutputSpec.swift index da678e3..fa59c60 100644 --- a/ReactKitCalculatorTests/OutputSpec.swift +++ b/ReactKitCalculatorTests/OutputSpec.swift @@ -37,7 +37,7 @@ class OutputSpec: QuickSpec #if true // REACT (debug print) calculator.inputStream ~> { key in - print() + print("") print("***************************") print("pressed key = `\(key.rawValue)`") } @@ -46,7 +46,7 @@ class OutputSpec: QuickSpec calculator.outputStream ~> { output in let output = output ?? "(nil)"; print("output = `\(output)`") - print() + print("") } #endif From 54d5d49696292f385f22fa9fd722da5af3548974 Mon Sep 17 00:00:00 2001 From: Yasuhiro Inami Date: Wed, 23 Sep 2015 14:38:44 +0900 Subject: [PATCH 3/3] Update ReactKit to v0.12.0 --- Cartfile | 2 +- Cartfile.resolved | 8 ++++---- Carthage/Checkouts/Nimble | 2 +- Carthage/Checkouts/Quick | 2 +- Carthage/Checkouts/ReactKit | 2 +- Carthage/Checkouts/SwiftTask | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Cartfile b/Cartfile index a70f23a..d3db5c3 100644 --- a/Cartfile +++ b/Cartfile @@ -1 +1 @@ -github "ReactKit/ReactKit" "swift/2.0" \ No newline at end of file +github "ReactKit/ReactKit" ~> 0.12.0 \ No newline at end of file diff --git a/Cartfile.resolved b/Cartfile.resolved index b678fa7..cd8218f 100644 --- a/Cartfile.resolved +++ b/Cartfile.resolved @@ -1,4 +1,4 @@ -github "Quick/Nimble" "8baefcc94bc2b58b7be3cd9ebfc3984ea5c8b87e" -github "Quick/Quick" "503f1515427d0cd2eaa19830694dcde60c46d945" -github "ReactKit/SwiftTask" "bbff1f2ceda80dabc3f4cda92ed8506e21320ccc" -github "ReactKit/ReactKit" "7643d9db0cb3c76d97bdb966b9ef568d7f78ab36" +github "Quick/Nimble" "a87c41424b2b8bc7821cf9e0352f87f53daf5263" +github "Quick/Quick" "bfba21156d7b50d250f32424d0280511435206e6" +github "ReactKit/SwiftTask" "4.0.0" +github "ReactKit/ReactKit" "0.12.0" diff --git a/Carthage/Checkouts/Nimble b/Carthage/Checkouts/Nimble index 8baefcc..a87c414 160000 --- a/Carthage/Checkouts/Nimble +++ b/Carthage/Checkouts/Nimble @@ -1 +1 @@ -Subproject commit 8baefcc94bc2b58b7be3cd9ebfc3984ea5c8b87e +Subproject commit a87c41424b2b8bc7821cf9e0352f87f53daf5263 diff --git a/Carthage/Checkouts/Quick b/Carthage/Checkouts/Quick index 503f151..bfba211 160000 --- a/Carthage/Checkouts/Quick +++ b/Carthage/Checkouts/Quick @@ -1 +1 @@ -Subproject commit 503f1515427d0cd2eaa19830694dcde60c46d945 +Subproject commit bfba21156d7b50d250f32424d0280511435206e6 diff --git a/Carthage/Checkouts/ReactKit b/Carthage/Checkouts/ReactKit index 7643d9d..82320b6 160000 --- a/Carthage/Checkouts/ReactKit +++ b/Carthage/Checkouts/ReactKit @@ -1 +1 @@ -Subproject commit 7643d9db0cb3c76d97bdb966b9ef568d7f78ab36 +Subproject commit 82320b60b8dacdb0011f2484fed8a7ab5417c629 diff --git a/Carthage/Checkouts/SwiftTask b/Carthage/Checkouts/SwiftTask index bbff1f2..16c08c0 160000 --- a/Carthage/Checkouts/SwiftTask +++ b/Carthage/Checkouts/SwiftTask @@ -1 +1 @@ -Subproject commit bbff1f2ceda80dabc3f4cda92ed8506e21320ccc +Subproject commit 16c08c095d63af4c8595d7057209e4318d19cacb