-
Notifications
You must be signed in to change notification settings - Fork 80
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
Error when value is NULL #84
Open
wideti
wants to merge
1
commit into
nategood:dev
Choose a base branch
from
wideti:dev
base: dev
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is here because we expect that if the user is supplying the long/short flag that expects an argument, that they would also supply the argument value. Optional flags can still have a default value, but if they user just wants the default value, they don't need to supply to flag on the command line at all. Take this excerpt from
man grep
for example.--regexp/-e
and--file/-f
expect an argument to be supplied. This is the default behavior for all flags in Commando.--ignore-case/-i
and--invert-match/-v
do not expect a value to be supplied as an argument, but this is not because they have some optional argument with a value that can be defaulted per se. It is because they are a Boolean type of flag. They are either supplied, or they are not. Their mere presence on in the command signals all that the application needs to know in order to fulfill the desired behavior.Having a flag that is a hybrid Boolean, and can be supplied on the command line with or without an argument is something else entirely. Like
--color
.For something like this, I would probably want to add a property on
Option
to allow this behavior rather than making it the default behavior for whenOption::$default
is set. I think it would be better if there was another way to set a flag's argument as optional. This would allow us to have a flag like color, which has a default value ofnever
and when supplied without arguments changes the value toauto
, but can take additional argument values likealways
. Color kind of operates like anEnum
so maybe that can be the property name. Check ifOption::isEnum()
etc...