« annotation (a.k.a. metadata) 再考 | メイン | metadataライブラリ »
2005年06月09日 (木)
Rubyにannotationを定義するとしたら? [テクニカル]
きのうのエントリはちょっと意味不明だったが、結局言いたいことは「Rubyにアノテーションを定義するとしたら、どのような書式がよいか?」ということだ。
同じことを考えている人はいるもので、Annotations in Rubyではチョチョイと1時間でハックしたよ、というコードが載っている。うん、これぐらいシンプルでいいのだ。こういうコードならいくらでも書ける。
で、問題はアノテーション定義の書式。上の場合では
ann :description => "IP address of the mail server", :tip => "Use 'localhost' if you have a good box, sister!"
attr_accessor :server
と使うようだが、直後の属性だけに適用するという規則がどうも不自然。やはりModuleクラスのメソッドを使うならば、publicなどと同じく「引数なしのときは今後このクラスまたはモジュール定義内で新規に定義されるメソッドに同一アノテーションを設定し、引数が与えられた時には引数によって指定されたメソッドにアノテーションを設定する」というのがRuby流儀と考えるのが自然かなぁ。
ってことで、いろいろ考えてみたが、いいアイデアが思いつかず。アイデア求む。
トラックバック
このエントリーのトラックバックURL:
http://www.4bit.net/x/mt/mt-tb.cgi/62