>>
>> But then you get some larger ones:
>>
>>   set.map { |e|
>>     if something
>>       e.x
>>     else
>>       e.y
>>     end
>>   }
>
> [Robert:]
> Know your ternary operator: :-)
> set.map { |e| something ? e.x : e.y }


I know my ternary operator, but:
  - in my code snippet, "something", "e.x", and "e.y" were placeholders
    for something far bigger than you or I could imagine
  - sometimes there is multi-part processing do be done before arriving
    the "return value" for the block

Gavin