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