6

我有一些看起来像这样的 Ruby 代码:

# some_string = "{really?}"

花括号需要成为字符串的一部分。此行已注释掉我想保留在那里的代码。我还使用 YARD 来记录代码,所以当我运行yard doc它时(自然地)会抛出一个关于无法“真正”链接的警告。

有没有办法告诉 YARD 忽略注释掉的代码?

4

1 回答 1

3

有没有办法告诉 YARD 忽略注释掉的代码?

一方面,YARD 被记录为支持 Rdoc 标记。并且 Rdoc 被记录为支持几种隐藏部件的方法。

如果 RDoc 在 # 字符之后发现以 -- 开头的注释行,则 RDoc 停止处理注释(否则,如果它具有三个或更多破折号,它将被视为规则)。这可用于将外部注释与内部注释分开,或阻止注释与方法、类或模块相关联。可以使用以 ++ 开头的行重新打开注释。

:stopdoc: / :startdoc:
停止并开始向当前容器添加新的文档元素。例如,如果一个类有许多你不想记录的常量,在第一个之前放一个 :stopdoc: ,在最后一个之后放一个 :startdoc: 。如果您没有在容器末尾指定 :startdoc: ,则禁用当前文件其余部分的文档。

资源

另一方面,我从未说服 Rdoc 或 YARD 遵循该标记。如果你的运气比我好,你可以在这里停止阅读。

如果您也无法说服 YARD 遵循该标记,我认为您最好的选择可能是剪掉该行,并使用独特的提交消息提交文件——您可以通过 grepping 轻松找到源代码控制日志。

最后,rake允许您以任意方式转换文本(代码)文件。您可以编写一个 Rakefile 来删除行,然后再通过 YARD 处理它们。

$ cat silly-ruby-file.src 
class Something

  def this_method
  end

  def that_method
    # some_string = "{really?}" # Hide me
  end
end

我附上了文字# Hide me;过滤特定文本比过滤任意代码的注释行要容易得多

$ cat Rakefile
task :default => "silly-ruby-file.rb"
sh "grep -v '# Hide me' silly-ruby-file.src > silly-ruby-file.rb"

这告诉rake运行grep,将除具有文本“# Hide me”的行之外的所有行复制到标准输出,该标准输出被重定向到“silly-ruby-file.rb”。

于 2015-02-28T03:06:50.930 回答