Ryan Leavengood
12/31/2005 8:48:00 PM
Hi Allen,
You need to define an initialize method which can take the arguments
you are passing to "new." For example:
class Song
def initialize(name, artist, duration)
@name, @artist, @duration = name, artist, duration
end
end
I'm not sure if that is an oversight in the book, or if maybe the
initialize was introduced earlier and you forgot to include it.
Also you will need a "puts" before song.to_s if you expect to see any output.
Ryan
On 12/31/05, Allen Dardenelle <junk@dardenelle.com> wrote:
> HI all, this is my first post in the forum! I got the Ruby and Rails
> books for Christmas and I am having a lot of fun with them. But I am
> stuck on page 27 in Programming Ruby. I've gotten the code from the web
> site and it's not working.
>
> Here is the code:
>
> !#/usr/local/bin/ruby -w
>
> class Song
> def to_s
> "Song: #@name--#@artist (#@duration)"
> end
> end
> song = Song.new("Bicylops", "Fleck", 260)
> song.to_s
>
> Here is my error:
>
> ruby.rb:8:in `initialize': wrong number of arguments (3 for 0)
> (ArgumentError)
> from ruby.rb:8:in `new'
> from ruby.rb:8