optparse を require すると ARGV に OptionParser::Arguable の機能 が加わります。以下の書き方ができるようになります。 OptionParser::Arguable#getopts はオプションを保持した Hash を返します。
#!/usr/bin/env ruby
require 'optparse'
opts = ARGV.getopts("vf:", "verbose", "filename:", "maxsize:1024")
p opts
--help
が使える$ ./getopts-sample --help
Usage: getopts-sample [options]
-v
-f VAL
--verbose
--filename=VAL
--maxsize=1024
$ ./getopts-sample -v
{"v"=>true, "f"=>nil, "verbose"=>false, "filename"=>nil, "maxsize"=>"1024"}
$ ./getopts-sample --verbose
{"v"=>false, "f"=>nil, "verbose"=>true, "filename"=>nil, "maxsize"=>"1024"}
$ ./getopts-sample -f example.txt
{"v"=>false, "f"=>"example.txt", "verbose"=>false, "filename"=>nil, "maxsize"=>"1024"}
$ ./getopts-sample --filename example.txt
{"v"=>false, "f"=>nil, "verbose"=>false, "filename"=>"example.txt", "maxsize"=>"1024"}
$ ./getopts-sample --maxsize 4096
{"v"=>false, "f"=>nil, "verbose"=>false, "filename"=>nil, "maxsize"=>"4096"}