gpt4 book ai didi

ruby - 如何在 gem 中要求目录中的所有文件?

转载 作者:数据小太阳 更新时间:2023-10-29 06:49:34 24 4
gpt4 key购买 nike

我知道我可以要求目录中的所有文件使用

Dir['path/to/files/**/*.rb'].each { |file| require file }

但是,我正在尝试为 gem 安装文件执行此操作,如下所示:

class MyGem
module NS; end
end

Dir['lib/my_gem/files/**/*.rb'].each { |file| require file }

(lib/my_gem/files 中的所有文件都在 MyGem::NS 下命名空间)。目录结构如下所示:

lib                              
|-- my_gem
| |-- files
| | |-- file1.rb
| | |-- file2.rb
| | |-- file3.rb
| | `-- ... (many more)
`-- my_gem.rb
my_gem.gemspec

而且,当我在另一个文件中需要我的 gem 时,Dir 命令似乎不起作用,因为它似乎在运行时在我的项目根目录中查找文件路径(无论我从什么项目中需要我的 gem)。

如何在 lib/my_gem.rb 中获取 lib/my_gem/files 中的所有文件?

最佳答案

Rubygems 有一个名为 find_files 的工具这将允许您基于加载路径中的任何内容进行搜索:

Gem.find_files("my_gem/files/**/*.rb").each { |path| require path }

关于ruby - 如何在 gem 中要求目录中的所有文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11617673/

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