- 浏览: 83747 次
- 性别:
- 来自: 深圳
最新评论
文章列表
RubyGem定义
Ruby的打包与安装工具,自动下载,安装,搜索依赖并安装,卸载ruby模块。
In the RubyGems world, developers bundle their applications and libraries into single files called gems. These files conform to a standardized format and typically are stored in repositories on the Internet (but you can also create your own reposit ...
15.1 Command-Line Arguments命令行参数
命令行参数格式:
ruby <options><-><programfile><arguments>*
options:运行参数,传给ruby的解释器
programfile:运行的文件名
arguments:传给程序的参数
第一个没有使用-或者--开头的参数被认为是options的结束。当在options后跟一个-而且没有文件名时,将从标准输入中获取程序内容。
Options
-0[octal] 0标志(数字零)指定记录的分隔字符(,如果没有数字跟随)。- ...
下面的内容从摘要自CF的官网:http://docs.cloudfoundry.com/docs/running/architecture/
Cloud Controller-管理着一个数据库,表中记录orgs, spaces, apps, services, service instances, user roles, and more。
Droplet Execution Agent-管理应用实例的生命周期,跟踪 ...
线程与进程可以程序工作在并行状态。Fiber挂起执行中的某部分,进而执行另外部分。
12.1 Fibers
Ruby 1.9后引入。Fiber可理解了一种程序间的协作机制(coroutine mechanism)。使得我们编程像是多线程程序,但又不引用多线程的问题。下面示例读取文本并计算每个单词的出现次数
#常规的程序写法
counts = Hash.new(0)
File.foreach("testfile") do |line|
line.scan(/\w+/) do |word|
word = word.downcase
coun ...
Ruby的内核模块已经实现了I/O相关的方法:gets,open,print,printf,putc,puts,readline,readlines,test。
11.1 IO对象
Ruby提供了基础类:IO,它的继承类有File与BasicSocket。IO对象就是建立一个双向通道,一端接Ruby,一端接外部资源。
11.2文件的打开与关闭
file = File.new("testfile", "r")
#...process the file
file.close
#第二个参数是操作模式:r w r+(read-writ ...
异常与返回码相比,能更好的将错误情况从逻辑代码中隔离开来,即可以只关心正常逻辑,或者关心自己可以处理的异常情况。而返回码在一个call后面有多个子操作时,如果出现异常情况,则调用者较难知道是哪一步出错。
10.1 异常类
所有内置异常类都继承处Exception类。
10.2处理异常
#使用begin...rescue...end来处理抛出的异常
require 'open-uri'
page= "podcasts"
file_name = "#{page}.html"
web_page = open("http://prag ...
Ruby中任何语句都有一个相应的返回值。
a = b = c = 0 # => 0
[ 3, 1, 7, 0 ].sort.reverse # => [7, 3, 1, 0]
if与case块返回的是最后一个语句的执行结果。
song_type = if song.mp3_type == MP3::Jazz
if song.written < Date.new(1935, 1, 1)
Song::TradJazz
...
8.1 方法定义
def methodName(首字母小写/下划线)。若使用了大写,在调用的时候,ruby会认为这个一个常量,而不是一个方法,就会出现错误。
方法后可以跟? ! =。如果方法返回是boolean,则代?
1.even? #=>false
2.even? #=>true
1.instance_of(Fixnum) #=>true
如果方法会修改接收者(object.method,那object就是这个方法的接受者),或者方法的操作有危险性,使用!。比如String有chop与chop!,前者返回一个修改COPY,后者直接修改当前string。
...
7.1 正则可做啥
测试串是否匹配指定的模式
从串中提取内容它们要么全部匹配要么部分匹配指定的模式
替换串中的内容根据指定的模式
7.2 Ruby的正则
正则式的写法:/模式/。除了.|()[]{}+\^$*?,其它串都标识要匹配自身,如 ...
前面几章已涉及Array,Hash,Proc三种Ruby提供的类型。这章我们会涉及:numbers,strings,ranges及正则表达式。
6.1 数值类型
Ruby支持integers(整数),floating-point浮点型),rational(有理数),complex numbers(复数)。整型可是任意长度(内存空间的长度),超出正常整型的部分存储类型是Bignum的实例,不超出部分是Fixnum的实例,这种转换Ruby自动转换.
#当超出正常范围后,自动使用Bignum
num = 10001
4.times do
puts "#{num.cl ...
继承
Ruby支持继承特性。to_s方法是Object内置方法。定义继承的方法
class Child < Parent
#类似java的this的是#{self}
使用superclass来获取父类
class Parent
end
class Child < Parent
end
Child.superclass # => Parent
再往上就是Object
再往上就是BaseObject
BasicObject.superclass.inspect # => "nil"
下面使用GServer类来演示一个通过继 ...
Containers,Blocks,and Iterators
arrays与hashes是Ruby的关键内置类,块语法用于对集合分层(pair with collections)等操作。
--4.1 Arrays--------
定义数组:a = [3.14, 'pie', 99],或者b = Array.new,然后就可以:a[x],b[i] = xx的读取或设值了,没有数组越界,操作的返回nil
[]是Ruby中的数组操作符,其实是Array类的方法,可接收负数,下图不错,描述了正负的内容情况:
注意:a[1..3]是从1开始,取三个值,a[1...3]从1到3,不包含3 ...
Classes,Objects,and Variables
everything we manipulate in Ruby is an object.And every object in Ruby was generated either directly or indirectly from a class.所有操作都是对象操作,对象是由类直接或者间接产生。为更生动描述类与对象,先设一个案例场景,一 ...
Interactive Ruby(命令行交互)
ruby:输入后,ctrl+d(end-of-file character),即可执行
irb:是ruby提供的交互工具。
Ruby Documentation:RDoc and ri
RDoc与javadoc类似,用于导出source file中的API说明,导出的文件格式可以是HTML,也可以是ri格式。
ri:离线文档显示工具,比如ri GC或ri GC::enable。但在win下安装的runby环境中,上述命令没有对应的文档不输出,还需更多了解。
eg.
ri Array
ri Array.sort。
::用于 ...
20分钟体验Ruby
- 博客分类:
- Ruby
20分钟体验Ruby:http://www.ruby-lang.org/zh_cn/documentation/quickstart/
安装:三种方式:源代码;rubyinstaller.exe;ruby.exe
运行:cmd->irb
-------------------------
简单示例:
1、
>puts “Hello World”
Hello World
=>nil //nil是Ruby的空值,puts命令返回nil
2、
>3*2
=>6
>Math.sqrt(9) //Math是自带 ...