我在surveyor gem的Gemspec文件中找到了这个。以下几行有什么作用?
$:.push File.expand_path("../lib", __FILE__)
require "surveyor/version"
$:.push
为什么这样做?对我来说,它只是requires
../lib/surveyor/version
文件。如果是这样,我不能只用一行替换它吗?
require File.expand_path('../lib/surveyor/version', __FILE__)
两者都是一样的吗?如果没有,那有什么区别?
答案 0 :(得分:16)
$:
是Ruby的加载路径,所以它实际上是将/lib
所在的文件夹的子文件夹__FILE__
添加到此数组中,以便此gem中的其他文件可以是require
d。