-
Notifications
You must be signed in to change notification settings - Fork 23
ArgsResult should have a way to determine if the user actual set the value #126
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
<img src="https://avatars.githubusercontent.com/u/17034?v=3" align="left" width="48" height="48"hspace="10"> Comment by kevmoo Added Area-Library, Library-Args, Triaged labels. |
<img src="https://avatars.githubusercontent.com/u/4865287?v=3" align="left" width="48" height="48"hspace="10"> Comment by lrhn Removed Area-Library label. |
<img src="https://avatars.githubusercontent.com/u/444270?v=3" align="left" width="48" height="48"hspace="10"> Comment by seaneagan Interesting. Dart used to have an equivalent feature for function arguments, until it was removed by popular demand (issue dart-lang/sdk#9097). If the default value is calculated like that, then does it make sense to have an explicit default value? Seems like it might make more sense to just explain the default calculation in the |
This comment was originally written by [email protected] I like having default values for a nice out of the box experience. I ended creating a settings object that takes a map as a source and provides the default values if they're not in the map. Then I merge Platform.environment and ArgResults[] into the map provided to the settings object. There's a bit of friction as ArgResults doesn't implement Map or provide an accessor to a Map view, so I have to loop through the options rather than just using Map.addAll. Any thoughts on why ArgResults doesn't implement map or provide an accessor to a Map view? I think having ArgResults implement Map or provide an accessor to a Map view might make merging configuration sources cleaner. |
<img src="https://avatars.githubusercontent.com/u/3276024?v=3" align="left" width="48" height="48"hspace="10"> Comment by anders-sandholm Removed Library-Args label. |
<img src="https://avatars.githubusercontent.com/u/46275?v=3" align="left" width="48" height="48"hspace="10"> Comment by munificent
Agreed. In particular, default values are shown in the usage information.
Args is super old so I think the map type was still in flux when I first wrote it. I'll follow up on the other bug for this. Set owner to @munificent. |
<img src="https://avatars.githubusercontent.com/u/46275?v=3" align="left" width="48" height="48"hspace="10"> Comment by munificent I just pushed arg 0.12.0, which adds a .wasParsed() method to ArgResults. Added Fixed label. |
This comment was originally written by [email protected] Excellent. Thank you! |
Originally opened as dart-lang/sdk#16227
This issue was originally filed by [email protected]
Currently there is no way to differentiate between the user specifying the default value and the user not specifying anything, both result in the default value being in ArgResults. This causes a problem when you have default values and multiple sources of configuration information that you'd like to merge. For example if you would like to have a default configuration that you to allow be overridden by environment variables and command line arguments, with command line arguments having the highest priority.
The text was updated successfully, but these errors were encountered: