instance method OptionParser#accept

accept(klass, pat = /.*/) {|str| ...} -> ()[permalink][rdoc]

OptionParser.accept と同様ですが、登録したブロックはレシーバーに限定されます。

[PARAM] klass:
クラスオブジェクトを与えます。
[PARAM] pat:
match メソッドを持ったオブジェクト(Regexp オブジェクトなど)を与えます。


require "optparse"
require "time"

opts = OptionParser.new
opts.accept(Time) do |s,|
  begin
    Time.parse(s) if s
  rescue
    raise OptionParser::InvalidArgument, s
  end
end

opts.on("-t", "--time [TIME]", Time) do |time|
  p time.class # => Time
end

opts.parse!(ARGV)