Um Warnungen mit Ruby anzuzeigen, kann man ruby
mit dem Flag -w
aufrufen. Bei der Verwendung von Bibliotheken zeigt Ruby möglicherweise viele Warnungen an, so dass es schwierig ist, die Warnungen der Dateien zu finden, an denen Sie gerade arbeiten. Ist es möglich, ruby
zu sagen, Warnungen nur für einige Dateien anzuzeigen?Wie kann ich auswählen, für welche Dateien Warnungen angezeigt werden sollen?
Hier ist ein Beispiel zur Veranschaulichung des Problems. Im folgenden Beispiel wird eine Bibliothek geladen, die viele Warnungen generiert. Außerdem wird eine Warnung generiert, indem eine Konstante neu definiert wird.
require 'grooveshark'
CONSTANT = 'foo'
CONSTANT = 'bar'
Der Ausgang des ruby -w warning_test.rb
ist wie folgt:
/var/lib/gems/1.9.1/gems/rest-client-1.6.7/lib/restclient/exceptions.rb:157: warning: assigned but unused variable - message /var/lib/gems/1.9.1/gems/rest-client-1.6.7/lib/restclient/exceptions.rb:167: warning: assigned but unused variable - message /var/lib/gems/1.9.1/gems/rest-client-1.6.7/lib/restclient/response.rb:11: warning: method redefined; discarding old body /var/lib/gems/1.9.1/gems/rest-client-1.6.7/lib/restclient/payload.rb:47: warning: mismatched indentations at 'end' with 'case' at 40 /var/lib/gems/1.9.1/gems/macaddr-1.6.1/lib/macaddr.rb:63: warning: assigned but unused variable - status /var/lib/gems/1.9.1/gems/macaddr-1.6.1/lib/macaddr.rb:63: warning: assigned but unused variable - stderr /var/lib/gems/1.9.1/gems/macaddr-1.6.1/lib/macaddr.rb:56: warning: assigned but unused variable - re /var/lib/gems/1.9.1/gems/macaddr-1.6.1/lib/macaddr.rb:59: warning: assigned but unused variable - null /var/lib/gems/1.9.1/gems/systemu-2.5.2/lib/systemu.rb:126: warning: shadowing outer local variable - cid /var/lib/gems/1.9.1/gems/systemu-2.5.2/lib/systemu.rb:213: warning: shadowing outer local variable - buf /var/lib/gems/1.9.1/gems/systemu-2.5.2/lib/systemu.rb:215: warning: shadowing outer local variable - buf /var/lib/gems/1.9.1/gems/systemu-2.5.2/lib/systemu.rb:208: warning: assigned but unused variable - ignored /var/lib/gems/1.9.1/gems/systemu-2.5.2/lib/systemu.rb:252: warning: shadowing outer local variable - key /var/lib/gems/1.9.1/gems/systemu-2.5.2/lib/systemu.rb:249: warning: assigned but unused variable - ignored /var/lib/gems/1.9.1/gems/grooveshark-0.2.7/lib/grooveshark/user.rb:65: warning: method redefined; discarding old playlists /var/lib/gems/1.9.1/gems/grooveshark-0.2.7/lib/grooveshark/user.rb:93: warning: method redefined; discarding old favorites warning_test.rb:4: warning: already initialized constant CONSTANT
In diesem Fall
würde ich nur nur die letzte Warnungwarning_test.rb:4: warning: already initialized constant CONSTANT
Da die anderen Warnungen beruhen auf Bibliotheken sehen möchten Ich habe keine direkte Kontrolle über die Warnungen für sie sind nicht so interessant. Ich würde gerne Ruby sagen können, nur Warnungen für das Projekt zu zeigen, das gerade funktioniert.
Ich weiß, dass die Definition der Stromstärke schwierig sein könnte. Vielleicht nur Warnungen für die angegebene Datei anzuzeigen und Dateien, die über require_relative
enthalten sind, würden tun. Eine weitere Alternative besteht darin, Warnungen für Dateien anzuzeigen, die sich in der Verzeichnisstruktur in der angegebenen Datei befinden.
Welche Warnung reden Sie? –
@AndrewMarshall: Ausnahmen, vielleicht? –
@AndrewMarshall Ich beziehe mich auf diejenigen, die Sie erhalten, wenn Sie "-w" mit 'Ruby' verwenden. –