Oliverです。 土曜日はずっと蟲をワッチしてました (笑 On Sat, Jan 25, 2003 at 10:48:38AM +0900, "NAKAMURA, Hiroshi" <nahi / mwd.biglobe.ne.jp> wrote... > なひです。 > クラスとインスタンス両方をいじりたいのかな、と思ってみたりして。 > とすると、includeとextendの両方が要りそうです。 > で、両方の手間を省くには、1.8だとModule#includedとかいうのがあるので、 > こんな感じにもできます。 そう、クラスとインスタンスの両方がイヂりたかったのです。 1.8に限定したくないので、なひさんとさくさんのコード を参考にクラスをイヂる部分を別モジュールにして append_featuresでextendしてみました。 module Foo module Bar def classfunc; end end def instfunc;end def self.append_features( mod ) super mod.extend Bar end end class Bar; include Foo; end p Bar.respond_to? :classfunc #=>true p Bar.respond_to? :instfunc #=>false p Bar.new.respond_to? :classfunc #=>false p Bar.new.respond_to? :instfunc #=>true なかださん指摘のクラス変数を使う事の問題は別に考えて みます。 > ちなみにRuby界にはすでにrdoというacronymが居ますので、 > なにか別の名前を考えないといけないかもしれません。 > http://www.ruby-lang.org/raa/list.rhtml?name=rdo ぐはぁ。まんま読まれてますね。だいたいJava Data Objectsの Ruby版みたいなのを目指してます。APIではなく、単一の 実装ですが。大学で研究実習として書いてて、使途も決まって いるので、確実に完成させます (させなきゃヤバイ (^^)) Javaみたいにポストプロセッサなんて嫌なのでメタデータを DBから引っ張ってきた後に、クラス自身におしえてあげる ところでこの件にひっかかってました。 アドバイスありがとうございます。 -- Oliver M. Bolzer oliver / gol.com GPG (PGP) Fingerprint = 621B 52F6 2AC1 36DB 8761 018F 8786 87AD EF50 D1FF