ruby环境变量的文件读取形式
http://blog.csdn.net/normallife/article/details/5644941
加载文件时需要:
require ‘file’
但是加载这个文件前需要有个上下文环境,如:
$:.unshift(File.expand_path(File.join(File.dirname(__FILE__),’..’,’file’)))
require 如果返回true,说明成功读取了新的功能
加载路径,就是默认ruby启动的时候会在这些路径里去寻找可以加载的类库。ruby加载路径放在一个变量$LOAD_PATH($:)里。
函数解释:
File.dirname(__FILE__) 得到当前文件的路径
File.join(‘x’,’y’,’z’) 相当于x/y/z
File.expand_path('./x/y/z) 组成一个绝对路径
$:.unshift("file")加入到$:变量中
支持通配符各正则表达式:
Dir.glob(Dir.glob(File.join(File.dirname(__FILE__), '../*.rb')).each {|f| require f }
http://gypsyer.blog.51cto.com/734537/162545
Q:$LOAD_PATH.unshift File.expand_path(File.join(File.dirname(__FILE__),’..’,’..’,'page’,'client_arithmetic’))是什么意思啊?
A:
1、$LOAD_PATH指的是Ruby读取外部文件的一个环境变量,其实和windows的环境变量是一个概念。Ruby会在这个环境变量的路径中读取需要require的文件,如果在环境变量中找不到自己想要的文件,就会报LoadError错误。还有$LOAD_PATH和$:指的都是同一个环境变量。
2、__FILE__指的是当前rb文件所在目录的相对位置。
3、File.join是把自己的参数组成一个目录形式的方法,如上面就组成“xxx/../../page/client_arithmetic”(xxx代码rb文件的相对位置)
4、File.expand_path就是把其参数从相对路径转化为绝对路径的方法。
5、$LOAD_PATH.unshift 就是把上面得出的绝对路径加到现在已经存在所有环境变量之前。