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

cfe*_*uke 2 ruby

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

class Time
    def parse(str)
         @time = # I want to use Time.parse here
    end
end
Run Code Online (Sandbox Code Playgroud)

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

khe*_*lll 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
Run Code Online (Sandbox Code Playgroud)

现在你仍然可以使用引用旧的解析方法 Time.orig_parse