在我们有多个开发人员和风格的项目过程中,我们有一些测试和代码被注释掉了。有没有一种简单的方法可以找到所有被注释掉的代码?
该工具应该足够聪明,可以发现正在注释的是 ruby 代码,而不是真正的注释。
在这一点上,我只能像grep #
一样想到 grep,但它应该是更聪明、更少手动的东西。
这可能很丑陋,但我认为您可以使用 rake 任务检查每个".rb"文件,每行一行,将其与正则表达式匹配(类似于/#.*/),并在每个匹配项上运行eval("matching_string")
。如果注释不是 ruby 代码,它只会失败。
似乎您需要一个looks_like_ruby
方法才能执行此操作:
puts line if line =~ /^s+#/ && looks_like_ruby(line)
一个快速而肮脏的实现(在我的头顶上)
def looks_like_ruby(text)
text =~ Regexp.union((Kernel.methods + Object.methods).uniq.map(&:to_s))
end
不完美,但比贪婪#
好