Ruby Core
文章平均质量分 75
rocky_j2ee
ruby on rails ..ing
展开
-
Ruby中 respond_to? 和 send 的用法
如同其他的OO语言一样,在ruby中,通过给对象发送消息,来完成对象的功能,比如 str.upcase ,就是给str发送upcase的消息,点操作符(.),就是用来给对象发送消息的,str接受到消息,然后执行与消息对应的功能。但是,某些时候,我们并不知道对象能响应哪些消息,比如下面的代码就会产生错误: > obj = Object.new> obj.talk转载 2009-01-12 00:19:00 · 1281 阅读 · 0 评论 -
Ruby的include和extend
关键字: ruby rails include主要用来将一个模块插入(mix)到一个类或者其它模块。 extend 用来在一个对象(object,或者说是instance)中引入一个模块,这个类从而也具备了这个模块的方法。 通常引用模块有以下3种情况: 1.在类定义中引入模块,使模块中的方法成为类的实例方法 这种情况是最常见的 直接 include 即可 2.在类定义中引入模块,使模块中的方法转载 2009-01-11 23:40:00 · 6300 阅读 · 0 评论 -
Ruby元编程技术(Ruby Metaprogramming techniques)
我最近考虑了很多元编程(Metaprogramming)的问题,并希望看到更多这方面技术的例子和讲解。无论好坏,元编程已经进入Ruby社区,并成为完成各种任务和简化代码的标准方式。既然找不到这类资源,我准备抛砖引玉写一些通用Ruby技术的文章。这些内容可能对从其它语言转向Ruby或者还没有体验到Ruby元编程乐趣的程序员非常有用。 1. 使用单例类 Use the singleton-clas转载 2009-01-12 00:22:00 · 7025 阅读 · 1 评论 -
include, extend, class_eval 用法
引用 :http://www.neeraj.name/blog/articles/503 Ruby is fun. However it took me a while to understand various semantics like include, extend, module_eval, class_eval. It all gets confusing in the原创 2009-02-08 13:22:00 · 1487 阅读 · 1 评论 -
使用define_method
define_method用于将实例方法动态添加到类或对象中,它接受一个符号(用做方法名)和一个代码块(用做方法体)作为参数,实际上这个代码块是通过instance_eval来执行的,因为define_method是private的。所以: Ruby代码 define_method(:activity) { puts "Playing!" } define_me原创 2009-02-08 13:41:00 · 1827 阅读 · 0 评论 -
alias , alias_method ,alias_method_chain
1.alias 就是 把方法 复制一份 并且取一个新的别名 例如 class Rocky def name puts "old_name" endendtest = Rocky.newclass alias rocky_name , name def name rocky_name puts "is turn into new name"原创 2009-02-08 23:09:00 · 2005 阅读 · 0 评论