$ :. push在ruby中做什么?

时间:2012-04-29 14:27:35

标签: ruby rubygems gemspecs

我在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__)

两者都是一样的吗?如果没有,那有什么区别?

1 个答案:

答案 0 :(得分:16)

$:是Ruby的加载路径,所以它实际上是将/lib所在的文件夹的子文件夹__FILE__添加到此数组中,以便此gem中的其他文件可以是require d。