0

如果我有一个 gem 'foo'(它是基于引擎的),我怎么能说它包含的所有文件在'require'它们时都需要'foo/'前缀?

例如,如果在我的“foo”gem 中有一个“bar.rb”文件,我希望能够强制包含这个文件,如下所示:

require 'foo/bar'

而不是通常的

require 'bar'

我希望这种行为适用于包含上下文的任何内容(来自 APP、来自另一个 gem 等)...

我知道这是可行的,因为大多数 rails 文件都包含在“rails”前缀中:

require 'rails/something'
4

2 回答 2

0

除了在需要文件时手动指定前缀之外,您无法以编程方式执行此操作。Ruby 没有办法知道,除非你告诉它。

于 2011-04-13T21:54:45.913 回答
0

这个怎么样:

Dir["/path/to/directory/*.rb"].each {|file| require file }

只要确保你foo在根目录中有你的文件,其余的文件在子目录中(否则它会包含自己)

于 2011-04-13T21:59:42.983 回答