Support for the Ruby 2.4 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 2129
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 2088
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 OptionParser::Arguable#options and OptionParser::Arguable#options= are undefined. Thus, there is no ways to access the OptionParser object via the receiver object.
# File optparse.rb, line 2071
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 2104
def order!(&blk) options.order!(self, &blk) end