2011-12-19 13 views
14

Czy istnieje sposób, aby przywrócić echo skryptu ruby ​​(lub logować się do pliku mogę wykonać polecenie -f) przy każdym uruchomionym wierszu, podobnie do bash -x lub @echo w systemie DOS?echo powrócić do każdej linii kodu Ruby jak sh -x?

ruby ​​-w nie robi - tylko zwiększa szczegółowość ostrzeżeń itp

Zbadał Unroller ale to nie działa, być może zbyt przestarzałe. Niezgodne zależności.

Używam irb dużo, ale w tym przypadku potrzebuję czegoś nieinteraktywnego np. do sprawdzenia sekcji pośmiertnej.

Odpowiedz

6

Można użyć

ruby -rtracer [your_script.rb] 

Istnieje również ruby-debug który can do

rdebug --trace [your_script.rb] 
+0

Wypróbowywany -rtracer, nic specjalnego wydruków. Podobno uszkodzony w Ruby 1.9.1 (nie może jeszcze uaktualnić ze względu na delikatne pakiety Ubuntu w przeciwieństwie do bitew zależnych od Rubygem, niestety) Ale dziękuję, byłby lepszy niż drukowanie każdego komentarza i linii nie-exec – Marcos

+0

Co poważny cierń próbuje get rdebug/ruby-debug na serwerze Ubuntu (10.10 zaktualizowany z 10.04 z 9. *). Bez pakietu Apt. {gem, gem1.9.1} install ruby-debug podaje tylko niekompatybilną wersję poza ścieżką: /var/lib/gems/1.8/bin/rdebug – Marcos

+1

Co powiesz na samodzielne skompilowanie Ruby 1.9.3 w/opt/ruby193 lub coś podobnego. Nie jest to zbyt trudne i warte wysiłku. Istnieje również [RVM] (http://beginrescueend.com/), który pomaga w zarządzaniu wieloma instalacjami w języku Ruby. –

1

IRB załatwia sprawę:

irb script.rb 
+0

Dziękuję - wiedziałem, że przegapiłem coś absurdalnie prostego. – Marcos

+0

NIE jest jak 'set -x'. Przestałem używać zrzutu IRB, ponieważ bezużytecznie wypisuje on całe moje klasy i metody (1000 linii kodu) na początku tylko dlatego, że są zdefiniowane z góry, nawet komentarze i bloki komentarzy, a nie (tylko), ponieważ linie są wykonywane w czas rzeczywisty. – Marcos

Powiązane problemy