Bundler.require需要哪些文件?

时间:2013-08-02 21:15:10

标签: ruby bundler dependency-management

如果我有Gemfile这些内容:

gem 'my-plugin'

my-plugin需要Bundle.require的哪些文件?

1 个答案:

答案 0 :(得分:1)

Bundler.require每个Gem只生成一个require语句。它取决于Gem,需要顶级文件中的其他文件。

它根据standard naming convention确定每个Gem需要哪个文件:

  • 宝石应使用下划线来分隔单词。
  • 连字符在需要时变成斜线。这用于创建扩展Gems,用于将文件添加到子目录中(例如,rspec-railsrequire '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