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.