在非rails项目中,我可以单独安装activesupport
。当我需要其酷炫的monkeypatch功能时:
require 'active_support/core_ext'
但它是如何运作的?它会自动要求active_support/core_ext中的所有文件吗? Ruby
如何知道他们在这里?
答案 0 :(得分:3)
这就是我的平台的例子:
> gem which active_support /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.12/lib/active_support.rb > cd /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.12/lib/active_support > cat core_ext.rb
filenames = Dir["#{File.dirname(__FILE__)}/core_ext/*.rb"].sort.map do |path|
File.basename(path, '.rb')
end
filenames.each { |filename| require "active_support/core_ext/#{filename}" }
因此,您看到core_ext.rb
是将“自动加载”*.rb
目录中每个core_ext
文件的文件。
答案 1 :(得分:2)
查找文件named core_ext.rb
。
但没有require
无法加载目录。