我有一个包含许多实例方法的现有类。我想封装(或子类)该类,以便新类可以调用所有这些原始实例方法,并简单地委托给内部(或父)类,但也可以在前后调用自己的代码代表团。
例如,这是我正在寻找的一些伪代码:
class Wrapper
def initialize(inner)
@inner = inner
end
def __getattr__(method_name, *method_args) # <-- made up syntax
# do something before
ret = @inner.method_name(*method_args) # <-- made up syntax, call method on inner
# do something after
ret
end
在 ruby 中实现这一点的最佳方法是什么?谢谢