自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

但行好事 莫问前程

on the programming road

  • 博客(15)
  • 收藏
  • 关注

ruby way之处理RSS和Atom

1 rss 标准库RSS 是基于xml的,因此你能简单的将它作为一个xml来进行解析.可是,事实上他有一个更高级别的专有的解析器来解析他.此外RSS的标准也很混乱。他有很多不便,就是标准的版本的不兼容,RSS有0.9, 1.0, 和2.0的版本.RSS的版本,就像制造热狗,就是一些除非你一定要知道,否则你不想要知道的细节.ruby有一个标准RSS库,它包含0.9,1.0和2...

2008-01-31 01:32:59 124

ruby way之使用REXML解析xml

REXML 是一个完全用ruby写的processor ,他有多种api,其中两个经典的api是通过DOM-like 和SAX-like 来进行区分的。第一种是将整个文件读进内存,然后存储为一个分层的形式(也就是一棵树了).而第二种是"parse as you go",当你的文件很大,并且内存受到限制的时候,比较适合用这种。看下面的book.xml:[quote] ...

2008-01-30 00:35:10 154

rails2中的一些被废弃的用法

这些只是自己最近看web开发敏捷之道的时候(由于书中的版本是1.2,而我自己的是2.0),遇到的一些问题.1 原来的render_{something}都被替换成了render :something 2 controller中的几个实例方法比如@params,@session,@flash,@request和@env都被相应的params,session,flash,request...

2008-01-29 00:33:11 90

ruby way之动态特性之二

1 得到所定义的实体的列表ruby的反射api能够使我们在运行时检测类和对象。因此我们下面将会介绍Module, Class, 和Object中的定义的一些方法。Module模块有一个constants 的方法,它将会返回系统中所有的常量名,包括类名和模块名。nesting 方法则是返回当前调用点上的嵌套的模块的列表.[code="ruby"]list = Math.con...

2008-01-25 00:49:18 116

ruby way之动态特性之一

1 动态的evaluate代码全局的方法eval 编译并且执行一段包含ruby代码片断的字符串,这是一个很power的机制,因为它允许你建造在运行时执行的代码。看下面的例子:[code="ruby"]parameters = {}ARGF.each do |line| name, expr = line.split(/\s*=\s*/, 2) param...

2008-01-23 01:25:04 91

ruby way之高级OOP特性之二

1 把代码像对象一样存储当你想要以对象的形式存储一块代码的时候,ruby给了你几种方法。下面我们会介绍Proc 对象, Method 对象和 UnboundMethod 对象.内置的Proc 类包装ruby block到一个对象.Proc对象,像一个blocks,是一个闭包而且保存了它定义时的上下文:[code="ruby"]myproc = Proc.new { |a| ...

2008-01-20 03:43:54 167

ruby way之高级OOP特性之一

1 发送一条消息给一个对象当你调用一个方法时,你也就是发送了一条消息给一个对象,在ruby中我们能够在运行时决定那个方法被调用。send 方法就是做这个的,他接受一个symbol为参数.举个简单的例子,假设我们要写一个排序,我们想要使用不同的域作为比较的key。虽然我们这时可以用block,可是如果使用send的话,我们能有一个更优美的写法:[code="java"]cla...

2008-01-19 12:14:30 140

ruby way之OOP之二

1 理解allocate在一些特殊的环境中,你可能需要不调用它的构造器(也就是initialize)来创建一个对象。也就是说你想要创建一个空的对象.例如,假设你有一个对象,它的状态完全的由它的存取方法所确定,因此如果你不是真的想要一个另外的状态的话,调用new方法是没必要的.此时我们能allocate方法.[code="ruby"]class Person attr_acce...

2008-01-16 23:59:08 79

ruby way之OOP之一

1 使用多个构造方法在ruby中没有像c++或者ruby中的构造器,可是我们依然能够创建出类似的多个构造器:[code="ruby"]class ColoredRectangle def initialize(r, g, b, s1, s2) @r, @g, @b, @s1, @s2 = r, g, b, s1, s2 end def Color...

2008-01-16 00:25:51 97

ruby way之连接数据库

这边都只是个大概,具体的要自己去看文档了.1 连接SQLite:[code="java"]require 'sqlite'db = SQLite::Database.new("library.db")db.execute("select title,author from books") do |row| p rowenddb.close...

2008-01-14 00:47:31 118

ruby way之高级数据存取

经常我们需要以一种更透明的方式来存储和得到数据.Marshal模块提供了简单的对象持久化,PStore 库建立在这项技术之上。dbm 库使用像hash一样并永久的存贮在磁盘上.1简单的Marshaling经常我们需要创建一个对象,然后为了以后的使用保存它.ruby对这种对象持久化(或者说是Marshaling)提供了基本的支持.Marshal 模块能够使程序员序列化和反序列化一个r...

2008-01-13 02:31:01 150

ruby way之Io之二

1 检测文件是否存在及其大小FileTest的 exist?方法可以检测一个文件是否存在:[code="ruby"]flag = FileTest::exist?("LochNessMonster")flag = FileTest::exists?("UFO")# exists? is a synonym for exist?[/code]如果我们想要知道文件是否有...

2008-01-09 00:38:11 144

programming erlang前三章记要

今天花了2各种头,看了一下programming erlang的前三章,由于自己对scheme和haskell都有一些了解,因此觉得语法方面,erlang和他们挺相似的.顺便发下牢骚,emacs实在是用不习惯,可是vi的erlang插件实在是烂,郁闷..这边只是一个简要的描述. 1整数erlang里面的整数和scheme里面的是一样的都是允许任意长度的(只要不超出机器字...

2008-01-07 01:06:22 98

ruby way之IO之一

1 打开和关闭一个文件类方法File.new 打开一个文件,并将它实例化为一个File对象,他的第一个参数是文件名.可选的第二个参数叫做 mode string(这个也是从c得来的).他的意思是怎样打开一个文件(读,写或者其他的).默认是'r'(也就是读).[code="ruby"]file1 = File.new("one") # Open for reading...

2008-01-05 21:44:33 93

ruby way之Enumerables

Enumerable 模块是一个很重要的模块,ruby中的很多类都有mix这个模块,比如array,hash等等。因此如果你想要自己定义一个collection,则不要继承一个存在的collection,而是应该mix Enumerable 模块。数组是最常用,最有代表性的mix Enumerable模块的一个集合。因此下面的都会默认用数组来举例子1 inject方法先看一...

2008-01-02 00:03:59 121

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除