1

これらのコンテンツがある場合Gemfile

gem 'my-plugin'

my-pluginに必要なのファイルはどれBundle.requireですか?

4

1 に答える 1

1

Bundler.requireGem ごとに 1 つの require ステートメントのみを作成します。最上位ファイルから追加のファイルを要求するかどうかは、Gem 次第です。

標準の命名規則に基づいて、各 Gem に必要なファイルを決定します。

  • gem では単語を区切るためにアンダースコアを使用する必要があります。
  • 必要な場合、ハイフンはスラッシュに変わります。これは、サブディレクトリにファイルを追加する拡張 Gem を作成するために使用されます (たとえば、rspec-railsで必要になりますrequire 'rspec/rails')。

したがって、この場合は になりますがrequire 'my/plugin'、これはおそらく意図したものではありません。慣例により、Gem にはアンダースコアを付けて名前を付ける必要があり、Gem 内の他のファイルを必要とする名前のディレクトリmy_pluginに最上位ファイルが必要です。libmy_plugin.rb

Gem の名前を変更できない場合は、次のような行でデフォルトの require ステートメントをオーバーライドできます。

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

Gem から複数のファイルを要求する必要がある場合は、に依存するのではなく、明示的な require ステートメントをアプリに追加することをお勧めしますBundler.require

于 2013-08-03T04:38:24.370 に答える