`
iandaicsu
  • 浏览: 52245 次
社区版块
存档分类
最新评论

ruby $: 含义

    博客分类:
  • Ruby
阅读更多

http://kenbeit.com/posts/98/ruby小技巧之$:

 

 

一直能看到一些gem里面会有这样一句代码:

 
$:.unshift File.expand_path('..', __FILE__)
这句话是干什么用的呢
$:就是ruby的一个全局变量,也叫$LOAD_PATH,功能就是java中的classpath,用来加载类库的,当你require某个文件时,ruby就会从这个变量的值去查找,找不到会报LoadError。这个值其实就是一个包含了类库绝对路径的数组。
 
__FILE__这个变量代表文件自己的文件名,在foo.rb中puts__FILE__,结果就是foo.rb。
 
File.expand_path可以把路径转换成绝对路径,假设有这样一个文件/Users/kenshin/foo.rb,里面有File.expand_path('..', __FILE__),返回的结果就是/Users/kenshin。
 
unshift是数组的一个方法,功能就是把指定的值加到数组的最前面,[3,4].unshift(1,2) => [1,2,3,4]
 
所以这段代码的意思就是把当前文件所在的目录加到ruby的loadpath的最前面,在require文件时,ruby就会先从当前目录下去查找了。
分享到:
评论

相关推荐

    design-patterns-ruby:Ruby 中的 GOF 设计模式

    Ruby 的设计模式 设计模式 处理对象创建机制的设计模式,尝试以适合情况的方式创建对象。 - 用于创建和使用相关/依赖对象系列 - 用于逐步创建不同类型的复杂对象 - 用于从许多对象中创建一种可以代替它使用的对象 ...

    ruby-on-lambda, 自动化脚本,帮助运行 ruby 2.1程序.zip

    ruby-on-lambda, 自动化脚本,帮助运行 ...因为:AWS的Lambda具有巨大的潜在意义和有趣的含义AWS的Lambda还没有正式支持 ruby,因为ruby 具有巨大的潜在意义和有趣的含义 !?通过:将一个 ruby 二进制文件打包到我们

    Ruby self在不同环境的含义

    而由于ruby作为一个完全纯净的面向对象语言,任何东东都是对象,方法是对象,类也是对象…,所以self就会有很多环境,区分不同环境的self含义才能更好的理解程序的含义 一、Top Level Context Ruby代码 puts self ...

    带有ruby的数据科学:基于Ruby的工具的实用数据科学

    [ | | ]Ruby的出色数据科学 Ruby中用于数据处理和分析的链接和资源是一个新的“性感”流行词,没有特定含义,但通常用于替代统计,科学计算,文本和数据挖掘与可视化,机器学习,数据处理和仓储以及任何形式的检索...

    citrus:Ruby 的解析表达式

    Citrus :: 解析 Ruby 的表达式 Citrus 是一个紧凑而强大的解析库,它结合了该语言的优雅和表现力以及的简单性和强大功能。 安装 通过 : $ gem install citrus 从本地副本: $ git clone git://github....

    laser:Ruby代码的静态分析和样式分析

    概要LASER是分析Ruby程序的词法结构和语义含义的工具。 它将能够发现Ruby仅在运行时遇到的错误,并且能够发现与代码有关的属性,而这些属性是以前不存在的工具所不能提供的,例如给定的代码块是否引发,哪些方法是...

    详细解析Ruby中的变量

    变量持有要使用的程序的数据...他们使得程序的含义模糊。 下面是一个例子显示使用全局变量。 #!/usr/bin/ruby $global_variable = 10 class Class1 def print_global puts Global variable in Class1 is #$global_va

    Ruby on Rails中的include和extend的常见用法

    本文将介绍浅谈Ruby on Rails中的include和extend。include主要用来将一个模块插入到一个类或者其它模块。extend用来在一个对象中引入一个模块,这个类从而也具备了这个模块的方法。

    crass:完全符合CSS语法3级规范的Ruby CSS解析器

    克拉斯Crass是完全符合规范的Ruby CSS解析器。特征纯Ruby,除了Ruby 1.9.x或更高版本外,没有运行... 它不了解任何含义,不合并选择器等。不过,您可以通过使用解析树来自己完成此操作。 尽管解析树(或整个解析树)中

    ruby101-kitap:土耳其Ruby书

    Ruby 101书 前言 写书是我一直梦dream以求的事情。 它必须是一本对我和其他人都有用的书。 实际上,我是一年前开始这项工作的,但是我找不到机会。 我一直在脑海中做出粗略的计划,但我无法说出最后一点。 这方面...

    阅读Ruby「Read Ruby」-crx插件

    在网站上显示英文单词的含义。您可以根据用户级别更改显示的英文级别。 “阅读红宝书”是一个扩展功能,显示日语在网站上的英文单词的含义。一旦安装,图标将被添加到工具栏。当您单击图标时,日语显示在打开的网页...

    优化Ruby脚本效率实例分享

    profile.rb是为Ruby程序准备的profiler,它可以统计并输出各方法的运行时间,以便于找到程序执行的性能瓶颈。这次就用它来剖析脚本的运行...输出信息每行中各字段含义如下(从左到右): 该方法执行时间占整体时间的百

    Read Ruby-crx插件

    “read Ruby”是一个扩展,显示日语的含义上的网站英语单词。安装后,将添加图标到工具栏中。单击图标以在“打开网页的英文单词”上显示日语。右键单击工具栏图标以打开选项屏幕并更改显示日语的英语级别。让我们用...

    collmex:会计软件collmex的http api的Ruby库(由romanlehnertcollmex-ruby派生)

    Collmex-Ruby 一个与德国会计软件collmex对话的Ruby库... 当字符串应表示货币字段的含义时,我们已放置了一些特殊的解析方法。 Jus看看spec / lib / collmex / api_spec.rb来了解我们如何处理它。 Collmex整数 整数是

    tureng:图腾词典ruby app

    以最原始的形式,此脚本允许您在控制台中工作时快速查找单词的含义,而无需切换回 Web 浏览器。 从图找到的翻译和/或单词建议被格式化并打印在屏幕上的表格中。 设置 要运行该脚本,您的系统上必须安装 nokogiri、...

    Ruby中proc和lambda的两个区别

    主要介绍了Ruby中proc和lambda的两个区别,本文讲解了在proc和lambda中,return关键字有不同含义、检查参数的方式不同两个重要区别,需要的朋友可以参考下

    rb_tuntap:Ruby库与Tuntap设备进行交互(Linux)

    ruby土地包装器代码为ruby程序提供了一个更简单(更像ruby风格)的API进行接口。 什么是tun / tap接口? 这些接口为用户空间程序提供了数据包的接收和传输功能。 它们分别与IP和以太网帧一起使用。 是这些接口的...

    9GAGclone:Ruby on Rails项目

    我制作了9GAGclone应用,其名称已经告诉您了它的含义。 它是每个人都听说过的流行模因页面的克隆页面。 我为我的学校项目制作了此应用。 前端和后端都是英文。 ##安装 首次安装 bundle install rake db:create ...

Global site tag (gtag.js) - Google Analytics