【发布时间】:2015-10-31 13:36:44
【问题描述】:
我正在写一个看起来像这样的 gem:
lib/my_gem.rb:
require 'base64'
require 'ostruct'
require 'my_gem/utils.rb'
require 'my_gem/base.rb'
...
这一直很好,直到最近 gem 添加了更多功能并且 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!
由于依赖关系的顺序,我最终在这个文件中弄得一团糟,我觉得必须有更好的方法?
【问题讨论】:
-
如果它依赖于
base文件,为什么不要求app? -
@spickermann 这是一个合理的问题,我试图避免在每个依赖它的文件中都使用
require 'app'。相反,我认为我可以加载一次并完成。
标签: ruby