Skip to content

Instantly share code, notes, and snippets.

@aespaldi
Created June 11, 2013 19:50
Show Gist options
  • Save aespaldi/5760018 to your computer and use it in GitHub Desktop.
Save aespaldi/5760018 to your computer and use it in GitHub Desktop.
 @@WHEELS = 4
 def initialize(args)
   @color = args[:color]
   @wheels = @@WHEELS
 end
 def drive
   @status = :driving
 end
 def brake
   @status = :stopped    
 end
 def needs_gas?
   return [true,true,false].sample
 end
 
end
class Bus
 attr_reader :passengers
 def initialize(args)
   @color = args[:color]
   @wheels = args[:wheels]
   @num_seats = args[:num_seats]
   @fare = args[:fare]
   @passengers=[]
 end
 def drive
   return self.brake if stop_requested?
   @status = :driving
 end
 def admit_passenger(passenger,money)
   @passengers << passenger if money > @fare
 end
 def brake
   @status = :stopped
 end 
 def stop_requested?
   return [true,false].sample
 end
 def needs_gas?
   return [true,true,true,false].sample
 end

 
end


class Motorbike
 @@WHEELS = 2
 def initialize(args)
   @color = args[:color]
   @wheels = @@WHEELS

 end

 def drive
   @status = :driving
   @speed = :fast
 end

 def brake
   @status = :stopped 
 end
 def needs_gas?
   return [true,false,false,false].sample
 end 
 def weave_through_traffic
   @status = :driving_like_a_crazy_person
 end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment