如何使用礼物?在Ruby项目中?

如何使用礼物?在Ruby项目中?,ruby,ruby-on-rails-3,Ruby,Ruby On Rails 3,我编写了一个脚本,它使用Rails对Ruby核心对象类的扩展,现在我想将其独立出来。除了重写它们,还有什么库或扩展可以让它们独立使用吗?您不必运行Rails就可以使用它们 require 'active_support/all' 或者,如果您只是想要一个特定的扩展名,比如字符串的blank?,那么 require 'active_support/core_ext/string' 我现在?它实际上被定义为 def present? !blank? end 在活动支持中定义为空白 def

我编写了一个脚本,它使用Rails对Ruby核心对象类的扩展,现在我想将其独立出来。除了重写它们,还有什么库或扩展可以让它们独立使用吗?

您不必运行Rails就可以使用它们

require 'active_support/all'
或者,如果您只是想要一个特定的扩展名,比如字符串的
blank?
,那么

require 'active_support/core_ext/string'
现在?
它实际上被定义为

def present?
  !blank?
end
在活动支持中定义为空白

def blank?
  respond_to?(:empty?) ? !!empty? : !self
end

您可以从中要求特定的功能。在这种情况下:

require 'active_support/core_ext/object/blank'
[].present? #=> false

正如tokland在下面所说的,您可以更具体地说:需要“主动支持/核心支持/外部/对象/空白”好吧,它被定义为!空白?但也需要将空白方法添加到几乎所有其他类中(同样在同一个文件中),所以它不是那么简单。