난 레일이없는 루비 프로젝트에서 작업하고 있습니다.조상을 기반으로 모든 파일 필요
Dir['./**/'].each {|dir| $:.push dir}
Dir["./**/*.rb"].each {|rb| require rb}
그래서, 모든 파일은 프로젝트 (abc_base.rb
, a.rb
, ...)에 포함되어 있습니다 : 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
나는 아래와 같은 것이있다 : 프로젝트 구조는 무엇인가 다음과 같다.
문제는, 어떤 것이 다른 것이 먼저 요구되어야 하는지를 모른다는 것입니다. 예를 들어 전에 a_base.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/)를보십시오. –