From: Michael Fellinger Date: 2010-03-06T05:14:59+09:00 Subject: Re: Conditional keys in hash - out of the box? On Sat, Mar 6, 2010 at 4:25 AM, Sven S. wrote: > Hi > > Cumbersome title, here's what I'd like to do both elegantly and without > monkey patching Hash: > > Say, I need to pass a hash to a method: > > mymethod :this => 'green' > > Now I'd like to include a second hash member only if a condition is met: > > mymethod :this => 'green, :that => ('blue' if condition) > > This of course leaves ":that => nil" in the hash if the condition is not > met - which is no good, the key should just not be present at all. I > could delete_if after that, but isn't there a more elegant way? p({this: 'green'}.merge(1 == 2 ? {that: 'blue'} : {})) {:this=>"green"} p({this: 'green'}.merge(1 == 1 ? {that: 'blue'} : {})) {:this=>"green", :that=>"blue"} > Thanks for your ideas! > -- > Posted via http://www.ruby-forum.com/. > > -- Michael Fellinger CTO, The Rubyists, LLC