リンクで、多くの「require」ステートメントを追加する必要はないと彼が言うとき、彼はs.files、s.executables、およびs.test_files配列にファイルを追加することを意味しているに違いありません。これらは、どのファイルが gem にパッケージ化され、どのファイルが無視されるかを決定します。 . gem 仕様からわかるように、特定のディレクトリで git によって追跡されるものはすべて、パッケージ化された gem に含まれます。
Ruby のrequire場合は別の話です。標準の require ルールは引き続き適用されます。
Ruby の gem システムは、実行時に Ruby が "foo.rb" を探すためのさまざまな場所を追加することで機能しますrequire "foo"。Ruby がlib/my_gem.rbのコードのみを実行する場合"lib"、gem の唯一の必須パスである場合。lib/my_gem.rbが gem 内の他のファイルでない場合、Ruby はそれらを認識していないため、それらのファイルのクラスを使用しようとすると、未定義の定数エラーが発生します。require "my_gem"require
たとえば、私が書いた 2 つの単純な gem を見てください。どちらもHashToHiddenFieldsと SimpleStatsbundle gemで始まりました。両方の gem で、 lib/にあるメインの Ruby ファイルには、gem が正しく動作するためにロードする必要があるすべてのものが必要です。たとえば、hash_to_hidden_fields.rbにはaction_view/helpers/hash_to_hidden_ fields が必要です。これにより、定数 + モジュールが存在し、それを に含めることができます。ActionView::Helpers::HashToHiddenFieldsActionView::Base
それが質問に答えることを願っています。しばらくの間、Ruby の要求がかなり曖昧だったことは知っています。