From: Hiroshi IGARASHI Date: 2000-09-17T01:25:32+09:00 Subject: [ruby-dev:10933] Meta-Level API いがらしです。 メタレベルのAPIであったらいいな、と思うものを挙げてみます。 メソッド名は適当です。 Module#constants_at このmoduleで定義されている定数。rb_mod_constants_at()相当。 Module#direct_included_modules 直接includeしているModuleだけ返す版。 Module#cvar_get(id) Module#cvar_set(id, value) class variableの読み書き。 Object#ivar_get(id) Object#ivar_set(id, value) instance variableの読み書き。 1つ目は手元で定義してクラスブラウザに使ってしまってます。 2つ目は実装が難しそう。でも欲しい。 後ろ4つはmodule_eval/instance_evalでできちゃうけど、 evalを使うのはよっぽどの時に限定したいです。とはいえ、 Module#const_{get,set}と違って、もともと隠蔽されているものを いじるものなので、evalを使わせるくらいの心理的障壁は必要なのかな… -- 五十嵐 宏 (Hiroshi IGARASHI)