在所有可枚举的类中包含一个新的mixin

时间:2012-03-12 08:21:30

标签: ruby mixins

我想在所有Enumerable类中添加一个模块。有没有办法做到这一点?

此时我的解决方案是:

module Enumerable
  include my_module
end

class Array
  include Enumerable
end

class ____
etc...

除非我在包含原始Enumerable的所有类中包含新版本的Enumerable,否则它们不会更新。有没有更好的方法呢?也许有一些元编程?

谢谢!

1 个答案:

答案 0 :(得分:3)

据我所知,您必须在Enumerable模块

中编写方法代码
module Enumerable
    def so
        "StackOverflow!"
    end
end

a = [1, 3, 7]
a.so
#=> "StackOverflow!"