On Mon, Nov 15, 2010 at 11:17 PM, Chris Patti <cpatti / gmail.com> wrote: > On Mon, Nov 15, 2010 at 4:45 PM, Robert Klemme > <shortcutter / googlemail.com> wrote: >> On 11/15/2010 10:27 PM, Chris Patti wrote: >>> >>> How can I make my code print the usage even if zero options are given? >>> ¨Â èáªôèïõçèôïðôó®ïîßôáéì ÷ïõìäï ôèéóâõéô äïåóî§óååí ôï âå >>> working. ¨Âèå õóáçðòéîôó ðòïðåòìù éæ õóè ôèïõçè>>> --- >>> require 'optparse' >>> >>> options = {} >> >> o = OptionParser.new do |opts| >> >>> opts.banner = "Usage: #$0 [options] [terms]" >>> >>> opts.on("-a", "--automatic", "Use current Git repo to determine >>> current and next release branch and tag names") do |a| >>> options[:automatic] = a >>> end >>> >>> opts.on("-n", "--next-branch [nextbranch]", "The branch you want >>> this script to create.") do |n| >>> options[:nextbranch] = n >>> end >>> >>> opts.on("-t", "--tag [tag]", "The tag you want the new branch >>> created from.") do |t| >>> options[:tag] = t >>> end >>> >>> opts.on_tail("-h", "--help", "Show this help message.") do >>> ¨Âõôïðôó >>> ¨Âøé>>> end >>> >>> end >> >> o.parse! >> >> if ARGV.empty? >> ¨Âõô>> else >> do whatever >> end >> >> Kind regards >> >> ¨Âïâåò>> >> > > This works perfectly, thanks much! > > (I never thought to mix querying ARGV with the OptionsParser class) When I think of it you probably also want to consider this variant: o = OptionParser.new do |opts| ... end if ARGV.empty? puts o else o.parse! ARGV # main end Depends on when you want to detect the "emptiness". Btw, on_tail only determines where the option is printed when printing usage IIRC. Kind regards robert -- remember.guy do |as, often| as.you_can - without end http://blog.rubybestpractices.com/