1
我寫一個寶石,看起來這樣的:避免依賴的加載順序
lib/my_gem.rb
:
require 'base64'
require 'ostruct'
require 'my_gem/utils.rb'
require 'my_gem/base.rb'
...
這一直很好,直到最近,當創業板已經增加了更多的功能和lib/my_gem
目錄不斷壯大和長大的。
現在,我必須非常小心require
我的課程和模塊按照特定的順序,因爲utils
中的某些內容要求首先加載base.rb
。但是,base.rb
中的某些內容要求在此之前加載app.rb
。
所以它變成:
# require all standard libraries first
require 'base64'
require 'ostruct'
require 'my_gem/app.rb' # be sure this is loaded before base!
require 'my_gem/base.rb' # be sure this is loaded before utils!
require 'my_gem/utils.rb' # be sure this is loaded before some other class!
我結束了在該文件中有一個爛攤子,由於全部依賴於秩序,我覺得必須有一個更好的辦法?
爲什麼你不需要「基本」文件中的'應用程序',如果它取決於它? – spickermann
@spickermann這是一個合理的問題,我試圖避免在每個依賴它的文件中都需要'app'。相反,我認爲我可以加載一次並完成。 – Anthony