From: Joel VanderWerf Date: 2004-05-12T02:29:43+09:00 Subject: Re: Proposal: Object#send(nil) -> self Gavin Sinclair wrote: > A quick one. I see some sense in Object#send accepting 'nil' as the > message. You send no message, you get the plain object. Does anyone > agree? > > #send is clearly useful when you want to vary the message sent to an > object based on some condition. Sometimes the default condition is to > send no message, but that can't be coded as elegantly. > > For example: > > date_colour_msg = > case Date.today - date > when 0 then :red > when 1 then :yellow > when 2..5 then :green > else > nil # Default: whatever the normal colour is. > end > > date_str = date.to_s.send(date_colour_msg) What about something like this (untested)? class Object def myself self end end date_colour_msg = case Date.today - date when 0 then :red when 1 then :yellow when 2..5 then :green else :myself # Default: whatever the normal colour is. end date_str = date.to_s.send(date_colour_msg)