使用YARD时忽略注释掉的代码

时间:2013-12-02 21:26:06

标签: ruby yard

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

# some_string = "{really?}"

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

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

1 个答案:

答案 0 :(得分:2)

  

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

一方面,YARD被记录作为支持Rdoc标记。据记载,Rdoc支持几种隐藏零件的方法。

  

如果发现注释行,RDoc会停止处理注释   with - 在#字符后面(否则,它将被视为   如果它有三个破折号或更多的规则)。这可以用来分开   来自内部评论的外部,或停止评论相关联   使用方法,类或模块。评论可以重新开启   一行以++开头。

     

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

Source

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

如果您也不能说服YARD遵循该标记,我认为您最好的选择是削减该行,并使用一个独特的提交消息提交该文件 - 您将能够找到该消息通过点击源控制日志轻松实现。

最后,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”文本的行复制到stdout,然后重定向到“silly-ruby-file.rb”。 / p>