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.
wist ik niet. Cool!