Empathie R B

Geplaatst door Michiel de Mare do, 04 dec 2008 02:06:00 GMT

Heb je je wel eens afgevraagd hoe het zou zijn om de wereld te ervaren als een ander? Hoe het zou zijn om George Bush te zijn. Of een gehate dictator. Hoe de wereld eruit ziet door de ogen van je geliefde Fido. Of door die van Blub, de goudvis van je neefje. Hoe zou een vleermuis het leven ervaren? Hoe een HashWithIndifferentAccess?

Dankzijn irb is het nu eindelijk mogelijk om een antwoord op die vragen te krijgen. Als je in een irb-sessie irb object invoert, dan start je een nieuwe subsessie waarbij jij self dat nieuwe object wordt. Je bekijkt de wereld dus door de ogen van dat object (net als instance_eval, alleen krijg je nu meteen feedback per instructie. Overigens is instance_eval een vreselijke saaie naam – ik stel voor mind_control of snatch_soul).

>> modern = Tag.find_by_name 'modern'
=> #<Tag id: 1070167864, name: "modern">
>> irb modern
>> name
=> "modern" 
>> photos.count
=> 483
>> irb photos.first
>> tags.map &:name
=> ["baden", "badkamer", "eenvoudig", "grijs"]
>> irb brand
>> collections.map &:name
=> ["glassbath", "ifiumipo"]
>> jobs
=> #0->irb on main (#<Thread:0x341ac>: stop)
#1->irb#1 on #<Tag:0x20440> (#<Thread:0x1f8>: stop)
#2->irb#2 on #<Photo:0x1fcec> (#<Thread:0x1f8>: stop)
#3->irb#3 on #<Brand:0x1f9b0> (#<Thread:0x1f0>: running)
>> fg 2
=> #<IRB::Irb: @context=#<IRB::Context:0x1fcc820>>
>> large?
=> false
>> irb_exit

Zoals je ziet kun je verschillende subsessies open hebben staan. Met jobs krijg je een overzicht, met fg schakel je over naar een andere sessie, en met irb_exit sluit je de huidige sessie af.

Met alleen irb maak je een schone sessie aan, waarin je kunt experimenteren zonder je huidige bindings te veranderen.

Geplaatst in  | 1 reactie

Reacties

  1. jeroen.houben@lbi.lostboys.nl zei ongeveer 7 uur later:

    wist ik niet. Cool!

(Laat url/e-mail achter »)

   Voorvertoning