Jawohl :)
class Feeling def ~ p :drunk end def ! p :alert end def -@ p :bad end def +@ p :good end end feeling = Feeling.new -feeling # => :bad +feeling # => :good !feeling # => :alert ~feeling # => :drunk # >> :bad # >> :good # >> :alert # >> :drunk
Der Fachmann/Die Fachmassaigiraffe sieht hier mehrere Dinge:
p gibt seine Argumente nicht nur aus, sondern auch zurück (statt nil.)matz sagt:
For good news, I have no big change left.
Kommentar schreiben
Kommentare
Ich hab gerade auf Ruby-Core dazu noch mal einen Link gepackt, weil diesbezüglich Jim Weirich auf der RubyConf 2007 in seinem Vortrag über Advanced Ruby Class Design (http://rubyconf2007.confreaks.com/d1t1p2_advanced_ruby_class_design.html) so ziemlich am Ende auf das Thema gekommen ist. Ich finde, dass der Vortrag von ihm allgemein sehenswert ist. Man kann ihn sich von der Seite auch herunterladen und offline ansehen. Ist wohl auch empfehlenswert, da er etwas über eine Stunde dauert.
Die ganzen RubyConf2007 Videos sind überhaupt sehr interessant. Ryan Davis' "Hurting Code for Fun and Profit" ist leider nicht ganz oben, aber abgesehen davon fand ich Marcel Molina Jr.'s "What makes Code beautiful?" und Eric Hodel's "Maximizing Productivity" sehr interessant (mal von matz' Keynote abgesehen). OS X User sollten sich auch "Mac OS X loves Ruby" anschauen, Laurent Sansonetti demonstriert da unter anderem dtrace, RubyCocoa und RubyInject. Sehr beeindruckend :)
Ryan Davis' "Hurting Code for Fun and Profit" - leider ist der als Video nicht vorhanden - oder kennst Du einen Platz im Netz wo der steht?
Sollte hier verfügbar sein: http://rubyconf2007.confreaks.com/d1t2p3_hurting_code.html Aber wie gesagt, es sind nur die ersten 10 Minuten vorhanden, danach gibts leider nix mehr, weil bei der Aufnahme was schiefgegangen ist.
Ich hab gerade festgestellt, dass in den letzten Tagen offensichtlich noch weitere Vorträge reingestellt wurden. Al ich mir die Filme runtergeladen habe, waren diverse Links noch nicht vorhanden.
Ich hab eben mal ein bisschen mit all den Möglichkeiten rumgespielt - Auweia! - Da kann man sich aber so richtig selber reinlegen. Man nehme eine Klasse, include 'Comparable', definiere '<=>' und danach die '!=' und '==' so, dass sie sich widersprechen... - so richtig blicke ich noch nicht durch, was ich da gefummelt habe...