Deprecate methods name get* (#172)
Towards #171
diff --git a/lib/src/allow_anything_parser.dart b/lib/src/allow_anything_parser.dart
index a91e155..831e3a6 100644
--- a/lib/src/allow_anything_parser.dart
+++ b/lib/src/allow_anything_parser.dart
@@ -85,6 +85,11 @@
String get usage => '';
@override
+ dynamic defaultFor(String option) {
+ throw ArgumentError('No option named $option');
+ }
+
+ @override
dynamic getDefault(String option) {
throw ArgumentError('No option named $option');
}
diff --git a/lib/src/arg_parser.dart b/lib/src/arg_parser.dart
index c584492..4279738 100644
--- a/lib/src/arg_parser.dart
+++ b/lib/src/arg_parser.dart
@@ -307,9 +307,8 @@
return generateUsage(_optionsAndSeparators, lineLength: usageLineLength);
}
- /// Get the default value for an option. Useful after parsing to test if the
- /// user specified something other than the default.
- dynamic getDefault(String option) {
+ /// Returns the default value for [option].
+ dynamic defaultFor(String option) {
var value = options[option];
if (value == null) {
throw ArgumentError('No option named $option');
@@ -317,6 +316,9 @@
return value.defaultsTo;
}
+ @Deprecated('Use defaultFor instead.')
+ dynamic getDefault(String option) => defaultFor(option);
+
/// Finds the option whose abbreviation is [abbr], or `null` if no option has
/// that abbreviation.
Option? findByAbbreviation(String abbr) {
diff --git a/lib/src/arg_results.dart b/lib/src/arg_results.dart
index fb2d0c8..0e49a76 100644
--- a/lib/src/arg_results.dart
+++ b/lib/src/arg_results.dart
@@ -65,7 +65,7 @@
throw ArgumentError('Could not find an option named "$name".');
}
- return _parser.options[name]!.getOrDefault(_parsed[name]);
+ return _parser.options[name]!.valueOrDefault(_parsed[name]);
}
/// The names of the available options.
diff --git a/lib/src/option.dart b/lib/src/option.dart
index 5361f26..a85acc8 100644
--- a/lib/src/option.dart
+++ b/lib/src/option.dart
@@ -133,12 +133,15 @@
/// For single-valued options, it will be [defaultsTo] if set or `null`
/// otherwise. For multiple-valued options, it will be an empty list or a
/// list containing [defaultsTo] if set.
- dynamic getOrDefault(value) {
+ dynamic valueOrDefault(value) {
if (value != null) return value;
if (isMultiple) return defaultsTo ?? <String>[];
return defaultsTo;
}
+ @Deprecated('Use valueOrDefault instead.')
+ dynamic getOrDefault(value) => valueOrDefault(value);
+
static final _invalidChars = RegExp(r'''[ \t\r\n"'\\/]''');
}
diff --git a/lib/src/parser.dart b/lib/src/parser.dart
index 4860a2e..c14a01d 100644
--- a/lib/src/parser.dart
+++ b/lib/src/parser.dart
@@ -95,7 +95,7 @@
// Invoke the callbacks.
grammar.options.forEach((name, option) {
var callback = option.callback;
- if (callback != null) callback(option.getOrDefault(results[name]));
+ if (callback != null) callback(option.valueOrDefault(results[name]));
});
// Add in the leftover arguments we didn't parse to the innermost command.
diff --git a/test/allow_anything_test.dart b/test/allow_anything_test.dart
index 0ca31bf..2addd26 100644
--- a/test/allow_anything_test.dart
+++ b/test/allow_anything_test.dart
@@ -32,7 +32,7 @@
});
test('getDefault() throws an error', () {
- expect(() => parser.getDefault('option'), throwsArgumentError);
+ expect(() => parser.defaultFor('option'), throwsArgumentError);
});
test('parses all values as rest arguments', () {
diff --git a/test/args_test.dart b/test/args_test.dart
index 70ccd78..d3bfd44 100644
--- a/test/args_test.dart
+++ b/test/args_test.dart
@@ -124,13 +124,13 @@
test('returns the default value for an option', () {
var parser = ArgParser();
parser.addOption('mode', defaultsTo: 'debug');
- expect(parser.getDefault('mode'), 'debug');
+ expect(parser.defaultFor('mode'), 'debug');
});
test('throws if the option is unknown', () {
var parser = ArgParser();
parser.addOption('mode', defaultsTo: 'debug');
- throwsIllegalArg(() => parser.getDefault('undefined'));
+ throwsIllegalArg(() => parser.defaultFor('undefined'));
});
});
@@ -261,7 +261,7 @@
});
group('Option', () {
- test('.getOrDefault() returns a type-specific default value', () {
+ test('.valueOrDefault() returns a type-specific default value', () {
var parser = ArgParser();
parser.addFlag('flag-no', defaultsTo: null);
parser.addFlag('flag-def', defaultsTo: true);
@@ -270,18 +270,19 @@
parser.addMultiOption('multi-no');
parser.addMultiOption('multi-def', defaultsTo: ['def']);
- expect(parser.options['flag-no']!.getOrDefault(null), equals(null));
- expect(parser.options['flag-no']!.getOrDefault(false), equals(false));
- expect(parser.options['flag-def']!.getOrDefault(null), equals(true));
- expect(parser.options['flag-def']!.getOrDefault(false), equals(false));
- expect(parser.options['single-no']!.getOrDefault(null), equals(null));
- expect(parser.options['single-no']!.getOrDefault('v'), equals('v'));
- expect(parser.options['single-def']!.getOrDefault(null), equals('def'));
- expect(parser.options['single-def']!.getOrDefault('v'), equals('v'));
- expect(parser.options['multi-no']!.getOrDefault(null), equals([]));
- expect(parser.options['multi-no']!.getOrDefault(['v']), equals(['v']));
- expect(parser.options['multi-def']!.getOrDefault(null), equals(['def']));
- expect(parser.options['multi-def']!.getOrDefault(['v']), equals(['v']));
+ expect(parser.options['flag-no']!.valueOrDefault(null), equals(null));
+ expect(parser.options['flag-no']!.valueOrDefault(false), equals(false));
+ expect(parser.options['flag-def']!.valueOrDefault(null), equals(true));
+ expect(parser.options['flag-def']!.valueOrDefault(false), equals(false));
+ expect(parser.options['single-no']!.valueOrDefault(null), equals(null));
+ expect(parser.options['single-no']!.valueOrDefault('v'), equals('v'));
+ expect(parser.options['single-def']!.valueOrDefault(null), equals('def'));
+ expect(parser.options['single-def']!.valueOrDefault('v'), equals('v'));
+ expect(parser.options['multi-no']!.valueOrDefault(null), equals([]));
+ expect(parser.options['multi-no']!.valueOrDefault(['v']), equals(['v']));
+ expect(
+ parser.options['multi-def']!.valueOrDefault(null), equals(['def']));
+ expect(parser.options['multi-def']!.valueOrDefault(['v']), equals(['v']));
});
});
}