<http://www.javaworld.com/javaworld/jw-06-2001/jw-0608-java101.html> has 
a discussion of composition versus inheritance which I'm trying to apply 
to ruby.  For discussions sake, I'll use the classes discussed in the 
above linke:  Car, Vehicle and Engine.  Car inherits from Vehicle, of 
course.

Let's say that Engine is something like:




class Engine

	attr_accessor :type


	def initialize ()
		@type = "generic engine"
	end

	def vroom ()
		puts "vroooooom"
	end
end


Vehicle would be something like:


class Vehicle

	attr_accessor :engine

	def initialize ()
		@engine = Engine.new
	end
end


class Car < Vehicle

	def initialize ()
		super()
	end
end


then from IRB for instance:

vw_bug = Car.new



then can you make the vw_bug go "vroooooom" and so forth?  What would be 
the usual way to do this in ruby?  When a car is instantiated, should an 
engine object get passed to the initializer method?



thanks,

Thufir