diff --git a/lib/optparse.rb b/lib/optparse.rb
index c66c842..ccfc3f3 100644
--- a/lib/optparse.rb
+++ b/lib/optparse.rb
@@ -1172,8 +1172,8 @@ def self.inc(arg, default = nil)
#
# See self.inc
#
- def inc(*args)
- self.class.inc(*args)
+ def inc(...)
+ self.class.inc(...)
end
#
@@ -1234,11 +1234,11 @@ def self.top() DefaultList end
#
# accept(t, pat, &block)
#
- def accept(*args, &blk) top.accept(*args, &blk) end
+ def accept(...) top.accept(...) end
#
# See #accept.
#
- def self.accept(*args, &blk) top.accept(*args, &blk) end
+ def self.accept(...) top.accept(...) end
#
# Directs to reject specified class argument.
@@ -1247,11 +1247,11 @@ def self.accept(*args, &blk) top.accept(*args, &blk) end
#
# reject(type)
#
- def reject(*args, &blk) top.reject(*args, &blk) end
+ def reject(...) top.reject(...) end
#
# See #reject.
#
- def self.reject(*args, &blk) top.reject(*args, &blk) end
+ def self.reject(...) top.reject(...) end
#
# Instance methods
@@ -1643,8 +1643,8 @@ def define(*opts, &block)
#
# :include: ../doc/optparse/creates_option.rdoc
#
- def on(*opts, &block)
- define(*opts, &block)
+ def on(...)
+ define(...)
self
end
alias def_option define
@@ -1666,8 +1666,8 @@ def define_head(*opts, &block)
#
# The new option is added at the head of the summary.
#
- def on_head(*opts, &block)
- define_head(*opts, &block)
+ def on_head(...)
+ define_head(...)
self
end
alias def_head_option define_head
@@ -1690,8 +1690,8 @@ def define_tail(*opts, &block)
#
# The new option is added at the tail of the summary.
#
- def on_tail(*opts, &block)
- define_tail(*opts, &block)
+ def on_tail(...)
+ define_tail(...)
self
end
alias def_tail_option define_tail
@@ -1719,18 +1719,18 @@ def separator(string)
#
# Returns the rest of +argv+ left unparsed.
#
- def order(*argv, **keywords, &nonopt)
+ def order(*argv, ...)
argv = argv[0].dup if argv.size == 1 and Array === argv[0]
- order!(argv, **keywords, &nonopt)
+ order!(argv, ...)
end
#
# Same as #order, but removes switches destructively.
# Non-option arguments remain in +argv+.
#
- def order!(argv = default_argv, into: nil, **keywords, &nonopt)
+ def order!(argv = default_argv, into: nil, ...)
setter = ->(name, val) {into[name.to_sym] = val} if into
- parse_in_order(argv, setter, **keywords, &nonopt)
+ parse_in_order(argv, setter, ...)
end
def parse_in_order(argv = default_argv, setter = nil, exact: require_exact, **, &nonopt) # :nodoc:
@@ -1846,18 +1846,18 @@ def callback!(cb, max_arity, *args) # :nodoc:
# []= method (so it can be Hash, or OpenStruct, or other
# similar object).
#
- def permute(*argv, **keywords)
+ def permute(*argv, ...)
argv = argv[0].dup if argv.size == 1 and Array === argv[0]
- permute!(argv, **keywords)
+ permute!(argv, ...)
end
#
# Same as #permute, but removes switches destructively.
# Non-option arguments remain in +argv+.
#
- def permute!(argv = default_argv, **keywords)
+ def permute!(argv = default_argv, ...)
nonopts = []
- order!(argv, **keywords) {|nonopt| nonopts << nonopt}
+ order!(argv, ...) {|nonopt| nonopts << nonopt}
argv[0, 0] = nonopts
argv
end
@@ -1869,20 +1869,20 @@ def permute!(argv = default_argv, **keywords)
# values are stored there via []= method (so it can be Hash,
# or OpenStruct, or other similar object).
#
- def parse(*argv, **keywords)
+ def parse(*argv, ...)
argv = argv[0].dup if argv.size == 1 and Array === argv[0]
- parse!(argv, **keywords)
+ parse!(argv, ...)
end
#
# Same as #parse, but removes switches destructively.
# Non-option arguments remain in +argv+.
#
- def parse!(argv = default_argv, **keywords)
+ def parse!(argv = default_argv, ...)
if ENV.include?('POSIXLY_CORRECT')
- order!(argv, **keywords)
+ order!(argv, ...)
else
- permute!(argv, **keywords)
+ permute!(argv, ...)
end
end
@@ -1905,7 +1905,7 @@ def parse!(argv = default_argv, **keywords)
# # params[:bar] = "x" # --bar x
# # params[:zot] = "z" # --zot Z
#
- def getopts(*args, symbolize_names: false, **keywords)
+ def getopts(*args, symbolize_names: false, ...)
argv = Array === args.first ? args.shift : default_argv
single_options, *long_options = *args
@@ -1936,7 +1936,7 @@ def getopts(*args, symbolize_names: false, **keywords)
end
end
- parse_in_order(argv, setter, **keywords)
+ parse_in_order(argv, setter, ...)
result
end
@@ -1951,9 +1951,9 @@ def self.getopts(*args, symbolize_names: false)
# Traverses @stack, sending each element method +id+ with +args+ and
# +block+.
#
- def visit(id, *args, &block) # :nodoc:
+ def visit(id, ...) # :nodoc:
@stack.reverse_each do |el|
- el.__send__(id, *args, &block)
+ el.__send__(id, ...)
end
nil
end
@@ -2049,10 +2049,10 @@ def candidate(word)
# The optional +into+ keyword argument works exactly like that accepted in
# method #parse.
#
- def load(filename = nil, **keywords)
+ def load(filename = nil, ...)
unless filename
basename = File.basename($0, '.*')
- return true if load(File.expand_path("~/.options/#{basename}"), **keywords) rescue nil
+ return true if load(File.expand_path("~/.options/#{basename}"), ...) rescue nil
basename << ".options"
if !(xdg = ENV['XDG_CONFIG_HOME']) or xdg.empty?
# https://specifications.freedesktop.org/basedir-spec/latest/#variables
@@ -2072,11 +2072,11 @@ def load(filename = nil, **keywords)
next if !dir or dir.empty?
filename = File.join(dir, basename)
filename = File.expand_path(filename) if expand
- load(filename, **keywords) rescue nil
+ load(filename, ...) rescue nil
}
end
begin
- parse(*File.readlines(filename, chomp: true), **keywords)
+ parse(*File.readlines(filename, chomp: true), ...)
true
rescue Errno::ENOENT, Errno::ENOTDIR
false
@@ -2089,10 +2089,10 @@ def load(filename = nil, **keywords)
#
# +env+ defaults to the basename of the program.
#
- def environment(env = File.basename($0, '.*'), **keywords)
+ def environment(env = File.basename($0, '.*'), ...)
env = ENV[env] || ENV[env.upcase] or return
require 'shellwords'
- parse(*Shellwords.shellwords(env), **keywords)
+ parse(*Shellwords.shellwords(env), ...)
end
#
@@ -2410,19 +2410,19 @@ def options
# Parses +self+ destructively in order and returns +self+ containing the
# rest arguments left unparsed.
#
- def order!(**keywords, &blk) options.order!(self, **keywords, &blk) end
+ def order!(...) options.order!(self, ...) end
#
# Parses +self+ destructively in permutation mode and returns +self+
# containing the rest arguments left unparsed.
#
- def permute!(**keywords) options.permute!(self, **keywords) end
+ def permute!(...) options.permute!(self, ...) end
#
# Parses +self+ destructively and returns +self+ containing the
# rest arguments left unparsed.
#
- def parse!(**keywords) options.parse!(self, **keywords) end
+ def parse!(...) options.parse!(self, ...) end
#
# Substitution of getopts is possible as follows. Also see
@@ -2435,8 +2435,8 @@ def parse!(**keywords) options.parse!(self, **keywords) end
# rescue OptionParser::ParseError
# end
#
- def getopts(*args, symbolize_names: false, **keywords)
- options.getopts(self, *args, symbolize_names: symbolize_names, **keywords)
+ def getopts(*args, symbolize_names: false, ...)
+ options.getopts(self, *args, symbolize_names: symbolize_names, ...)
end
#