> そうですね.本当はこーゆーのが ruby-list の本来の形ですね. > ruby-dev ができて若干難しい話が減りましたけど,学ぶ場にはま > だなっていませんものね. でしょでしょ。皆さんももっと見せあっこしましょう。 > 素晴らしい出来です.若干コメントすると: わーい。 > * Hash.newは{}の方がrubyらしいかな なるほどたしかに。さすがに配列の方は Array.new とはしなかったわけで。 # おもわずこうしてしまったのは Java の影響かなあ。 > * def date; @date endなどはattr :dateの方がrubyらしい? これは知りませんでした。こんなふうに書かなきゃいけないのはおかしいと おもいつつ。でもドキュメントのどこを読めばよかったのだろう…。 ところで、複数をまとめて attr :date :time :process_name のようには書けないのですね。そういうものではない?? ……それから、ぜんぶ attr :... に置き換えてみたところ動かなくなって しまいました。調べてみたところ class SyslogSendmail の def id; @id end だけは、「attr :id」にしちゃまずいようです。 syslog-delay-stat.rb:228:in `+': NameError:undefined method `coerce' for ": "(String) となってしまいます。228 行目は STDERR.print r.id + ": " + r.time + "\n"となっています。 「def ...; @... end」「attr :...」の両者はまったく同じ意味というわけで はないのでしょうか? > * createで適切なクラスの生成を行っている部分が若干不自然な > 気がする.どうするのが良いのかぱっと思いつきませんが. これは ruby の問題というよりデザインパターンの問題でしょうか。 ruby だと new を再定義できるのでそれを使うということも考えたのですが、 Syslog.new したのにそのサブクラスの SyslogSendmail のインスタンスが 返されるというのもどうかとおもいまして…。 高木 浩光@名古屋工業大学 http://www.center.nitech.ac.jp/~takagi/