例如,我总是看到所谓的方法String#split,但从来没有String.split,这似乎更合乎逻辑.或者甚至可能String::split,因为你可以考虑#split在名称空间中String.当假设/隐含(#split)时,我甚至独自看过这个方法.
我知道这是在ri中识别方法的方式.哪个先来?
这是区分,例如,来自领域的方法吗?我也听说这有助于区分实例方法和类方法.但这是从哪里开始的?
有没有类似javadoc或rdoc来记录YAML文件,以便我们可以将它提取到HTML文档中?理想情况下使用markdown语法.
在过去一周,在一些gem安装或gem更新操作中,我收到了类似这样的错误:
ERROR: While generating documentation for sinatra-1.3.1 ... MESSAGE: error generating C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/doc/sinatra-1.3.1/rdoc/README_de_rdoc.html: incompatible encoding regexp match (UTF-8 regexp with IBM437 string) (Encoding::CompatibilityError)
类似的:
ERROR: While generating documentation for rest-client-1.6.7 ... MESSAGE: error generating C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/doc/rest-client-1.6.7/rdoc/README_rdoc.html: incompatible encoding regexp match (UTF-8 regexp with IBM437 string) (Encoding::CompatibilityError)
可能还有一个地方.我已经读过这篇文章,但是找不到我没写的代码和我无法控制的数据的解决方案.知道如何解决这个问题吗?
我class_eval用来更简洁地定义一堆重复的方法,如下所示:
%w{greasy chunky bacon}.product(%w{flying sky poodle}).each do |a,b|
class_eval "def #{a}_#{b}; do_something; end"
end
Run Code Online (Sandbox Code Playgroud)
我希望所有生成的方法都包含在RDoc文档中.是否有RDoc指令"手动"将方法添加到类的方法列表中?我找不到一个.
我有一些没有ri/rdoc文件的宝石,我想知道是否有办法安装这个rdoc文件.
我不确定这是否真的可行,但我试图通过在我们的app/models文件中添加范围的文档来使我们的rails应用程序的文档更完整.我想要尝试做的是:
# This is a description of what the scope does and the action that it performs
scope :newest_records, order("created_at desc").limit(50)
Run Code Online (Sandbox Code Playgroud)
然后当我在应用程序上运行rdoc时,我希望将其newest_records列为公共类方法以及更传统的方法,这些方法将记录如下:
# some more documentation about this method
def self.a_class method
....
end
Run Code Online (Sandbox Code Playgroud)
编辑
我意识到这个问题可能有点含糊不清.所以这里是一个澄清的尝试:目前,当我尝试在scope声明上方添加注释行时,我没有得到RDoc为该范围生成的文档.我知道RDoc可以获取元方法/属性,否则它不会在声明的文档中显示属性attr_accessor.所以我的问题是如何在我的文件中添加注释,以便:
我想为rails(2.3.8)项目生成一个文档.当我尝试
rake doc:rails
rake doc:rerails
Run Code Online (Sandbox Code Playgroud)
它为所有类创建文档,包括标准ruby类和供应商目录中的所有ruby文件(插件等).
如何仅为ruby类,以下目录中的文件创建rdoc文档
我有一个类,我从这样的工厂函数创建:
Cake = MyProject.Struct(:type, :price)
Run Code Online (Sandbox Code Playgroud)
在Yard中,它只是与我的常量一起显示:
Cake =
Struct(:type, :price)
我希望它出现在"Classes:"列表中.在阅读完文档之后,我开始相信这会起作用:
# @!parse class Cake; end
Cake = MyProject.Struct(:type, :price)
Run Code Online (Sandbox Code Playgroud)
但它确实没有改变任何东西.
是否有可能让Yard将动态创建的类记录为类?
想要在提交之前看看RDoc README文件在Github上的外观.如何在单个文件上运行RDoc并在浏览器中预览结果?