1

如果我有Gemfile这些内容:

gem 'my-plugin'

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

4

1 回答 1

1

Bundler.require每个 Gem 只做一个需求声明。Gem 是否需要来自顶级文件的附加文件。

它根据标准命名约定确定每个 Gem 需要哪个文件:

  • 宝石应该使用下划线来分隔单词。
  • 需要时连字符变成斜线。这用于创建在子目录中添加文件的扩展 Gems(例如,rspec-rails您需要使用require 'rspec/rails')。

所以,在这种情况下,它会require 'my/plugin',这可能不是你想要的。按照惯例,您的 Gem 应该使用下划线命名,并且在其目录my_plugin中应该有一个顶级文件,该文件需要您的 Gem 中的其他文件。libmy_plugin.rb

如果您无法更改 Gem 的名称,您可以使用如下代码覆盖默认的 require 语句:

gem 'my-plugin', :require => 'my_plugin'

如果您需要 Gem 中的多个文件,最好向您的应用程序添加明确的 require 语句,而不是依赖Bundler.require.

于 2013-08-03T04:38:24.370 回答