Zayd Abdullah wrote: > Thanks Lasitha that worked perfect. I'm slowly getting more comfortable with > just the basic :) > I'm still getting that same error when compiling my code. I know its right > there in front of my face I just can't put my finger on it > > Kindest Regards > Zayd > > > class Bottles > def initialize(bottles_of_beer, bottle_word, one_word) > @bottles_of_beer = bottles_of_beer > @bottle_word = bottle_word > @one_word = one_word > > end > All the code past this point is in a very odd place. You seem to be missing the rest of your Bottles class definition. Try adding another 'end' here. > > my_bottles = Bottles.new(99,'Bottles','Bottle') > > > while my_bottles.bottles_of_beer >= 2 The error is right here because you never defined a bottles_of_beer method for Bottles. In fact, you are still inside the Bottles class definition, which I think you just forgot to close after the initialize method. You cannot access instance variables (@...) from outside of an object. You have to define attribute setters and readers to provide the access. Try using: attr_accessor :bottles_of_beer attr_reader :bottle_word, :one_word These typically go right before your initialize method.You can read about them here: http://ruby-doc.org/docs/ProgrammingRuby/html/tut_classes.html > puts "#{my_bottles.bottles_of_beer} #{my_bottles.bottle_word} of > beer on the wall" > puts "#{my_bottles.bottles_of_beer} #{my_bottles.bottle_word} of > beer" > puts "Take one down, pass it around" > > my_bottles.bottles_of_beer -= 1 > > if my_bottles.bottles_of_beer == 1 > puts "#{my_bottles.bottles_of_beer} bottle of beer on the wall" > > else > puts "#{my.bottles.bottles_of_beer} #{my_bottles.bottle_word}of > beer on the wall" > Typo above, should be my_bottles not my.bottles > end > > > if my_bottles.bottles_of_beer == 1 > puts "#{my_bottles.bottles_of_beer} #{my_bottles.one_word} of > beer on the wall" > puts "#{my_bottles.bottles_of_beer} #{my_bottles.one_word} of > beer" > puts "Take one down, pass it around" > > my_bottles.bottles_of_beer -= 1 > > puts "No more #{my_bottles.bottle_word} of beer on the wall" > > end > None of this code should be in your class...end section. -Justin