2

Rails 以外のプロジェクトでは、activesupportスタンドアロンでインストールできます。クールなモンキーパッチ機能が必要な場合:

require 'active_support/core_ext'

しかし、それはどのように機能しますか?active_support/core_ext内のすべてのファイルが自動的に必要になりますか? 彼らがここにいることをどのようRubyに知っていますか?

4

2 に答える 2

3

これが方法です(私のプラットフォームの例):

> 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
> 猫 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を「自動ロード」するファイルであることがわかります。*.rbcore_ext

于 2012-05-30T20:49:37.560 に答える
2

という名前core_ext.rbのファイルを探します。

しかし、requireディレクトリをロードすることはできません。

于 2012-05-30T20:48:06.800 に答える