這裏就是我想要做的,大致爲:你能擴展self.included嗎?
module Foo
def self.included base
base.extend ClassMethods
end
end
module Bar
extend Foo
module ClassMethods
def hi
return "hello!"
end
end
end
class Baz
include Bar
end
Baz.hi #=> "hello!'
而是我得到
NoMethodError: undefined method `hi' for Baz:Class
如果它是不明確的,更普遍的是什麼,我要做的是創建一個包含邏輯一個模塊對於included
回調,其中幾個其他模塊然後擴展,並且我希望它們使用來自擴展模塊的included
回調(但是,如果例如Bar
擴展了Foo
,我想self
在的封閉中引用,如果可能的話)。
可能這有點令人困惑。
這是令人困惑的,混亂是透明的敵人。爲了維護你的代碼的人,是否有更好的解決方案? – 2013-04-09 14:55:57