やりたいことは、これ。
1
|
./hoge source -o output
|
sourceにオプションスイッチが無いのがミソ。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
options = {
:input => $stdin,
:output => $stdout
}
optp = OptionParser.new
optp.on("-o outputfile", String) {|out_filename|
options[:output] = File.open(out_filename, 'w')
}
remain_opts = optp.permute(ARGV)
if (remain_opts.size > 1)
raise "Invalid input count."
elsif (remain_opts.size == 1)
options[:input] = File.open(remain_opts[0], 'r')
end
|
OptionParser#parseでなくて、OptionParser#permuteを使う。