Kann ich Ruby-Code schreiben, der nur ausgeführt wird, wenn mein Skript ausgeführt wird, aber nicht, wenn es erforderlich ist?

8

Ich möchte ein Ruby-Skript so schreiben:

%Vor%

Ich möchte es in der Unit testen können, weshalb ich nicht möchte, dass der Code außerhalb der Klasse ausgeführt wird, wenn ich das Skript nicht direkt ausführe, d. h. ruby foo_it_up.rb .

Ich weiß, dass ich einfach die Foo -Klasse in eine andere Datei und require 'foo' in mein Skript schreiben kann. In der Tat, das ist wahrscheinlich ein besserer Weg, es zu tun, nur für den Fall, dass die Funktionalität von Foo woanders gebraucht wird. Also meine Frage ist akademischer als alles andere, aber ich wäre immer noch daran interessiert zu wissen, wie man das in Ruby macht.

    
Josh Glover 23.06.2011, 07:42
quelle

1 Antwort

20

Dies geschieht normalerweise mit

%Vor%

aber ich bevorzuge

%Vor%

weil Programme wie ruby-prof kann $ 0 nicht gleich machen __FILE__ , auch wenn Sie --replace-progname verwenden.

$PROGRAM_NAME bezieht sich auf den Namen des Programms ( __FILE__ ), während %code% der Name der aktuellen Quelldatei ist.

    
Andrew Grimm 23.06.2011, 07:46
quelle

Tags und Links