From: "Christopher J. Bottaro" Date: 2007-05-28T03:17:32+09:00 Subject: please help me with OptionParser Here's the pastebin of this post if you prefer looking at formatted source: http://pastebin.ca/514353 Ok, I'm having a multitude of problems with OptionParser. First, I can't get it to work following the online documentation. Second, I got it to work by adding :REQUIRED to the on() method call, but that doesn't work as expected: the argument isn't really "required"; OptionParser does not bomb if the argument is omitted. Third, I cannot get a switch to accept multiple arguments. --my_arg 1 2 3 I want an array [1, 2, 3]. Thanks for the help, the rest of the message contains my pastebin post: !/usr/bin/env ruby require 'optparse' require 'ostruct' options = OpenStruct.new options.client_ids = [] options.save = false op = OptionParser.new do |opts| opts.on("-c", "--client", "client id to migrate for") { |client_id| options.client_ids << client_id } opts.on_tail("-h", "--help", "Show this message") { puts opts; exit } end begin op.parse! rescue Exception => e puts op puts e exit end puts options # ruby script.rb --client 123 # # # if I change on() to be: opts.on("-c", "--client", Integer "client id to migrate for") { | client_id| options.client_ids << client_id } # then, ruby script.rb --client 123 # # # furthermore it works if I change on() to be: opts.on("-c", "--client", :REQUIRED, Integer "client id to migrate for") { |client_id| options.client_ids << client_id } # then, ruby script.rb --client 123 # # # which is correct, but if I run, ruby script.rb, it does not bomb out saying it's missing a required argument. # and still furthermore, I can't do something like this: ruby script.rb --client 123 456 # and get #