Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 library args.src.arg_results; | 5 library args.src.arg_results; |
| 6 | 6 |
| 7 import 'package:collection/wrappers.dart'; | 7 import 'package:collection/wrappers.dart'; |
| 8 | 8 |
| 9 import 'arg_parser.dart'; | 9 import 'arg_parser.dart'; |
| 10 | 10 |
| 11 /// Creates a new [ArgResults]. | 11 /// Creates a new [ArgResults]. |
| 12 /// | 12 /// |
| 13 /// Since [ArgResults] doesn't have a public constructor, this lets [Parser] | 13 /// Since [ArgResults] doesn't have a public constructor, this lets [Parser] |
| 14 /// get to it. This function isn't exported to the public API of the package. | 14 /// get to it. This function isn't exported to the public API of the package. |
| 15 ArgResults newArgResults(ArgParser parser, Map<String, dynamic> parsed, | 15 ArgResults newArgResults(ArgParser parser, Map<String, dynamic> parsed, |
| 16 String name, ArgResults command, List<String> rest) { | 16 String name, ArgResults command, List<String> rest, |
| 17 return new ArgResults._(parser, parsed, name, command, rest); | 17 List<String> original) { |
| 18 return new ArgResults._(parser, parsed, name, command, rest, original); | |
| 18 } | 19 } |
| 19 | 20 |
| 20 /// The results of parsing a series of command line arguments using | 21 /// The results of parsing a series of command line arguments using |
| 21 /// [ArgParser.parse()]. | 22 /// [ArgParser.parse()]. |
| 22 /// | 23 /// |
| 23 /// Includes the parsed options and any remaining unparsed command line | 24 /// Includes the parsed options and any remaining unparsed command line |
| 24 /// arguments. | 25 /// arguments. |
| 25 class ArgResults { | 26 class ArgResults { |
| 26 /// The [ArgParser] whose options were parsed for these results. | 27 /// The [ArgParser] whose options were parsed for these results. |
| 27 final ArgParser _parser; | 28 final ArgParser _parser; |
| (...skipping 11 matching lines...) Expand all Loading... | |
| 39 final ArgResults command; | 40 final ArgResults command; |
| 40 | 41 |
| 41 /// The remaining command-line arguments that were not parsed as options or | 42 /// The remaining command-line arguments that were not parsed as options or |
| 42 /// flags. | 43 /// flags. |
| 43 /// | 44 /// |
| 44 /// If `--` was used to separate the options from the remaining arguments, | 45 /// If `--` was used to separate the options from the remaining arguments, |
| 45 /// it will not be included in this list unless parsing stopped before the | 46 /// it will not be included in this list unless parsing stopped before the |
| 46 /// `--` was reached. | 47 /// `--` was reached. |
| 47 final List<String> rest; | 48 final List<String> rest; |
| 48 | 49 |
| 50 /// The original list of arguments that were parsed. | |
| 51 final List<String> original; | |
|
Bob Nystrom
2014/12/11 01:13:23
What do you think of "arguments" or "allArguments"
nweiz
2014/12/11 01:17:18
Done.
| |
| 52 | |
| 49 /// Creates a new [ArgResults]. | 53 /// Creates a new [ArgResults]. |
| 50 ArgResults._(this._parser, this._parsed, this.name, this.command, | 54 ArgResults._(this._parser, this._parsed, this.name, this.command, |
| 51 List<String> rest) | 55 List<String> rest, List<String> original) |
| 52 : this.rest = new UnmodifiableListView(rest); | 56 : this.rest = new UnmodifiableListView(rest), |
| 57 this.original = new UnmodifiableListView(original); | |
| 53 | 58 |
| 54 /// Gets the parsed command-line option named [name]. | 59 /// Gets the parsed command-line option named [name]. |
| 55 operator [](String name) { | 60 operator [](String name) { |
| 56 if (!_parser.options.containsKey(name)) { | 61 if (!_parser.options.containsKey(name)) { |
| 57 throw new ArgumentError('Could not find an option named "$name".'); | 62 throw new ArgumentError('Could not find an option named "$name".'); |
| 58 } | 63 } |
| 59 | 64 |
| 60 return _parser.options[name].getOrDefault(_parsed[name]); | 65 return _parser.options[name].getOrDefault(_parsed[name]); |
| 61 } | 66 } |
| 62 | 67 |
| (...skipping 19 matching lines...) Expand all Loading... | |
| 82 /// value would be used instead. | 87 /// value would be used instead. |
| 83 bool wasParsed(String name) { | 88 bool wasParsed(String name) { |
| 84 var option = _parser.options[name]; | 89 var option = _parser.options[name]; |
| 85 if (option == null) { | 90 if (option == null) { |
| 86 throw new ArgumentError('Could not find an option named "$name".'); | 91 throw new ArgumentError('Could not find an option named "$name".'); |
| 87 } | 92 } |
| 88 | 93 |
| 89 return _parsed.containsKey(name); | 94 return _parsed.containsKey(name); |
| 90 } | 95 } |
| 91 } | 96 } |
| OLD | NEW |