Time.advance在哪里记录?

Eth*_*han 9 ruby api time

在Web上环顾四周,我发现Ruby Time类有Time#advance.这记录在哪里?我在这里的Ruby API文档中没有提到它.

API文档的搜索功能表明在任何地方都没有称为"advance"的方法.

尽管如此,在IRB ......

>> t = Time.now
=> Thu Mar 05 16:08:57 -0800 2009
>> t.advance :months => 1
=> Sun Apr 05 16:08:57 -0700 2009
Run Code Online (Sandbox Code Playgroud)

令我困惑的另一件事......在时间类的文档中,它首先说的是"实现Time.rb库文档中描述的Time类的扩展."

他们的意思是"time.rb库实现了这个类的扩展吗?"

我想也许就是Time#advance来自哪里,但我发现的只是这个.

dan*_*sky 6

看起来不是advance语言的核心部分,因此缺乏文档.看起来是rails包含的一个包的一部分,即ActiveSupport模块.

文档在这里:http: //api.rubyonrails.org/classes/Time.html#method-i-advance


Sar*_*Mei 6

它实际上在ActiveSupport::CoreExtensions::Numeric::Time模块中.

这是我对Ruby的抱怨之一 - 无法为对象的每个方法找到全面的文档,因为方法列表会根据上下文而变化.强大而刺激.

我正在研究一个我最初没写过的大型Rails应用程序,偶尔我会谷歌一个方法,我在几分钟之前就认识不到几分钟才实现...是的,以前的开发人员在/ lib中定义了它.

  • 在 Rails 之外使用:在终端中:`gem install activesupport`,在 x.rb 中:`require 'active_support/time'` (2认同)