2012-11-14 8 views
5

複数の開発者やスタイルのプロジェクトの過程で、いくつかのテストとコードがコメントアウトされています。コメントアウトされているすべてのコードを見つける簡単な方法はありますか?コメントのコードを見つけるためのツール/ gem

このツールは、実際のコメントではなくコメントされているルビーコードであることを知るには十分にスマートでなければなりません。

この時点で私はgrepはgrep #のようにしか思えませんが、よりスマートで少ないマニュアルでなければなりません。

+0

"コード"と "コメントテキスト"はどのような違いがありますか? – BryanH

+1

私はそれがそうでなければそのコメント: – satyajit

答えて

1

これは醜いかもしれませんが、各 ".rb"ファイルをrakeタスクで行ごとに検査し、regexp(/#.*\n/のようなもの)と照合してeval("matching_string")各試合でコメントがルビコードでない場合は、単に失敗します。

+0

(もしそうでなければすべて)一致したルビーラインも失敗するでしょう。 –

+1

真ですが、エラーが発生した場合は、文字列がrbコードであると仮定すると、おそらくNoMethodが可能です。野生のアイデアを撮影するだけです。 – nicooga

1

あなたがこれを行うことができますので、あなたが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 

ない完璧な、しかし、グレープよりも優れています#