Ruby 初心者スレッド Part 19
■ このスレッドは過去ログ倉庫に格納されています
0498デフォルトの名無しさん
2008/05/11(日) 16:47:40fw -fp '/usr/include/**/*.h' '~/**/*.h' -wp 'define\s+\w+' -pp '%1 %2 %3'という感じで
-fp の後ろに複数のファイルパターンを
-wp の後ろに複数の単語パターンを
-pp の後ろに表示用のフォーマットを指定できるようにしたいのですが、optparseをうまく操れません
上記の実行例だと
["/usr/include/**/*.h", "~/**/*.h"]
["define\\s+\\w+"]
と表示されて欲しいのですが、実際は
["/usr/include/**/*.h", "~/**/*.h"]
["define\\s+\\w+", "%1 %2 %3"]
と表示されてしまいます
printpattern = "%1:%2:%3" # filename:linnum:line
print = proc {|filename,linenum,line|
STDOUT << (printpattern %filename %linenum %line) << "\n"
}
filepatterns = []
wordpatterns = []
ARGV.options {|opt|
dest = wordpatterns
opt.on('-fp' , '--filepattern') { dest = filepatterns }
opt.on('-wp' , '--wordpattern') { dest = wordpatterns }
opt.on('-pp S' , '--printpattern S' , String) {|s| printpattern = s }
opt.order! {|s| dest << s }
p filepatterns
p wordpatterns
}
■ このスレッドは過去ログ倉庫に格納されています