From 27e86c6d22ea4632dd9e2533c1608b904ba1778d Mon Sep 17 00:00:00 2001 From: Elle Yoko Suzuki Date: Wed, 23 Jan 2013 07:49:47 -0800 Subject: [PATCH 1/2] auto,vehicle,moto class defs --- models/auto.rb | 12 ++++++++++++ models/moto.rb | 10 ++++++++++ models/vehicle.rb | 8 ++++++++ spec/auto_spec.rb | 37 +++++++++++++++++++++++++++++++++++++ spec/moto_spec.rb | 17 +++++++++++++++++ spec/vehicle_spec.rb | 4 ++++ 6 files changed, 88 insertions(+) create mode 100644 models/auto.rb create mode 100644 models/moto.rb create mode 100644 models/vehicle.rb create mode 100644 spec/auto_spec.rb create mode 100644 spec/moto_spec.rb create mode 100644 spec/vehicle_spec.rb diff --git a/models/auto.rb b/models/auto.rb new file mode 100644 index 0000000..9e94138 --- /dev/null +++ b/models/auto.rb @@ -0,0 +1,12 @@ +require_relative './vehicle' + +class Auto < Vehicle + attr_accessor :color, :make, :model, :year + + def initialize(options = {}) + @color = options.fetch(:color) + @make = options.fetch(:make) + @model = options.fetch(:model) + @year = options.fetch(:year) + end +end \ No newline at end of file diff --git a/models/moto.rb b/models/moto.rb new file mode 100644 index 0000000..23d7e37 --- /dev/null +++ b/models/moto.rb @@ -0,0 +1,10 @@ +require_relative './vehicle' + +class Moto < Vehicle + def initialize + end + + def self.wheels + 2 + end +end \ No newline at end of file diff --git a/models/vehicle.rb b/models/vehicle.rb new file mode 100644 index 0000000..d896270 --- /dev/null +++ b/models/vehicle.rb @@ -0,0 +1,8 @@ +class Vehicle + def initialize + end + + def self.wheels + 4 + end +end \ No newline at end of file diff --git a/spec/auto_spec.rb b/spec/auto_spec.rb new file mode 100644 index 0000000..3c5dc95 --- /dev/null +++ b/spec/auto_spec.rb @@ -0,0 +1,37 @@ +require_relative '../models/auto' + +describe Auto do + before(:each) do + @auto = Auto.new(:color => 'purple', :make => 'VW', :model => 'GTI', :year => 2011) + end + + it "should return number of wheels" do + Auto.wheels.should eq(4) + end + + it 'should have color attribute' do + @auto.should respond_to(:color) + end + + it 'should have make attribute' do + @auto.should respond_to(:make) + end + + it 'should have model attribute' do + @auto.should respond_to(:model) + end + + it 'should have year attribute' do + @auto.should respond_to(:year) + end + + it 'should accept a hash of info to update variables' do + auto = Auto.new(options = {:color => 'black', :make => 'Volkswagen', :model => 'Golf', :year => 2012}) + auto.make.should eq('Volkswagen') + end + + it 'should inherit from vehicle' do + @auto.is_a?(Vehicle).should be_true + end + +end \ No newline at end of file diff --git a/spec/moto_spec.rb b/spec/moto_spec.rb new file mode 100644 index 0000000..97096f2 --- /dev/null +++ b/spec/moto_spec.rb @@ -0,0 +1,17 @@ +require_relative '../models/moto' + +describe Moto do + + before(:each) do + @moto = Moto.new + end + + it 'should inherit from Vehicle' do + @moto.is_a?(Vehicle).should be_true + end + + it 'should have 2 tires' do + Moto.wheels.should eq(2) + end + +end \ No newline at end of file diff --git a/spec/vehicle_spec.rb b/spec/vehicle_spec.rb new file mode 100644 index 0000000..10828de --- /dev/null +++ b/spec/vehicle_spec.rb @@ -0,0 +1,4 @@ +require_relative '../models/vehicle' + +describe Vehicle do +end From 4f10f65d5fde9b67161c76bc5e15f0f1a2744878 Mon Sep 17 00:00:00 2001 From: Elle Yoko Suzuki Date: Wed, 23 Jan 2013 21:51:54 -0800 Subject: [PATCH 2/2] cleaned up auto,vehicle,moto class defs --- models/auto.rb | 8 -------- models/moto.rb | 3 --- models/vehicle.rb | 10 ++++++++-- spec/auto_spec.rb | 2 +- 4 files changed, 9 insertions(+), 14 deletions(-) diff --git a/models/auto.rb b/models/auto.rb index 9e94138..45d01ed 100644 --- a/models/auto.rb +++ b/models/auto.rb @@ -1,12 +1,4 @@ require_relative './vehicle' class Auto < Vehicle - attr_accessor :color, :make, :model, :year - - def initialize(options = {}) - @color = options.fetch(:color) - @make = options.fetch(:make) - @model = options.fetch(:model) - @year = options.fetch(:year) - end end \ No newline at end of file diff --git a/models/moto.rb b/models/moto.rb index 23d7e37..7455fb5 100644 --- a/models/moto.rb +++ b/models/moto.rb @@ -1,9 +1,6 @@ require_relative './vehicle' class Moto < Vehicle - def initialize - end - def self.wheels 2 end diff --git a/models/vehicle.rb b/models/vehicle.rb index d896270..8f55786 100644 --- a/models/vehicle.rb +++ b/models/vehicle.rb @@ -1,6 +1,12 @@ class Vehicle - def initialize - end + attr_accessor :color, :make, :model, :year + + def initialize(options = {color: nil, make: nil, model: nil, year: nil}) + @color = options.fetch(:color) + @make = options.fetch(:make) + @model = options.fetch(:model) + @year = options.fetch(:year) + end def self.wheels 4 diff --git a/spec/auto_spec.rb b/spec/auto_spec.rb index 3c5dc95..3c817fb 100644 --- a/spec/auto_spec.rb +++ b/spec/auto_spec.rb @@ -2,7 +2,7 @@ describe Auto do before(:each) do - @auto = Auto.new(:color => 'purple', :make => 'VW', :model => 'GTI', :year => 2011) + @auto = Auto.new end it "should return number of wheels" do