Rails 以外のプロジェクトでは、activesupport
スタンドアロンでインストールできます。クールなモンキーパッチ機能が必要な場合:
require 'active_support/core_ext'
しかし、それはどのように機能しますか?active_support/core_ext内のすべてのファイルが自動的に必要になりますか? 彼らがここにいることをどのようRuby
に知っていますか?
Rails 以外のプロジェクトでは、activesupport
スタンドアロンでインストールできます。クールなモンキーパッチ機能が必要な場合:
require 'active_support/core_ext'
しかし、それはどのように機能しますか?active_support/core_ext内のすべてのファイルが自動的に必要になりますか? 彼らがここにいることをどのようRuby
に知っていますか?
これが方法です(私のプラットフォームの例):
> 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
を「自動ロード」するファイルであることがわかります。*.rb
core_ext
という名前core_ext.rb
のファイルを探します。
しかし、require
ディレクトリをロードすることはできません。