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  就是把上面得出的绝对路径加到现在已经存在所有环境变量之前。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值