クラス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
あなたたちはどう思いますか、この問題に取り組むための最良の方法は何ですか?