File tree Expand file tree Collapse file tree 2 files changed +12
-2
lines changed
Expand file tree Collapse file tree 2 files changed +12
-2
lines changed Original file line number Diff line number Diff line change 55### Enhancements
66
77- Renamed VaradicArgument to VariadicArgument.
8+ - VariadicArgument now supports an optional validator.
89- Adds support for variadic options, allowing the user to repeat options to
910 provide additional values.
1011
Original file line number Diff line number Diff line change @@ -29,19 +29,28 @@ extension ArgumentConvertible {
2929
3030open class VariadicArgument < T : ArgumentConvertible > : ArgumentDescriptor {
3131 public typealias ValueType = [ T ]
32+ public typealias Validator = ( ValueType ) throws -> ValueType
3233
3334 open let name : String
3435 open let description : String ?
36+ open let validator : Validator ?
3537
3638 open var type : ArgumentType { return . argument }
3739
38- public init ( _ name: String , description: String ? = nil ) {
40+ public init ( _ name: String , description: String ? = nil , validator : Validator ? = nil ) {
3941 self . name = name
4042 self . description = description
43+ self . validator = validator
4144 }
4245
4346 open func parse( _ parser: ArgumentParser ) throws -> ValueType {
44- return try Array < T > ( parser: parser)
47+ let value = try Array < T > ( parser: parser)
48+
49+ if let validator = validator {
50+ return try validator ( value)
51+ }
52+
53+ return value
4554 }
4655}
4756
You can’t perform that action at this time.
0 commit comments