通常、rubyプロジェクトにはlib、bin、spec(またはtest)フォルダがあります(少なくとも生成されたgemにあります)。今度は、libの各ファイルにrequire_relativeインポートが多くあり、spec(またはtest)ファイルのrequire_relative '../lib/some_files'も醜いです。 require_relativeのすべてのインポートを排除する方法はありますか? FILEとある種のトリックがあると思いますが、正確にはわかりません。rubyプロジェクトで多くのrequire_relativesを削除する
1
A
答えて
3
あなたはこのような何かを行うことができます。
current_folder = File.expand_path('../', __FILE__) # get absolute directory
Dir["#{current_folder}/subfolder/**/*.rb"].each {|f| require f}
これは、現在のディレクトリのサブフォルダ内のすべてのファイルが必要になります。 require_relativeもカーネル関数なので特別なことはありません。
これらのファイルが相互に依存し、定義された順序でロードする必要がある場合は、定義済みの順序でrequire
/require_relative
を手動で指定する必要があります。また、あなたは排除する必要がある仕様とlibに重複が必要な場合
、その後、あなたはこの道を行くことができます:あなたの/lib
フォルダのルートにトップレベルの名前空間の名前のファイルを追加し、ここからファイルを入れ子に必要その後、/spec/spec_helper.rb
から、この単一のファイルが必要です。これは、例を単純化している
# /lib/coolgem.rb
module CoolGem; end
current_folder = File.expand_path('../', __FILE__)
Dir["#{current_folder}/coolgem/*.rb"].each {|f| require f}
# /spec/spec_helper.rb
require_relative '../lib/coolgem'
を、あなたはなどのモジュールごとのネストされたため、このような初期化ファイルを持つことができます
関連する問題
- 1. Rubyファイルキュウリを削除する
- 2. このRuby on Railsプロジェクトでリンクを削除できないのですか?
- 3. SubclipseでSVNでプロジェクトを削除する
- 4. Rubyで改行を削除する
- 5. 多くのノードを削除する方法
- 6. 多くのテーブル値を削除するには、
- 7. 多対多カスケード削除
- 8. EF多対多カスケード削除
- 9. djangoでプロジェクトを削除する方法
- 10. ファイル内の行を削除する - Ruby
- 11. IntelliJプロジェクトのバージョンコントロールを削除する
- 12. Rubyでクラスインスタンスを削除しますか?
- 13. mongodbから多くの文書を削除します
- 14. Rubyハッシュでキーの配列を削除
- 15. EF 4多対多オブジェクトを削除
- 16. コアデータ削除多対多リレーションシップのルール
- 17. 多対多テーブルのレコードを削除する
- 18. XcodeプロジェクトからGithubを削除する
- 19. Xcode:プロジェクトナビゲータからプロジェクトを削除する
- 20. PVCSプロジェクトからファイルを削除する
- 21. Xcodeプロジェクトからファイルを削除する
- 22. IntelliJプロジェクトをバージョンコントロールから削除する
- 23. Rubyでの同じオブジェクトの削除?
- 24. Entity Framework 4.1 Codefirst:親を持たない多くの子を多く削除する
- 25. 多くのプロジェクトを1つのプロジェクトに結合する方法
- 26. Ruby on Railsでシングルステップバッチを削除
- 27. QAbstractItemModel多くの親を持つバッチ削除
- 28. SQLAlchemy多対多孤立削除
- 29. 多くの製品を削除するとエラー500が発生する
- 30. 注釈で多対多の削除を休止