私の人生では、これに対する簡単な説明を見つけることはできません。
私は、独自のカスタム コードを持つプロジェクトに取り組んでいますが、gem が含まれているクラスの拡張機能やオーバーライドもいくつか持っています。
これを達成するための正しいフォルダ構造とモジュールの命名パターンは何ですか?
たとえば、サードパーティの「parallel_tests」gem の拡張用にコードを編成する方法を次に示します。私が取り組んでいるライブラリは「ChemistyKit」と呼ばれます。
lib/
chemistrykit/
parallel_tests/ # the gem name space i'm extending
rspec/
runner.rb
したがって、基本的には、そのparallel_tests
フォルダーの下にある gem と同じ命名構造に従います。
次に、そのrunner.rb
ファイルには次のようなものがあります。
module ChemistryKit
module ParallelTests
module RSpec
class Runner < ParallelTests::Test::Runner
ただし、これを使用するとエラーが発生します。RSpec HTML フォーマッタのこの拡張のChemistryKit
ようなものでは、フォーマッタは gem の最上位の名前空間の下で使用されるため、紛らわしいですが、これは紛らわしいです。この場合、名前は似ているが異なるクラスを作成しているためですか?意図はオーバーライドではなく、拡張することですか?