ruby require

require一般用来加载其它的类,如:

#Ruby代码  :
require ‘dbi‘  
require "rexml/document"

但是上面加载的是标准类库里面的文件,当然也可以是已安装的gems文件,

但是如果是自己在本地写的文件,就不能直接用require了,

而应该这样:

#E7.4-1.rb Module(模块)
module Module1
  def sqrt(num, rx=1, e=1e-10)
    num*=1.0
    (num - rx*rx).abs <e ? rx : sqrt(num, (num/rx + rx)/2, e)
  end
end

#E7.4-2.rb Person 类
class Person
  def talk
    puts "I‘m talking."
  end
end

#用require_relative加载本地Ruby文件
require_relative "E7.4-1"  这里是相对路径
require_relative "E7.4-2"

class Student < Person
  include Module1
end

aStudent=Student.new
aStudent.talk # I‘m talking.
puts aStudent.sqrt(77,2) # 8.77496438739435

#但是这个如果想直接通过require的方式来引用也是有办法的,那就是在文件头部将当前目录作为ruby加载的路径:

#其中File.dirname(__FILE__)代表当前路径,而$LOAD_PATH.unshift方法的目的就是将当前目录作用ruby标准的加载路径

$LOAD_PATH.unshift(File.dirname(__FILE__)) unless $LOAD_PATH.include?(File.dirname(__FILE__))  
require "E7.4-1" 
require "E7.4-2"

class Student < Person
  include Module1
end

aStudent=Student.new
aStudent.talk # I‘m talking.
puts aStudent.sqrt(77,2) # 8.77496438739435

时间: 2024-10-09 21:31:06

ruby require的相关文章

IIS7 上配置运行 Ruby CGI环境

在IIS 站点上 “处理程序映射”点击“添加脚本映射..” 请求路径:*.rb 可执行文件:C:\Ruby22\bin\ruby.exe %s %s 名称:ruby 点击确定,如果此时提示错误: 如果您添加脚本映射处理程序映射,则IsapiModule或CigModule必须在模块列表中 说明 IIS7的默认安装是一个原始版本,里边功能不全. 处理方法很简单,在 控制面板 -> 程序和功能 -> 打开或关闭Windows功能(这几步可以简化为Win+R运行OptionalFeatures) -

ruby的if判断

if判断的基本格式如下: if 条件 then   #then可省略   处理 end 1.判断文件是否存在 #!/usr/bin/env ruby if File.exist?("/etc/hosts")   print "ok" end 加上else #!/usr/bin/env ruby if File.exist?("/etc/hosts")   print "ok" else   print "error,

Ruby中的遍历指定目录的文件方法

在ruby中我们要实现遍历指定目录的方法,网上的方法也非常之多,我们可以拿来参考参考,如下边的traverse.rb文件内容所示: #!/usr/bin/ruby  def traverse(filepath)     if File.directory?(filepath)       puts "Dirs:" + filepath       Dir.foreach(filepath) do |filename|         if filename != ".&quo

一个简单的ruby生成器例子(用连续体Continuation实现)

ruby中有很多经典的驱动器结构,比如枚举器和生成器等.这次简单介绍下生成器的概念.生成器是按照功能要求,一次产生一个对象,或称之为生成一个对象的方法.ruby中的连续体正好可以用来完成生成器的功能.连续体说起来晦涩,其实还是很简单的,它有3个特点: 1. callcc方法会给代码块传一个连续体对象,你可以保存该对象; 2. 当调用连续体的call方法时指令流会跳转到callcc方法之后; 3. 如果给连续体的call方法传递对象,则callcc方法会返回该对象,如果不传递对象,callcc会返

Ruby之多线程

#Thread #1 is running here Thread.new{ #Thread #2 runs this code } #Thread #1 runs this code Thread.new的同义词是Thread.start和Thread.for 代码块中的最后一个表达式的值是线程的值,可以通过调用Thread对象的值的方法获得. Thread.current   表示当前线程的Thread对象. Thread.main 代表ruby程序的开始时的主线程 Thread.join

Ruby初探

官方网站:https://www.ruby-lang.org/zh_cn/ 标准库API文档:http://ruby-doc.org/stdlib-2.3.0/ 简介特性安装Ruby 命令行选项编码语法空白与行尾标识符与保留字Here DocumentBEGIN与END 语句注释运算符算数运算符比较运算符赋值运算符并行赋值位运算符范围运算符defined? 运算符点运算符 "." 和双冒号运算符 "::"运算符的优先级数据类型数值(Number)字符串(String

如何创建自己的ruby gem包

编写一个最简单的例子 1. 建好如下文件夹 注意:lib目录下必须有个和你gem名字一样的rb文件. [ruby] view plaincopy $ cd hola $ tree . ├── hola.gemspec └── lib └── hola.rb 2. 编写代码 . hola.rb [ruby] view plaincopy % cat lib/hola.rb class Hola def self.hi puts "Hello world!" end end .hola.g

扫描局域网中Gogs服务器脚本(ruby)

scanGogs.rb #!/usr/bin/env ruby require 'open-uri' require 'thread' require 'english' # configs CONFIG_IPDOMAIN = '30.93.41.' CONFIG_RANGE = (2..254) CONFIG_URITEMPLATE = 'http://%s:3000/user/login' # tty TTY_FG = { Black: 30, Red: 31, Green: 32, Yel

Ruby多线程

Ruby多线程 Ruby多线程教程,编程教程,例子教程,参考手册和代码 - 传统程序有一个执行线程,包括程序的语句或指令顺序执行,直到程序终止. 传统程序中有一个执行线程,包括程序的语句或指令顺序执行,直到程序终止. 一个多线程程序中有多个执行线程.在每个线程中,语句顺序执行,但可parallel.on执行线程本身多核的CPU,例如.多个线程往往在一个单CPU的机器,不实际执行并行,但并行交错执行的线程模拟. Ruby可以很容易地写Thread类的多线程程序. Ruby线程是一个轻量级的和有效的