Ruby中区分运行来源的方法

当我们在写模块的时候,或多或少需要直接运行这个文件也可以执行一些方法,但是这样对于当这个模块被require或者include时,显得不好,在ruby里,有没有区分运行来自当前文件,还是被require的目标文件调用呢?

Python可以

比如像Python这样

代码如下:

if __name__ == '__main__':
    print "from direct running"

Ruby当然也可以

对于处处为程序员着想,拥有快乐编程理念的Ruby来说当然是可以区别的。其原理就是判断启动文件是否为模块的代码文件。

代码如下:

if __FILE__ == $0
    puts 'called from direct running'
end

举个例子

工具类模块utils.rb

代码如下:

module Utils
    class StringUtils
        def self.test
            puts "test method myfile=" + __FILE__ + ';load from ' +  $0
        end
    end
end

if __FILE__ == $0
    puts 'called from direct running'
    Utils::StringUtils.test()
end

直接运行,结果,if条件成立,执行了输出

代码如下:

20:04:37-androidyue~/rubydir/test$ ruby utils.rb
called from direct running
test method myfile=utils.rb;load from utils.rb

引用Utils的类test.rb

代码如下:

require './utils'
Utils::StringUtils.test()

运行结果,引入模块的条件不成立,没有输出called from direct running

代码如下:

20:08:07-androidyue~/rubydir/test$ ruby test.rb
test method myfile=/home/androidyue/rubydir/test/utils.rb;load from test.rb

(0)

相关推荐

  • Windows下Ruby on Rails开发环境安装配置图文教程

    本文详细介绍如何在Windows配置Ruby on Rails 开发环境,希望对ROR初学者能有帮助. 一.下载并安装Ruby Windows下安装Ruby最好选择 RubyInstaller(一键安装包). 下载地址: http://rubyforge.org/frs/?group_id=167 . 我们这里下载目前较新的rubyinstaller-1.9.3-p0.exe 一键安装包.这个安装包除了包含ruby本身,还有许多有用的扩展(比如gems)和 帮助文档. 双击安装,安装过程出现如下

  • Ruby中检测Gem是否安装的方法

    最近参加七牛的demo大赛,决定使用ruby开发.于是遇到了一些疑问,然后解决了,这里记录一下. 在Ruby中,Gem是一个很常见的东西,其相当于插件,Ruby有很多很棒的gem,避免了我们重复造轮子,我的demo中需要安装gem,但是为了更加实现好一些,先检测gem是否已经安装,如果没有安装,在继续安装,否则不安装. 于是,怎么在Ruby中检测gem是否安装呢,其实也很简单,直接上代码就可以了.不需太多解释.begin-rescue-相当于java中的try catch. 复制代码 代码如下:

  • Windows下ruby语言安装教程

    第一步:下载安装文件 官网下载地址:http://rubyinstaller.org/downloads 第二步: 双击安装 在安装的时候,请勾选Add Ruby executables to your PATH这个选项,添加环境变量,不然以后使用编译软件的时候会提示找不到ruby环境 第三步: 检测安装完成否

  • 更改RubyGem安装源

    WHY? 由于国内网络原因(你懂的),导致 rubygems.org 存放在 Amazon S3 上面的资源文件间歇性连接失败.所以你会与遇到 gem install rack 或 bundle install 的时候半天没有响应,具体可以用 gem install rails -V 来查看执行过程. HOW? $ gem sources --remove https://rubygems.org/ $ gem sources -a http://ruby.taobao.org/ $ gem s

  • Ruby的安装与运行

    Ruby的安装 注意点 OSX或linux较好 不同版本的实现:c++.C.java 本次C Ruby 安装方法 linux或OSX都有预装 包管理器(apt.yum.brew),并非最新 版本控制系统:rvm(rvm.io).rbenv rvm 查看ruby版本 rvm list known 安装 rvm install 2.2.1 帮助 rvm --help 用户手册 : man rvm rbenv OSX下用brew安装 windows下安装通过rubyInstaller 学习资料 工具

  • windows和linux下Ruby的下载与安装

    在这里可以下载到适合您的最新的 Ruby 版本,当前稳定的版本是 1.8.6 .下载前请先阅读 Ruby 开源许可 . Ruby 源代码 如果您欲使之与您的平台更为兼容或者需要专一设置您的环境,那么从源代码安装是最好的解决方案.如果有预先做好的 packages 需要安装到您的平台上,这也是一个好的方法. Ruby 1.8.6 (md5: 23d2494aa94e7ae1ecbbb8c5e1507683) 稳定版 (推荐) 稳定版快照 这里的 tar'ed 和 gzip'ed 文件是最新稳定的

  • ruby安装gem包失败的通用解决方法

    ruby语言升级还是比较勤快的.但是数量众多的版本使得程序库的兼容性成了大问题.有些gem表示明确不支持某个特定版本以前的ruby,而有些gem则与较高的版本不兼容.再加上gem本身也有版本,简直是乱成了一锅粥.即使使用了rvm.rbenv之类ruby版本管理工具也避免不了掉入坑中.并且时不时的一些其它环境设置也给你捣乱.所以一般使用ruby程序时,对升级ruby版本或各种gem版本都是比较慎重的,避免一时手贱掉入坑中. 当然你也不能因此就做缩头乌龟,某些情况下还是不得不升级的.比如想使用rub

  • win7安装ruby on rails开发环境

    前言 看到很多文章都说ruby环境在windows上是非常难搭建,会出现各种各样的怪问题,所以都推荐到linux和mac上安装开发.但是我按照教程搭了下,问题也不算太多.总过大概花费了2个半小时左右就完成了.所以大家不要被吓尿了,下面就把安装的步骤及具体的版本记录了一下供大家参考. 安装步骤: 开发机环境:我使用的开发机:win7 旗舰版 - 64位 (cpu是i5). 1 安装 rubyinstaller-2.0.0-p481.exe     1 选择安装目录:(如:D:\server\Rub

  • CentOS 6.3下编译安装Ruby 2.0笔记

    LINUX操作系统: CentOS6.3 64bit Ruby: ruby-2.0.0-p247 一.安装开发包(使用默认CENTOS更新源) 复制代码 代码如下: # yum install openssl* openssl-devel zlib-devel gcc gcc-c++ make autoconf readline-devel curl-devel expat-devel gettext-devel 二.关闭iptables和SELINUX 复制代码 代码如下: # service

  • 快速正确的安装 Ruby, Rails 运行环境

    如何快速正确的安装 Ruby, Rails 运行环境 对于新入门的开发者,如何安装 Ruby, Ruby Gems 和 Rails 的运行环境可能会是个问题,本页主要介绍如何用一条靠谱的路子快速安装 Ruby 开发环境. 次安装方法同样适用于产品环境! 系统需求 首先确定操作系统环境,不建议在 Windows 上面搞,所以你需要用: •Mac OS X •任意 Linux 发行版本(Ubuntu,CentOS, Redhat, ArchLinux ...) 强烈新手使用 Ubuntu 省掉不必要

随机推荐