Maciej Pilichowski wrote: > Hello, > > I use GetoptLong but I miss something much shorter in usage like > GetoptLong in Perl. In Perl I could write > > GetOptions('re_from=s' => \$re_from, 're_to=s' => \$re_to, 'do' => > \$do_do, 'enum' => \$enum, 'from=i' => \$from, 'step=i' => \$step, > 'width=i' => \$width); > > So in one line -- or two -- I set the possible arguments, their > types, assignment to variables and all the if-checking is done for me. > No need to write loop to check all parameters like in Ruby. > Is any package available which do similar thing for Ruby? > > Thanks in advance, have a good day > bye I'll give you two options. One that I worte that isn't as concise as you've asked, but it has it's own form of simplicity (see http://facets.rubyforge.org). require 'facet/command.rb' class MyCommand < Cosole::Command def __re_from(s); $re_from = s.to_s; end def __re_to(s); $re_to = s.to_s; end def __do; $do_do = true; end def __enum; $enum = true; end def __from(i); $from = i.to_i; end def __step(i); $step = i.to_i; end def __width(i); $width = i.to_i; end # ... end It can't handle using the '=' sign yet, but I plan to add taht soon with a few other featuers. The other is the usage lib (see http://raa.ruby-lang.org/project/usage/) usage = Usage.new "-t to_name -f from_name files_to_send..." puts usage.to_name # => the value after the -t puts usage.from_name # => the value after -f puts usage.files_to_send # => an array of filenames HTH, T.