Comments (4)
Hi, I believe that's actually related to the underlying behavior of OptionParser. What I think you want to do is set up the option like this:
c.option '--[no-]some-switch', 'Some switch that does something'
OptionParser will then correctly parse "--some-switch" as some_switch = true, and "--no-some-switch" as some_switch = false.
Let me know if that solves the issue for you... we could probably also add something about that to the documentation to make it more clear.
-Gabriel
from commander.
Hi Gabriel:
First thanks for your rapid response
This is a problem of what I expected the gem should do, and what it really does.
For me is really weird that if I run something like this
$ test testme --no-foo-bar # => options.no_foo_bar is false
and then I do
$ test testme --foo-bar # => options.foo_bar is true
I expected that the return value were true if you call the option and false or nil if you don't call the option
About your example. In my case I don't need both options --some-switch and --no-some-switch I simply need the --no-* option
from commander.
I see - I definitely understand why that is a little confusing. However that is the behavior of OptionParser (which is part of the Ruby standard library) - it reacts a different way to options that start with "no-". Because that's part of the Ruby standard library, any Ruby command-line tool would parse that type of option the same way... so I feel like it's not really up to commander to change this behavior.
In your case, if you only need the "--no-*" option, I guess you could just test if it's false vs. nil.
Hope that helps!
from commander.
Yeap I was afraid of false vs nil. thanks Gabriel
from commander.
Related Issues (20)
- Upgrade to rubocop 0.29.1; bump gem HOT 2
- Unable to build a automatic test tool that tests the commander Js's command action with a return value. HOT 1
- Mandatory options? HOT 9
- Highlight code in README.rdoc plz HOT 1
- Question : ctrl-c and listener HOT 1
- The `find` statement fails on Windows HOT 2
- c.option '-f', '--foo-bar' ... dash in option name issue HOT 1
- add support for option terminator -- HOT 1
- Can't figure out how to use commander using the "Modular" style HOT 5
- when specifying options, the "--no" version of a flag must appear after the flag HOT 2
- Use HighLine menu system HOT 4
- post-argument-parsing hook HOT 11
- -t and --trace confused HOT 1
- Support for pry HOT 9
- Ruby warning: circular require considered harmful HOT 1
- --help should display the command flags/options of the default command HOT 2
- Using `always_trace!` should hide the `--trace` option in the help output HOT 2
- Option parsing error (incomplete option name) HOT 4
- Able to access options set by global_option() outside of the command block HOT 9
- Default help formatter hard limits command length to 20 characters HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from commander.