0001 // 0002 // CommandSignature.swift 0003 // Pods 0004 // 0005 // Created by Jake Heiser on 3/9/15. 0006 // 0007 // 0008 0009 import Foundation 0010 0011 class CommandSignature{ 0012 0013 var requiredParameters
CLI.swift:165 let commandSignature = CommandSignature(command.commandSignature)CommandArguments.swift:21 init(rawArguments: RawArguments, signature: CommandSignature) {CommandArguments.swift:27 class func fromRawArguments(rawArguments: RawArguments, signature: CommandSignature) throws -> CommandArguments {: [String] = [] 0014 var optionalParameters
CommandArguments.swift:34 if arguments.count < signature.requiredParameters.count {CommandArguments.swift:35 throw CLIError.Error(errorMessage(expectedCount: signature.requiredParameters.count, givenCount: arguments.count))CommandArguments.swift:38 if !signature.collectRemainingArguments && signature.optionalParameters.isEmpty && arguments.count != signature.requiredParameters.count {CommandArguments.swift:39 throw CLIError.Error(errorMessage(expectedCount: signature.requiredParameters.count, givenCount: arguments.count))CommandArguments.swift:42 if !signature.collectRemainingArguments && arguments.count > signature.requiredParameters.count + signature.optionalParameters.count {CommandArguments.swift:43 throw CLIError.Error(errorMessage(expectedCount: signature.requiredParameters.count + signature.optionalParameters.count, givenCount: arguments.count))CommandArguments.swift:49 for i in 0..<signature.requiredParameters.count {CommandArguments.swift:50 let parameter = signature.requiredParameters[i]CommandArguments.swift:56 if !signature.optionalParameters.isEmpty && arguments.count > signature.requiredParameters.count {CommandArguments.swift:58 let index = i + signature.requiredParameters.countCommandArguments.swift:70 let parameter = signature.optionalParameters.isEmpty ? signature.requiredParameters[signature.requiredParameters.count-1] : signature.optionalParameters[signature.optionalParameters.count-1]CommandArguments.swift:70 let parameter = signature.optionalParameters.isEmpty ? signature.requiredParameters[signature.requiredParameters.count-1] : signature.optionalParameters[signature.optionalParameters.count-1]CommandArguments.swift:74 let startingIndex = signature.requiredParameters.count + signature.optionalParameters.countCommandSignature.swift:44 requiredParameters.append(parameter)CommandSignature.swift:52 return requiredParameters.isEmpty && optionalParameters.isEmpty: [String] = [] 0015 var collectRemainingArguments
CommandArguments.swift:38 if !signature.collectRemainingArguments && signature.optionalParameters.isEmpty && arguments.count != signature.requiredParameters.count {CommandArguments.swift:42 if !signature.collectRemainingArguments && arguments.count > signature.requiredParameters.count + signature.optionalParameters.count {CommandArguments.swift:43 throw CLIError.Error(errorMessage(expectedCount: signature.requiredParameters.count + signature.optionalParameters.count, givenCount: arguments.count))CommandArguments.swift:56 if !signature.optionalParameters.isEmpty && arguments.count > signature.requiredParameters.count {CommandArguments.swift:57 for i in 0..<signature.optionalParameters.count {CommandArguments.swift:62 let parameter = signature.optionalParameters[i]CommandArguments.swift:70 let parameter = signature.optionalParameters.isEmpty ? signature.requiredParameters[signature.requiredParameters.count-1] : signature.optionalParameters[signature.optionalParameters.count-1]CommandArguments.swift:70 let parameter = signature.optionalParameters.isEmpty ? signature.requiredParameters[signature.requiredParameters.count-1] : signature.optionalParameters[signature.optionalParameters.count-1]CommandArguments.swift:70 let parameter = signature.optionalParameters.isEmpty ? signature.requiredParameters[signature.requiredParameters.count-1] : signature.optionalParameters[signature.optionalParameters.count-1]CommandArguments.swift:74 let startingIndex = signature.requiredParameters.count + signature.optionalParameters.countCommandSignature.swift:33 assert(optionalParameters.count == 0, "All required parameters must come before any optional parameter.")CommandSignature.swift:48 optionalParameters.append(parameter)CommandSignature.swift:52 return requiredParameters.isEmpty && optionalParameters.isEmpty= false 0016 0017 init
CommandArguments.swift:38 if !signature.collectRemainingArguments && signature.optionalParameters.isEmpty && arguments.count != signature.requiredParameters.count {CommandArguments.swift:42 if !signature.collectRemainingArguments && arguments.count > signature.requiredParameters.count + signature.optionalParameters.count {CommandArguments.swift:69 if signature.collectRemainingArguments {CommandSignature.swift:26 collectRemainingArguments = true(_ string: String) { 0018 let parameters = string.componentsSeparatedByString(" ").filter { !$0.isEmpty } 0019 0020 let requiredRegex = try! NSRegularExpression(pattern: "^<.*>$", options: []) 0021 let optionalRegex = try! NSRegularExpression(pattern: "^\\[<.*>\\]$", options: []) 0022 0023 for parameter in parameters { 0024 if parameter == "..." { 0025 assert(parameter == parameters.last, "The collection operator (...) must come at the end of a command signature.") 0026 collectRemainingArguments = true 0027 continue 0028 } 0029 0030 let parameterRange = NSRange(location: 0, length: parameter.characters.count) 0031 0032 if requiredRegex.numberOfMatchesInString(parameter, options: [], range: parameterRange) > 0 { 0033 assert(optionalParameters.count == 0, "All required parameters must come before any optional parameter.") 0034 required(parameter.trimEndsByLength(1)) 0035 } else if optionalRegex.numberOfMatchesInString(parameter, options: [], range: parameterRange) > 0 { 0036 optional(parameter.trimEndsByLength(2)) 0037 } else { 0038 assert(false, "Unrecognized parameter format: \(parameter)") 0039 } 0040 } 0041 } 0042 0043 func required
CLI.swift:165 let commandSignature = CommandSignature(command.commandSignature)(parameter: String) { 0044 requiredParameters.append(parameter) 0045 } 0046 0047 func optional
CommandSignature.swift:34 required(parameter.trimEndsByLength(1))(parameter: String) { 0048 optionalParameters.append(parameter) 0049 } 0050 0051 var isEmpty
CommandSignature.swift:36 optional(parameter.trimEndsByLength(2)): Bool { 0052 return requiredParameters.isEmpty && optionalParameters.isEmpty 0053 } 0054 0055 } 0056
CommandArguments.swift:28 if signature.isEmpty {