I tried to create an addition to Enumerable called choose_randomly that picks a random element from the Enumerable object. However when I define it and execute the code rand complains about the wrong number of arguments. Below is a capture of the ./script/console session.
farrel@nicodemus ~/Work/GreenGreen/Code/green_green_client_application $ ./script/console Loading development environment (Rails 2.1.2)
[1,2,3].choose_randomly
NoMethodError: undefined method `choose_randomly' for [1, 2, 3]:Array from (irb):1
module Enumerable def choose_randomly array_of_self = Array( self ) index = rand( array_of_self.size ) array_of_self[ index ] end end
=> nil
[1,2,3].choose_randomly
ArgumentError: wrong number of arguments (1 for 0) from (irb):5:in `rand' from (irb):5:in `choose_randomly' from (irb):9
[1,2,3][ rand( [1,2,3].size )]
=> 1
As you can see if I execute the code myself it seems to work. If I copy that same code into irb it works perfectly.
Any ideas?
Farrel