Wednesday, October 18, 2006

Nach all den Jahren...

Ruby Beispiele kommen in der Regel so daher:
a, b = "foo", "baz"
a + b # => "foobaz"
a.size # => 3
Im Kommentar sieht man gleich das Ergebnis der Ausführung der jeweiligen Programmzeile: Sehr schön, informativ, aber auch ein wenig mühsam jede Zeile mit dem entsprechenden Ergebnis zu versehen.

Aber siehe da, es gibt das eigenclass - xmpfilter: automagic Test::Unit assertions/RSpec expectations and code annotations Tool. Aus solchem Ruby Code:
a = 1
10.times do |i|
i ** 2 # =>
a += i
end
A = 1
A = 1
wird nach Aufruf von xmpfilter.rb -a example_02.rb
folgender wunderbarer Output:
a = 1
10.times do |i|
i ** 2 # => 0, 1, 4, 9, 16, 25, 36, 49, 64, 81
a += i
end
A = 1
A = 1 # !> already initialized constant A
D.h. nach "# =>" wurden die Ergebnisse der Ausführung von "i ** 2" beim Schleifendurchlauf eingefügt, und die Zeile, die eine Warnung hervorruft, wurde direkt mit der Warnung als Kommentar vermerkt.

Ich hatte dieses Tool schon mal vor längerem entdeckt, aber auch wieder vergessen, weil es nicht unter Windows funktionierte, und nun: Es geht einfach! Wunderbar!! Nach all den Jahren!!!

No comments: