From: Gabriel Dragffy Date: 2007-08-05T01:38:24+09:00 Subject: Re: Beginner's tutorial and poor attempt at classes 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