今天刚巧看到Matt Aimonetti的blog上讨论ruby meta programming的执行效率问题,就跟着做了一下,还是学到了不少东西。大致说一下吧,首先Matt写了一个简单的计算时间的DSL类:
module TimeDSL
def second
self * 1
end
alias_method :seconds, :second
def minute
self * 60
end
alias_method :minutes, :minute
def hour
...
- 17:06
- 浏览 (384)
- 评论 (1)
- 分类: 默认类别
- 发布在 Thinking In Ruby 圈子
Ruby eigenclass从字面上理解就是自己的类。singleton class是它的另一个名字,不过我更喜欢eigen,更准确。
那什么是eigenclass呢?以x战警为例:
class Person
attr_accessor :name, :age
def initialize(name)
@name = name
end
end
金刚狼外表看起来和普通人没什么区别,不过他有着钛合金的骨架,能够自动疗伤,而且有锋利的爪子。在这种情况下如何定义呢?ruby给了我们一个更优雅的方式解决这个问题。
logen = Pers ...
- 18:22
- 浏览 (260)
- 评论 (3)
- 分类: 默认类别
- 发布在 Thinking In Ruby 圈子
- 浏览: 610 次
- 性别:


- 详细资料
搜索本博客
最近加入圈子
最新评论
-
Ruby Meta Programming: d ...
[url][ module BadMetaTimeDSL { ...
-- by sunfengcheng -
Ruby Meta Programming: e ...
来自merb-core/core-ext/object.rb的snippet:c ...
-- by limux -
Ruby Meta Programming: e ...
class Foo class << self ;;打开Foo的 ...
-- by limux -
Ruby Meta Programming: e ...
eigen: 本征的
-- by limux






评论排行榜