クラスA、B、Cがあるとしましょう。
A
def self.inherited(sub)
# meta programming goes here
# take class that has just inherited class A
# and for foo classes inject prepare_foo() as
# first line of method then run rest of the code
end
def prepare_foo
# => prepare_foo() needed here
# some code
end
end
B < A
def foo
# some code
end
end
C < A
def foo
# => prepare_foo() needed here
# some code
end
end
ご覧のとおり、私はfoo_prepare()各foo()メソッドに呼び出しを挿入しようとしています。
どうすればそれができますか?
sendまた、私は、クラスをオーバーライドしclass Aて実行し、メソッドの残りの部分を(スーパー)に実行foo_prepareさせることを考えていました。send
あなたたちはどう思いますか、この問題に取り組むための最良の方法は何ですか?