なかだです。

At Mon, 21 Feb 2000 00:54:21 +0900,
Toshiro Kuwabara <toshirok / yb3.so-net.ne.jp> wrote:
> # おかげさまで、OptionParserを使ったrdtool-0.6.0-pre2できました。
> # いちおうCSSとかの指定もやってみました。が、間違ってませんでしょうか?

  --with-part を指定すると動かないようです。PartAndFilter にした
のに以前の assoc のままの部分が残っているようですが、わざわざ
PartAndFilter とか作らなくとも、 accept や on で RE に '()' が使っ
てある場合にはブロックに部分文字列が渡されるのを使って((-ってこれ
も書いてなかったか(^^;)-))こんなんではどうでしょうか。

  あるいは、一箇所しか使わないものなら accept 抜きで on にパター
ンをじかに書いてしまった方が楽だと思います。元々 accept は、整数
などの何度も使われるだろうパターンと変換方法を、固定で持つのでは
なく一般化するためのものなので。だから逆に、すでに定義されている
Integer などのフォーマットをまったく無視して、すべて on でパター
ンを指定してやっても同じことはできます。めんどくさいですが。


--- /usr/lib/ruby/site_ruby/rdtool-0.6.0-pre2/rd2 Mon Feb 21 00:05:23 2000 +++ rd2 Mon Feb 21 13:05:05 2000 @@ -39,15 +39,4 @@ end -# for OptionParser Argument Type -class PartAndFilter - attr(:part) - attr(:filter) - - def initialize(part, filter = nil) - @part = part - @filter = filter - end -end - # initialize OptionParser ARGV.options = OptionParser.new("Usage: #{$0} [options] rd-file > output\n") do @@ -88,11 +77,6 @@ # accept "PART:FILTER" and "PART" - q.accept(PartAndFilter, /\w+\s*:\s*\w+|\w+/) do |src| - if /(\w+)\s*:\s*(\w+)/ =~ src - PartAndFilter.new($1, $2) - else - /\w+/ =~ src - PartAndFilter.new($&) - end + q.accept(PartAndFilter = /(\w+)(?:\s*:\s*(\w+))?/) do |src, *pandf| + pandf end @@ -166,5 +150,5 @@ # filter set tree.filter with_part.each do |i| - tree.filter[i.part] = $RC["filter"][i.filter] + tree.filter[i[0]] = $RC["filter"][i[1]] end
-- そうだ 強気に ちょっと インチキに☆彡 中田 "Bugるくらいがちょうどいいかも;-)" 伸悦