Support for the Ruby 2.3 series has ended. See here for reference.
Extends command line arguments array (ARGV) to parse itself.
Substitution of getopts is possible as follows. Also see OptionParser#getopts.
def getopts(*args) ($OPT = ARGV.getopts(*args)).each do |opt, val| eval "$OPT_#{opt.gsub(/[^A-Za-z0-9_]/, '_')} = val" end rescue OptionParser::ParseError end
# File optparse.rb, line 2116 def getopts(*args) options.getopts(self, *args) end
Actual OptionParser object, automatically created if nonexistent.
If called with a block, yields the OptionParser object and returns the result
of the block. If an OptionParser::ParseError
exception occurs in the block, it is rescued, a error message printed to
STDERR and nil
returned.
# File optparse.rb, line 2075 def options @optparse ||= OptionParser.new @optparse.default_argv = self block_given? or return @optparse begin yield @optparse rescue ParseError @optparse.warn $! nil end end
Sets OptionParser object, when
opt
is false
or nil
, methods #options and #options= are undefined. Thus,
there is no ways to access the OptionParser object via the receiver
object.
# File optparse.rb, line 2058 def options=(opt) unless @optparse = opt class << self undef_method(:options) undef_method(:options=) end end end
Parses self
destructively in order and returns
self
containing the rest arguments left unparsed.
# File optparse.rb, line 2091 def order!(&blk) options.order!(self, &blk) end