On 2 Aug 2007, at 15:18, dblack / rubypal.com wrote:

> Hi --
>
> On Thu, 2 Aug 2007, Gabriel Dragffy wrote:
>
>> Hi all
>>
>> I just started with Ruby (yesterday actually). Have been reading  
>> the amazing Poignant Guide, and also a couple of other very basic  
>> tutorials. From one of these I wrote an example class, now my  
>> knowledge of Ruby has expanded a little I tried to rewrite the  
>> class to be even better.  I thought that the method "setme" would  
>> allow the @numberShowing to be changed to any number between 1 and  
>> 6... but obviously not...?
>>
>>
>> #/usr/bin/env ruby
>>
>> class Die
>> def initialize
>>   roll
>> end
>>
>> def roll
>>   @numberShowing = 1 + rand(6)
>> end
>>  def showing
>>   @numberShowing
>> end
>>
>> def setme value
>>      if value === 1..6
>>     @numberShowing = value
>>   else
>>     puts "A dice has only six sides!"
>>   end
>> end
>>
>> end
>
> You've got the === backwards; you want:
>
>   if (1..6) === value
>
> or
>
>   if (1..6).include?(value)


and I just discovered yet another way of getting to the same place!!
     if value.between?(1, 6)

IMO the prettiest code to read, but which one *should* be used, or is  
it all OK so long as it works?

Regards

Gabe