收藏本站 收藏本站
积木网首页 - 技术学院 - 软件测试 - 网站黄页 - 常用手册 - 站长工具 - 技术社区
首页 > ruby > 正文

首页 - PHP - 数据库 - 操作系统 - 游戏开发 - JS - Android - MySql - Redis - MongoDB - Win8 - Shell编程 - DOS命令 - jQuery - CSS样式 - Python - Perl

Access - Oracle - DB2 - SQLServer - MsSql2008 - MsSql2005 - Sqlite - PostgreSQL - node.js - extjs - JavaScript vbs - Powershell - Ruby

举例讲解Ruby中require的使用方法

同一目录下的文件,如/usr/local/ruby/foo.rb与/usr/local/ruby/bar.rb两个文件。
如果直接在foo.rb中

require 'bar'

执行时会报找不到bar.rb错误。
这是因为运行

/home/oldsong$ ruby /usr/local/ruby/foo.rb

时会在ruby安装的lib目录和/home/oldsong/目录下查找bar.rb。而不会去rb文件的目录/usr/local/ruby/下查找。
所以除引用系统rb外,require中不能用相对路径。

下面结合我个人经验介绍几种引用单个和目录下所有rb的方法。
1、引用一个文件

例: 引用当前rb同目录下的file_to_require.rb
先介绍3种方法

require File.join(__FILE_, '../file_to_require')。
require File.expand_path('../file_to_require', __FILE__)
require File.dirname(__FILE__) + '/file_to_require'

其中,File.expand_path是Rails常用的做法。
__FILE__为常量,表示当前文件的绝对路径,如/home/oldsong/test.rb

法四:

$LOAD_PATH.unshift(File.dirname(__FILE__))
require 'bar'

先把目录加入LOAD_PATH变量中,然后可直接引用文件名。
2、引用一个目录下所有文件

Ruby没有Java中的import java.io.*;
引用时不能用通配符,估计以后的版本有可能加上。

例:引用当前rb相同目录下lib/文件下所有*.rb文件。
法一:

Dir[File.dirname(__FILE__) + '/lib/*.rb'].each {|file| require file }

法二:
一个gem搞定

https://rubygems.org/gems/require_all

在Ruby中查找和执行方法
当调用一个方法时,Ruby会做两件事。1.找到这个方法。这个方法称为方法查找。2.执行这个方法。为了做到这点,Ruby需要一个叫做self的东西。这样的一

Ruby编程中的赋值相关操作
在老版本的Ruby中,赋值语句的返回值是设置该属性的方法的返回值。在Ruby1.8中,赋值语句的值总是参数的值而方法的返回值将被丢掉。classTestdefval=(val)

浅析Ruby中继承和消息的相关知识
继承允许你创建一个类,作为另一个类的精炼(refinement)和特化(specialization)。例如,在我们的自动点唱机系统中,有歌曲这一概念,被封装在Song类

本周排行

更新排行

强悍的草根IT技术社区,这里应该有您想要的! 友情链接:b2b电子商务
Copyright © 2010 Gimoo.Net. All Rights Rreserved  京ICP备05050695号