From: Daniel Carrera Date: 2003-02-19T10:00:26+09:00 Subject: Re: help: append error on Array push I can't see anything wrong. Does this work? list.append(Song.new('title1', 'artist1', 1)) It would help me if you wrote a sample program that caused the error and sent it to me. I can then try to figure out what's going on. On Wed, Feb 19, 2003 at 09:31:21AM +0900, reavey wrote: > hi > I get an error > "NameError: undefined method 'push' for nil from append" > as I'm working thru the Prag prog ruby book. > """We'll start our class with a basic initialize method, which creates > the Array we'll use to hold our songs and store a reference to it in the > instance variable @songs > > class SongList > def initialize > @songs = Array.new > end > end > > The SongList#append method adds the given song to the end of teh @songs > array. It also > returns self, a reference to the current SongList object. This is a > useful convention, as it allows us to chain together multiple calls to > appand... > > class Songlist > def append(aSong) > @songs.push(aSong) > self > end > end > > list = SongList.new > list. > append(Song.new('title1', 'artist1', 1)). > append(Song.new('title2', 'artist2', 2)) """ > > reports the error. > I've worked through all the example code and have been very impressed. > It is > very instructive and is the only book I've seen that tries to teach > using a real model. > > I'm writting all the code in irb. Also, a test like > cSong = Song.new('title', 'artist', 245) > works fine. > > > > -- Daniel Carrera Graduate Teaching Assistant. Math Dept. University of Maryland. (301) 405-5137