Added Trip.rb and had inititial code
Added TripPreparer and Driver. Code has become severely intertwined and dangerous
Refactored trip.rb to make Duck Types and clean up dependencies
Added inheritance.rb to showcase inheritance. Initial code works until something changes, ie. Adding mountain bikes into the fray.
Added Mountain Bike as a style, started code down a dangerous path due to if statment in spares method
Refactored code to add in inheritance. Bicycle is now the superclass and RoadBike and MountrainBike are subclasses. Look to Bicycle to get sizing information.
Bicycle now provides structure for it's subclasses
Added error reporting that tells other devs what the issue actually is.
Added recumbant bike (forgot to message super in init) and added spares method to super. Will need to refactor super
Removed initialize from subclasses and shifted initialize to super. Post_initialize handles additional params.
Added local_spares method which merges into super spares. Frees subclass from super. Sub merely expects local_spares will be called at some point by someone.
Added schedule.rb to check basic schedule requirements.
Added module for schedulable?
added vehicle and mechanic to schedule.rb. Composition.rb is now identical to inheritance.rb. Prepared for refactoring from inheritance to composition.
Refactored Bicycle class for composition. Now is composed of parts.
Added Parts class and renamed classes to accompany parts composition.
added parts factory. My understanding is starting to get fuzzy here.
Added config arrays, 2-dimensional arrays that parts factory grabs to make the part list.
Refactored out Parts class and added OpenStruct into PartsFactory class
Required forwardable on Parts class. Parts class now delegates size and each to its @parts array and includes Enumerable to get common traversal and searching methods.