ruby - 庭院和 C 扩展

标签 ruby yard ruby-c-extension

我有一个用 rdoc 记录的 C ruby​​ 扩展。 rdoc解析的有C文件和ruby文件。

yard 可以做同样的事情吗?是否有一种“简单的方法”(我指的是一种常用的方法)从 rdoc 迁移到 yard?

最佳答案

正如@Neil Slater 所说,Yard 可以解析 rdoc 风格的文档,但有一个异常(exception),即来自 :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。仍然存在一些错误,但这是一个好的开始。

关于ruby - 庭院和 C 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32920560/

相关文章:

c - 如何将链接目标添加到 Ruby mkmf?

c++ - 如何在 Ruby-C++ 扩展中的 C++ 类中编写非静态方法?

ruby - 与 Ruby 并行赋值

ruby - 是什么 ?在?字符中

java - 使用 Cucumber 和 Gherkin 从步骤定义 (java) 和功能文件生成文档

ruby - YARD不把 `code`替换成<code>code</code>正常吗?

ruby - 返回类的方法的 YARD 文档

c - Ruby C 扩展 rb_str_new2 似乎返回 false

Ruby TCPSocket 读取直到自定义终止符

ruby - Sinatra:避免模板上的代码