`
java-admin
  • 浏览: 1376430 次
  • 性别: Icon_minigender_1
  • 来自: 陕西.西安
社区版块
存档分类
最新评论

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

 

 

分享到:
评论

相关推荐

    Ruby 教程 The Book of Ruby

    - 文件读写 - 输入输出流的操作 7. **异常处理** - 异常的基本概念 - 如何定义和捕获异常 - 自定义异常 8. **测试与调试** - 单元测试框架的使用 - 调试技巧与工具 9. **项目实战** - 通过实际项目案例...

    ruby(前途大好的ruby+rains)

    5. **闭包**:Ruby中的 Proc 和 lambda 实现了闭包,能够捕获其定义时的上下文环境,这在函数式编程中非常有用。 6. **模块(Module)**:Ruby的模块用于实现命名空间,代码重用和混合(mixin)功能。一个类可以...

    Ruby语言教程.docx

    #### 三、Ruby环境搭建 1. **安装Ruby**:访问官方网址下载并安装。 - **官网地址**:https://www.ruby-lang.org/en/downloads/ 2. **环境验证**:通过命令行检查版本信息确认是否安装成功。 #### 四、Ruby基础...

    Programming Ruby The Pragmatic Programmer's Guide

    本章讲述了Ruby中的I/O操作,包括文件读写、标准输入输出等基本功能。对于开发实际应用来说,这部分内容非常实用且重要。 ##### 第11章:线程与进程 多线程编程是现代软件开发中不可或缺的一部分。本章介绍了Ruby中...

    ruby 程序设计

    - **读写文件**:通过`File.open`打开文件,`puts`写入内容等。 ##### §11.2 文件处理 - **文件操作**:`File.read`、`File.write`等方法。 ##### §11.3 StringIO - **概念**:`StringIO`允许在内存中模拟文件...

    RUBY基础入门指南

    - **使用Ruby**:直接在命令行中输入`ruby filename.rb`来运行脚本文件。 - **使用IDE**:推荐使用FreeRIDE或SciTE等集成开发环境,提供更好的编辑体验。 **2.3 Ruby-irb** IRB(Interactive Ruby Shell)是一个...

    ruby by Example

    在《Ruby by Example》中提到,大多数情况下,程序会被存储在外部文件中,而非直接写入控制台或交互式环境中。这种方式有以下几个优势: 1. **代码复用**:将代码保存到文件中便于重复使用这些代码片段,提高了开发...

    Ruby程序设计(简洁清新的教程)

    #### 二、Ruby编程环境 **2.1 Ruby的安装** - **在Windows系统上安装Ruby**:可以通过RubyInstaller项目提供的安装包来安装Ruby。 - **在Linux系统上安装Ruby**:大多数Linux发行版的软件仓库中都有Ruby的预编译包...

    Ruby入门教程

    - **11.2 文件处理**:读写文件的基本方法。 - **11.3 StringIO**:用于在内存中模拟文件操作。 - **11.4 Socket**:网络通信的基础。 #### 十二、反射和对象空间 **12.1 ObjectSpace模块** 用于管理和监控对象。...

    rack教程(ruby)

    Rack通过将CGI头映射到环境变量的方式,使得传统的CGI应用可以很容易地转换为Rack应用。 ##### 2.2 Request Rack提供了一个`Rack::Request`类,该类封装了请求的所有信息,使得处理请求变得更加容易。开发者可以...

    ruby on rails 2.3.5 api html版

    10. **插件和Gem**:Rails的生态系统中,Gem是第三方库的主要形式,它们提供了额外的功能,如Devise用于身份验证,CanCanCan用于授权,Paperclip或Carrierwave处理文件上传等。 11. **部署**:了解如何将Rails应用...

    ProgrammingRuby

    - **输入输出**:教授如何处理文件系统操作、读写文件等内容。 - **线程与进程**:讲述了并发编程的基础知识,包括线程和进程的区别及使用方法。 - **错误处理**:提供了处理程序中可能出现的错误或异常情况的策略。...

    knife-gandi:用于Gandi托管平台的Chef Knife插件。 让您创建,引导和删除Gandi服务器

    如果您的knife.rb文件将被检入SCM系统(即可由他人读取),则您可能希望从环境变量中读取值: knife [ :gandi_api_key ] = "#{ENV['GANDI_API_KEY']}" 您还可以选择使用-K (或--gandi-api-key )

    hadoop streaming 表

    NAME是环境变量的名字,VALUE是环境变量的值。 20. `-verbose`:用于指定输出详细信息,比如分发了哪些文件、实际作业配置参数的值等,此参数常用于调试。 Hadoop Streaming允许开发者使用自己熟悉的脚本语言来...

    cgi简明教程(入门基础)

    2. **环境变量读取**:使用`getenv()`函数获取环境变量。 3. **HTTP响应头**:必须先输出HTTP响应头,例如`Content-Type:text/html`来指定响应的数据类型。 4. **标准输出**:使用`printf()`函数输出HTML内容,作为...

    web_scraping_project:使用Ruby和Nokogiri,CSV,Pry和HTTParty gem进行网络抓取

    Ruby的CSV库提供了读写CSV文件的便捷方法,可以将抓取到的数据以表格形式保存下来。 Pry是一个强大的Ruby调试器,它扩展了Ruby的内建irb(交互式Ruby环境)。在开发网络爬虫时,Pry可以帮助开发者在运行时检查代码...

    有线脑咖啡:收集咖啡食谱

    - `File`和`Dir`类:Ruby提供了内置的库来处理文件和目录的操作,如读写文件、创建和删除目录等。 - YAML或JSON文件:项目可能包含YAML或JSON格式的食谱数据,这些数据可以方便地在Ruby中解析和序列化。 5. **Gem...

    MemCached高性能分布式的内存对象缓存系统应用说明[收集].pdf

    6. 如果遇到找不到库文件的问题,可以通过`LD_DEBUG`环境变量来追踪库文件的搜索路径,并使用`ln -s`创建软链接解决。 在实际应用中,Memcached常被用作Web应用的缓存解决方案,例如配合PHP、Python、Ruby等语言的...

Global site tag (gtag.js) - Google Analytics