$:.unshift File.dirname(__FILE__).sub('controller','lib') 解析

使用 require 加载文件时,使用:

 require ‘file’

 加载这个文件file前,需要有加载路径的上下文环境,如:

$:.unshift File.dirname(__FILE__).sub('controller','lib')

 加载路径,是默认ruby启动的时候会在这些路径里去寻找可以加载的类库。ruby加载路径放在一个变量$LOAD_PATH里,和$:指的都是同一个环境变量。

 

函数解释:

 1、$:($LOAD_PATH)是Ruby读取外部文件的一个环境变量,和windows的环境变量是一个概念。Ruby会在这个环境变量的路径中读取需要require的文件,如果在环境变量中找不到自己想要的文件,就会报LoadError错误。

 2、__FILE__是PHP的魔术常量之一,指文件的完整路径和文件名,即当前'controller'文件所在目录的相对位置。
3、dirname(),返回路径中的目录部分,得到的结果是该文件(目前访问的文件'controller')基于服务器的绝对路径。

 4、str.sub('controller','lib') ,在str副本上将找到的第一个匹配字符(串)用lib替换,并返回。

       还有一种用法是:str.sub(pattern) {|match| block } => new_str
       puts "abcde789".sub(/d/){|c| 'a'},找到的字符d用|c|表示,可以替换成a字符 

       gsub方法

       和sub的区别在于所有匹配的地方都会被替换,而不只是第一个。

5、$:.unshift($LOAD_PATH.unshift  )是把上面得出的绝对路径加到现在已经存在所有环境变量之前。

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值