を私の匿名のモジュールを検出するために、私は匿名のモジュールとprepend
外国クラス(その場で作成されています。)どのくらいの実行中に、いくつかのクラスの祖先で
、私は私の匿名のモジュール、prepended
をそれにリストする必要があります。残念ながら、Module#new
は、Class#new
とは異なり、(言い換えれば、彼らはすべての私は、すべてのancestors
のうち、私のモジュールふるいに使うことができると同じ共通のダミーの親を持つことはできません。)parent
パラメータを受け付けません
I可能性私の匿名の各モジュールに具体的にmy_litmus_dummy_method
を定義し、それを確認しながらancestors.select
、これは醜いです。
私の匿名モジュールのそれぞれでinclude DummyLitmusModule
があり、それが祖先であることを確認している間にancestors.select
ですが、これはどちらかというと醜いものです。
マーク私の匿名モジュールは、後で私は簡単にすべてのモジュールリストからそれらをふることができるようにエレガントな方法ですか?私が必要とするこの時点^ Wで
UPDコード例
def patch_class klazz
klazz.send :prepend, Module.new { define_method(:my_method) {} }
end
...
# load list of classes from somewhere and patch them
classes = my_parse_yaml('config.yml')
classes.each do |c|
patch_class c
end
...
# somewhere in other place
instance.patches # ⇐ I want to implement this
をパッチし、どのような方法を知りたいです。私はちょっとRailsからalias_method_chain
を再実装しました。私は "使用"を私のインターフェースユーザーに報告したいと思います。
。 (i)あなたはプリペンドされたモンドと含まれているものとを区別したい、そして(ii)あなたは名前のついたものではなく、匿名のものだけを気にしますか? – sawa
わかりませんが、[this](http://stackoverflow.com/questions/34484006)と関連があるかもしれません。 – sawa
あなたの匿名モジュールに名前をつけてみませんか? – Aetherus