From: Robert Klemme Date: 2010-01-18T18:27:20+09:00 Subject: Re: what does this mean? 2010/1/18 Ammar Ali : > Ruby Newbee wrote: >> >> For this statement: >> >> @speaks_english ||= @name.size > 6 >> >> does it mean something like below? >> >> if @name.size > 6 >>    @speaks_english ||= @name.size >> end >> >> >> Even if I guess that correctly, I'm still surprised why ruby can write >> like that way. > > More like: > > if @speaks_english.nil? or @speaks_english == false >  if @name > 6 >   @speaks_english = true >  else >   @speaks_english = false >  end > end I'd shorten that to unless @speaks_english @speaks_english = @name.size > 6 end "@name.size > 6" is a boolean expression and it does return "true" or "false" already. Note that in this case this would probably a better solution because it does not reevaluate if @name.size <= 6: @speaks_english = @name.size > 6 if @speaks_english.nil? Kind regards robert -- remember.guy do |as, often| as.you_can - without end http://blog.rubybestpractices.com/