scribble

Bohsu Blog

A web developer.

Blog GitHub About

30 Oct 2014
Ruby 技巧之 $:

  1. 在一些gem里面经常会有这样一句代码
    $:.unshift File.expandpath('..', FILE_)

$: 就是ruby的一个全局变量,也叫$LOAD_PATH,功能就是java中的classpath,用来加载类库的,当你require某个文件时, ruby就会从这个变量的值去查找,找不到会报LoadError。这个值其实就是一个包含了类库绝对路径的数组。

FILE这个变量代表文件自己的文件名,在foo.rb中puts FILE,结果就是foo.rb

File.expandpath可以把路径转换成绝对路径,假设有这样一个文件/Users/kenshin/foo.rb, 里面有File.expandpath('..', FILE),返回的结果就是/Users/kenshin。

unshift是数组的一个方法,功能就是把指定的值加到数组的最前面,[3,4].unshift(1,2) => [1,2,3,4] 所以这段代码的意思就是把当前文件所在的目录加到ruby的loadpath的最前面,在require文件时,ruby就会先从当前目录下去查找了。


Til next time,
Bohsu. at 17:45

scribble

Blog GitHub About