庭院和 C 扩展

Yard and C extension

我有一个用 rdoc 记录的 C ruby 扩展。既有C文件,也有ruby文件被rdoc解析。

yard 可以做同样的事情吗?有没有"easy way",(我的意思是一种常用的方式)从 rdoc 迁移到 yard?

正如@Neil Slater 所说,Yard 可以解析 rdoc 风格的文档,但有一个例外是 :call-seq 标签rdoc。其等效项是来自 Yard@overload。 (参见 rdoc, darkfish, and the :call-seq: tag

对我来说,我使用了 Rake 任务来生成 rdoc 文档:

require "rdoc/task"

RDOC_FILES = FileList["README.rdoc", "ext/clangc/clangc.c", "ext/clangc/constants.c", "ext/clangc/class_Index.c", "ext/clangc/class_TranslationUnit.c", "lib/clangc.rb"]

Rake::RDocTask.new do |rd|
  rd.main = "README.rdoc"
  rd.rdoc_dir = "doc"
  rd.rdoc_files.include(RDOC_FILES)
end

我只需要启动 rake rdoc

为了使用 Yard,我只需要像这样创建一个 Rake 任务:

require "yard"
YARD_FILES = FileList["ext/clangc/clangc.c", "ext/clangc/class_Index.c", "ext/clangc/class_TranslationUnit.c", "lib/clangc.rb"]

YARD::Rake::YardocTask.new do |t|
  t.files   = YARD_FILES   # optional
  t.options = %w(-o yard_documentation --readme README.rdoc) # optional
end

那我就用rake yard。仍然有一些错误,但这是一个好的开始。