gpt4 book ai didi

ruby - 为什么我可以要求 'active_support/core_ext' ?

转载 作者:数据小太阳 更新时间:2023-10-29 08:33:29 25 4
gpt4 key购买 nike

在非 Rails 项目中,我可以单独安装 activesupport。当我需要它很酷的 monkeypatch 功能时:

require 'active_support/core_ext'

但是它是如何工作的呢?它会自动要求 active_support/core_ext 中的所有文件吗? ? Ruby 如何知道它们在这里?

最佳答案

这是(以我的平台为例):

> 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 是将“自动加载”core_ext 目录中每个 *.rb 文件的文件。

关于ruby - 为什么我可以要求 'active_support/core_ext' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10823890/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com