0001 // 0002 // ArgConvertible.swift 0003 // ArgConvertible 0004 // 0005 // Created by Omar Abdelhafith on 02/11/2015. 0006 // Copyright © 2015 Omar Abdelhafith. All rights reserved. 0007 // 0008 0009 0010 /** 0011 * Any type that extends ArgConvertibleType can be used in ask and choose 0012 */ 0013 public protocol ArgConvertibleType{ 0014 0015 /// Create an instance out of a string 0016 static func fromString
ArgConvertible.swift:23 extension Int: ArgConvertibleType {ArgConvertible.swift:34 extension Double: ArgConvertibleType {ArgConvertible.swift:44 extension Float: ArgConvertibleType {ArgConvertible.swift:55 extension String: ArgConvertibleType {Ask.swift:33 public func ask<T: ArgConvertibleType>(prompt: String, type: T.Type, customizationBlock: (AskSettings<T> -> Void)? = nil) -> T {Ask.swift:50 func getValidatedString<T: ArgConvertibleType, W: AskerValidator where W.Item == T>(validator: W) -> T {Ask.swift:56 func getValidatedStringWithConfirmation<T: ArgConvertibleType, W: AskerValidator where W.Item == T>(validator: W) -> T {(string: String) -> Self? 0017 0018 /// Return the display name of a type 0019 static func typeName
AskSettings.swift:39 return T.fromString(string)!AskSettings.swift:53 guard let validatedItem = T.fromString(string) else {AskSettings.swift:69 return T.fromString(string)!() -> String 0020 } 0021 0022 0023 extension Int: ArgConvertibleType { 0024 public static func fromString(string: String) -> Int? { 0025 return Int(string) 0026 } 0027 0028 public static func typeName() -> String { 0029 return "Integer" 0030 } 0031 } 0032 0033 0034 extension Double: ArgConvertibleType { 0035 public static func fromString(string: String) -> Double? { 0036 return Double(string) 0037 } 0038 0039 public static func typeName() -> String { 0040 return "Double" 0041 } 0042 } 0043 0044 extension Float: ArgConvertibleType { 0045 public static func fromString(string: String) -> Float? { 0046 return Float(string) 0047 } 0048 0049 public static func typeName() -> String { 0050 return "Float" 0051 } 0052 } 0053 0054 0055 extension String: ArgConvertibleType { 0056 public static func fromString(string: String) -> String? { 0057 return string 0058 } 0059 0060 public static func typeName() -> String { 0061 return "String" 0062 } 0063 } 0064
AskSettings.swift:54 return "You must enter a valid \(T.typeName())."