2008-07-28

Ruby Meta Programming: define_method or class_eval

关键字: ruby, metaprogramming
今天刚巧看到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 ...
2008-07-27

Ruby Meta Programming: eigenclass

关键字: ruby, metaprogramming
Ruby eigenclass从字面上理解就是自己的类。singleton class是它的另一个名字,不过我更喜欢eigen,更准确。 那什么是eigenclass呢?以x战警为例: class Person attr_accessor :name, :age def initialize(name) @name = name end end 金刚狼外表看起来和普通人没什么区别,不过他有着钛合金的骨架,能够自动疗伤,而且有锋利的爪子。在这种情况下如何定义呢?ruby给了我们一个更优雅的方式解决这个问题。 logen = Pers ...
yapex
搜索本博客
最近加入圈子
最新评论