需要 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,那么此时就会出现矛盾。
我更新的 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,那么此时就会出现矛盾。