如何复制Ruby核心类名称并仍在我的类中使用该核心类?

时间:2009-09-25 04:18:06

标签: ruby

我正在创建一个非常有限的Time类,我想在其中使用核心Time类的parse方法。所以我最终得到这样的东西......

class Time
    def parse(str)
         @time = # I want to use Time.parse here
    end
end

如何在不重命名课程的情况下突破我新定义的Time类并访问核心Time类?

1 个答案:

答案 0 :(得分:6)

require 'time'
class Time
#Opening the singleton class as Time.parse is a singleton method
  class << self
    alias_method :orig_parse, :parse
    def parse(str)
      @time = orig_parse str
    end
  end
end

现在,您仍然可以使用Time.orig_parse

引用旧的解析方法