Ruby 为什么我需要';主动支持/核心扩展';?
在非rails项目中,我可以只安装Ruby 为什么我需要';主动支持/核心扩展';?,ruby,require,Ruby,Require,在非rails项目中,我可以只安装activesupportstandalone。当我需要其酷炫的monkeypatch功能时: require 'active_support/core_ext' 但是它是如何工作的呢?它是否自动要求中的所有文件?Ruby如何知道它们在这里?查找文件 但是没有要求无法加载目录。这是如何实现的(例如我的平台): 您可以看到,core\u ext.rb是将“自动加载”core\u ext目录中每个*.rb文件的文件 > gem which active_suppo
activesupport
standalone。当我需要其酷炫的monkeypatch功能时:
require 'active_support/core_ext'
但是它是如何工作的呢?它是否自动要求中的所有文件?Ruby如何知道它们在这里?查找文件
但是没有要求
无法加载目录。这是如何实现的(例如我的平台):
您可以看到,core\u ext.rb
是将“自动加载”core\u ext
目录中每个*.rb
文件的文件
> 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}" }