From: "Robert Najlis" <rnajlis / cs.indiana.edu>
>[...]
>
> first I created a class which had two arrays
> 
> class Adapt
> 
>  attr_reader :queryNums, :timesUsed
>  attr_writer :queryNums, :timesUsed
> ...
>  intiialize the arrays (Array.new)
> ...
> end
> 
> then I ceated another class which had in it an array (@adaptions) to which
> I added instances of the class Adapt.  I pushed the number zero onto the
> times Used array
> 
> @adaptations[@lastQueryNum].timesUsed.push(0)
> 
> then I tried to increment the number in the timesUsed Array -
> 
> I did it this way,
> 
> @adaptations[@lastQueryNum].timesUsed[count]
> ="#{@adaptations[@lastQueryNum].timesUsed[count]}".to_i + 1
> 
> perhaps I could have skipped the casting it to string, as the type was
> already string for @adaptations[@lastQueryNum].timesUsed[count].  I casted
> it anyway just to get on with things and not have to worry about it.

The beautiful thing about languages like ruby, (or Smalltalk, or Perl, etc.)
is that often the most expedient way to "just get on with things and not
have to worry about it" is to simply, interactively, Ask The Code.

irb(main):004:0> class Adapt
irb(main):005:1> attr_accessor :timesUsed
irb(main):006:1> def initialize
irb(main):007:2> @timesUsed = [ ]
irb(main):008:2> end
irb(main):009:1> end
nil
irb(main):010:0> adaptations = [ Adapt.new ]
[#<Adapt:0xa09c090 @timesUsed=[]>]
irb(main):011:0> lastQueryNum = 0
0
irb(main):012:0> adaptations[lastQueryNum].timesUsed.push(0)
[0]
irb(main):013:0> count = 0
0
irb(main):014:0> adaptations[lastQueryNum].timesUsed[count] += 1
1
irb(main):015:0> adaptations[lastQueryNum].timesUsed[count].class
Fixnum
irb(main):016:0>

We could, of course, have taken a more direct approach to answering
the question, "what happens when we push a number onto an array and
try to increment it?"  (If that truly was the question, soorry if
I have misunderstood :)  For instance:

irb(main):016:0> a = [ ]
[]
irb(main):017:0> a.push(0)
[0]
irb(main):018:0> a[0] += 1
1
irb(main):019:0> a[0].class
Fixnum
irb(main):020:0>

But the former illustrates, perhaps, well, how cool "interactive
ruby" can be, I guess.  I mean, defining classes from the keyboard
and testing them out?  Pretty cool, no?  =)


Regards,

Bill Kelly  (Ruby newbie, interactive language fanatic)