如果我有Gemfile
这些内容:
gem 'my-plugin'
my-plugin
需要Bundle.require
的哪些文件?
答案 0 :(得分:1)
Bundler.require
每个Gem只生成一个require语句。它取决于Gem,需要顶级文件中的其他文件。
它根据standard naming convention确定每个Gem需要哪个文件:
rspec-rails
,require 'rspec/rails'
)。所以,在这种情况下,它会require 'my/plugin'
,这可能不是你想要的。按照惯例,您的Gem应该使用下划线命名为my_plugin
,并且在lib
目录中应该有一个名为my_plugin.rb
的顶级文件,该文件需要Gem中的其他文件。
如果您无法更改Gem的名称,则可以使用如下所示的行覆盖默认的require语句:
gem 'my-plugin', :require => 'my_plugin'
如果您需要Gem中的多个文件,最好不要向您的应用添加明确的require语句,而不是依赖Bundler.require
。