0
我正在實現一個半重複的Rails管道,通過重構一個現有的Ruby類,比如說A,它擴展了ActiveRecord,使一個模塊(如M)具有通用功能,然後成爲混合成兩個類似的AR類,現在是淺層包裝。將方法混合到當前類的本徵類
當把A的肉切成M時,A的實例方法簡單地成爲M中的方法,而A的類方法進入M的ClassMethods子模塊,在自身的類級別混合回A包括M的鉤子並通過着名的成語延伸。
但是,A不僅僅是任何類 - 我們使用DelayedJob的一些類方法,它並不理解類方法;因此,我們有些感動的原始類的方法分爲A的eigenclass,將它們定義爲
class A
...
def old_plain_vanilla_class_method
...
end
class << self
def new_eigenclassed_class_method
...
end
...
end
...
end
現在的問題是,我們如何代表,在男,所以它混合右後衛A的eigenclass?
作品,如果用C代替c.class,並M.included與self.included 。 – Alexy