在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
令我困惑的另一件事......在时间类的文档中,它首先说的是"实现Time.rb库文档中描述的Time类的扩展."
他们的意思是"time.rb库实现了这个类的扩展吗?"
我想也许就是Time#advance来自哪里,但我发现的只是这个.
看起来不是advance
语言的核心部分,因此缺乏文档.看起来是rails包含的一个包的一部分,即ActiveSupport模块.
文档在这里:http: //api.rubyonrails.org/classes/Time.html#method-i-advance
它实际上在ActiveSupport::CoreExtensions::Numeric::Time
模块中.
这是我对Ruby的抱怨之一 - 无法为对象的每个方法找到全面的文档,因为方法列表会根据上下文而变化.强大而刺激.
我正在研究一个我最初没写过的大型Rails应用程序,偶尔我会谷歌一个方法,我在几分钟之前就认识不到几分钟才实现...是的,以前的开发人员在/ lib中定义了它.