On 11/6/07, yermej <yermej / gmail.com> wrote: > On Nov 6, 6:41 pm, Joshua Muheim <fo... / josh.ch> wrote: > > Hi all > > > > irb(main):001:0> "" || "asdf" > > => "" > > irb(main):002:0> nil || "asdf" > > => "asdf" > > irb(main):003:0> > > > > I'd like the first one to also return "asdf". So is there an operator > > that fits my needs? :-) > > "" isn't false so || and or won't work. You'll have to code it > differently. E.g.: > > a = "a string" > a || (a.empty? ? "asdf" : a) This doesn't work for me. The previous one doesn't either. This one does (I'm sure someone could easily clean this up, I feel lazy though)... [nil, "", "something"].each do |i| puts( (item ||= "").empty? ? "asdf" : item ) end That results in... asdf asdf something Todd