我有一些看起来像这样的Ruby代码:
# some_string = "{really?}"
花括号必须是字符串的一部分。这行是注释掉的代码,我想留在那里。我还使用YARD来记录代码,所以当我运行yard doc
时,它(自然地)会抛出一个关于无法“真正”链接的警告。
有没有办法告诉YARD忽略已注释掉的代码?
答案 0 :(得分:2)
有没有办法告诉YARD忽略已注释掉的代码?
一方面,YARD被记录作为支持Rdoc标记。据记载,Rdoc支持几种隐藏零件的方法。
如果发现注释行,RDoc会停止处理注释 with - 在#字符后面(否则,它将被视为 如果它有三个破折号或更多的规则)。这可以用来分开 来自内部评论的外部,或停止评论相关联 使用方法,类或模块。评论可以重新开启 一行以++开头。
:stopdoc:/:startdoc:
停止并开始向当前添加新的文档元素 容器。例如,如果一个类有许多常量 不想文件,放一个:stopdoc:在第一个之前,和一个 :startdoc:在最后一次之后。如果你没有指定:startdoc:到最后 对于容器,禁用当前剩余部分的文档 文件。
另一方面,我从未说服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>