如何从其他模块中包含Ruby类扩展?

时间:2012-09-01 08:09:23

标签: ruby class module include

我想让类扩展可用于其他模块/类/文件。例如:

module UsefulStuff
  class Object
    def blank?
      respond_to?(:empty?) ? empty? : !self
    end
  end
end

在其他类/模块/文件中:

if string.blank? ...

我有什么以及如何包含/加载/要求/ ...来使这项工作?

1 个答案:

答案 0 :(得分:4)

您应该使用模块而不是类:

module UsefulStuff
  module Blank
    def blank?
      respond_to?(:empty?) ? empty? : !self
    end
  end
end

您可以将它包含在String类中:

class String
  include UsefulStuff::Blank
end

或者如果你想让它成为对象的全局:

class Object
  include UsefulStuff::Blank
end