From: Jos Backus Date: 2005-03-15T10:48:36+09:00 Subject: OptionParser question OptionParser is still a mystery to me. In the example below, how do I distinguish between a -c flag without an argument (which is a fatal syntax error) and no -c flag at all? In both cases client equals nil. There doesn't seem to be a way to intercept the `missing argument' message, or if there is, I can't seem to find it in the documentation :-/ require 'optparse' client = nil ARGV.options do |opt| opt.on("-c CLIENT", String) do |s| puts "client: #{s}" client = s end opt.parse! end puts "client is #{client}" if client puts "done" Running the example yields: lizzy:~% ruby op -c foo client: foo client is foo done lizzy:~% ruby op -c op: missing argument: -c done lizzy:~% ruby op done lizzy:~% -- Jos Backus jos at catnook.com