需要 Ruby gem 中的顺序

Require order in a Ruby gem

我更新的 Ruby gem 名为 politicosbr 的新功能依赖于其他四个 Ruby gem 并且在其主模块中需要它们。

require 'open-uri'
require 'nokogiri'
require 'httparty'
require 'roo-xls'

但它还需要一些内部文件:

require 'politicosbr/constantes'
require 'politicosbr/estaduais'
require 'politicosbr/vereadores'

这可能只是一个风格问题,但无论如何我想知道在这种情况下是否有任何关于要求顺序的Ruby约定。

换句话说,我应该先要求内部文件,还是先要求其他 gem,还是根本不重要?

您应该在内部文件之前要求外部文件,因为外部文件不应该依赖于您的文件,但您的内部文件依赖于外部文件。

例如,假设一个外部文件将 class A 定义为 B 的子 class,而您正在使用 class B 在你的文件中。如果你只是(像往常一样)在你的内部文件中做:

class B
  ...
end

然后将创建 class B 作为 Object 的直接子 class。如果您稍后将定义 B 的文件包含为 A 的子 class,那么此时就会出现矛盾。