私は非レールのrubyプロジェクトで作業しています。 app.rbで祖先に基づいてすべてのファイルが必要です
--Root
-Base
-xyz_base.rb
-abc_base.rb
-Entities
-A
-base
-a_base.rb
-a.rb
-B
-b.rb
-C
-c.rb
-app.rb
私は以下のようなものがあります:プロジェクトの構造は、以下のようなものであるので、
Dir['./**/'].each {|dir| $:.push dir}
Dir["./**/*.rb"].each {|rb| require rb}
を、すべてのファイルは、プロジェクト(abc_base.rb
、a.rb
、...)に含まれています。
問題は、別のものの前にどれが必要なのかわかりません。たとえば、a_base.rb
は、a.rb
より前に必要です。しかし、実際には、a.rb
が必要で、a_base.rb
にはuninitialized constant Entities::A::Base (NameError)
またはcannot load such file
が得られます。
私はautoload
、require_all
の宝石を調べました。また、別の解決策は、必要なファイルのみを必要とするために各ファイルにrequireを入れることです。しかし、ファイルが大きすぎます。
ありますか?
この 'require'プロジェクトのアルゴリズムとは何ですか?サブディレクトリの内容は、ディレクトリの実際の内容の前に必要ですか? – IvRRimUm
[Bundler](http://bundler.io/)をご覧ください。 –