我有以下一段代码,它跟踪一个类有多少个实例:
module InstanceTracker
def self.instances
counter = 0
ObjectSpace.each_object do |i|
if i.class == self
counter += 1
end
end
return counter
end
end
我希望最终用户能够做的是:
class Foo
include InstanceTracker
end
但是当我这样做时,我得到一个NoMethodError
for Foo.instances
。如果我将 InstanceTracker 设为一个类并执行以下操作,则效果很好:
class Foo < InstanceTracker; end
我怎样才能使它成为一个模块混合?