2012-11-14 17 views
5

Im Laufe unseres Projekts mit mehreren Entwicklern und Stilen, haben wir einige Tests und Code, die auskommentiert sind. Gibt es eine einfache Möglichkeit, den gesamten Code zu finden, der auskommentiert ist?Tool/Juwel, um kommentierten Code zu finden

Das Tool sollte intelligent genug sein, um herauszufinden, dass es Ruby-Code ist, der nicht kommentiert wird, echte Kommentare.

An diesem Punkt kann ich nur an Grep wie grep # denken, aber es sollte etwas klüger und weniger manuell sein.

+0

Was unterscheidet "code" versus "comment text"? – BryanH

+1

Ich denke, wenn es seinen Code kompiliert, ist es sonst ein Kommentar :) – satyajit

Antwort

1

Das kann hässlich sein, aber ich denke, dass Sie jede ".rb" -Datei mit einer Rake-Aufgabe, Zeile pro Zeile, mit einem regulären Ausdruck (etwas wie /#.*\n/) überprüfen und eine eval("matching_string") ausführen können bei jedem Spiel. Wenn der Kommentar nicht Ruby-Code ist, wird es einfach fehlschlagen.

+0

Die meisten (wenn nicht alle) übereinstimmenden Rubinlinien werden ebenfalls fehlschlagen. –

+1

True, aber wenn der Fehler ausgelöst wird, ist NoMethod vielleicht möglich, anzunehmen, dass die Zeichenfolge rb-Code ist. Nur eine wilde Idee schießen. – nicooga

1

Es scheint es eine looks_like_ruby Methode benötigen, so können Sie dies tun:

puts line if line =~ /^\s+#/ && looks_like_ruby(line) 

A quick and dirty-Implementierung (aus der Spitze von meinem Kopf)

def looks_like_ruby(text) 
    text =~ Regexp.union((Kernel.methods + Object.methods).uniq.map(&:to_s)) 
end 

Nicht perfekt, aber besser als grepping für #

Verwandte Themen