Ruby 2.3.0 リファレンスマニュアル > ライブラリ一覧 > optparseライブラリ > OptionParserクラス > accept
accept(klass, pat = /.*/) {|str| ...} -> ()
[permalink][rdoc]OptionParser.accept と同様ですが、 登録したブロックはレシーバーに限定されます。
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)