commander-rb / commander

The complete solution for Ruby command-line executables
MIT License
823 stars 74 forks source link

Mandatory options? #3

Open ggilder opened 9 years ago

ggilder commented 9 years ago

From @deric on October 21, 2013 13:44

Is it possible to specify an option which will be required in order to run command?

Copied from original issue: tj/commander#62

ggilder commented 9 years ago

There's not an automatic way to do that, but you could use something like this:

command :bar do |c|
  c.option '--prefix STRING', String, 'Adds a prefix to bar'
  c.action do |args, options|
    raise ArgumentError.new("Prefix is required!") unless options.prefix
    # ... normal command stuff here ...
  end
end
ggilder commented 9 years ago

From @deric on October 28, 2013 8:16

Ok, thanks. It would be nice to have something like this:

command :bar do |c|
  c.option '--prefix STRING', String, 'Adds a prefix to bar', :mandatory => true
   # ...
end

When mandatory option would be missing, usage will be printed.

ggilder commented 9 years ago

From @sihil on November 11, 2013 17:57

I'd like to see an easy way to have mandatory options as well.

ggilder commented 9 years ago

From @mattes on March 27, 2014 2:19

:+1:

ggilder commented 9 years ago

From @odcinek on May 1, 2014 13:8

:+1:

ggilder commented 9 years ago

From @Sdogruyol on August 9, 2014 18:28

Is there any update on this ?

ggilder commented 9 years ago

Pull requests are welcome! I think this would not be too tricky to implement. In the meantime there's always the workaround I posted above.

ggilder commented 9 years ago

From @Sovietaced on March 25, 2015 7:18

:+1:

Sovietaced commented 9 years ago

I just gave it a shot but didn't get very far. I'm not that familiar with ruby but when I see really idiomatic ruby code I get confused as hell. Going to abort.