diff --git a/block_review.rb b/block_review.rb index fcdefc7..cbcfe6a 100644 --- a/block_review.rb +++ b/block_review.rb @@ -2,6 +2,21 @@ require 'bundler/setup' require_relative 'db/setup' -Dir.glob("./**/*.rb").each {|f| require f} +Dir.glob("./models/*").each {|f| require f} + +auto1 = Auto.new(color: 'Blue', make: 'Honda', model: "Accord", year: '2007') #self +motor1 = Motor.new(color: 'Red', make: 'Yamaha', model: "Z9", year: '2012') +puts +puts "A car has #{Auto.wheels} wheels" +puts "A motorcycle has #{Motor.wheels} wheels" +puts +puts "Auto1: #{auto1.to_s}" +puts "Motor1: #{motor1.to_s}" +puts +puts 'All Vehicles:' +puts Vehicle.vehicles +puts +puts 'Best car ever!!!' +puts Vehicle.favorite_car + -puts "Serenity now!" diff --git a/config/database.yml.sample b/config/database.yml.sample deleted file mode 100644 index 2e5c2a9..0000000 --- a/config/database.yml.sample +++ /dev/null @@ -1,6 +0,0 @@ -host: 'localhost' -adapter: 'postgresql' -database: 'episode5' -username: XXXXXXX -encoding: 'utf8' -pool: 5 diff --git a/models/auto.rb b/models/auto.rb new file mode 100644 index 0000000..71ac2ee --- /dev/null +++ b/models/auto.rb @@ -0,0 +1,8 @@ +require_relative "Vehicle" + +class Auto < Vehicle + + def self.wheels + @@wheels = 4 + end +end diff --git a/models/motor.rb b/models/motor.rb new file mode 100644 index 0000000..192ac3b --- /dev/null +++ b/models/motor.rb @@ -0,0 +1,8 @@ +require_relative "Vehicle" + +class Motor < Vehicle + + def self.wheels + @@wheels = 2 + end +end diff --git a/models/vehicle.rb b/models/vehicle.rb new file mode 100644 index 0000000..8e3b407 --- /dev/null +++ b/models/vehicle.rb @@ -0,0 +1,29 @@ +class Vehicle + +@@vehicle = [] #can be used anywhere. + + attr_reader :color, :make, :model, :year, :model + def initialize(hash={}) + @@vehicle << self + @color = hash.fetch(:color) + @make = hash.fetch(:make) + @model = hash.fetch(:model) + @year = hash.fetch(:year) + end + + def self.wheels + @wheels = nil + end + + def self.vehicles + @@vehicle + end + + def self.favorite_car + @@vehicle.select { |i| i.color == 'Blue' && i.model == 'Accord'} #select returns the ary that's true to the conditon + end + + def to_s + "#{color}, #{make}, #{model}, #{year}" + end +end diff --git a/spec/auto_spec.rb b/spec/auto_spec.rb new file mode 100644 index 0000000..3346812 --- /dev/null +++ b/spec/auto_spec.rb @@ -0,0 +1,9 @@ + +require_relative "spec_helper" + +describe Auto do + it "should have four wheels" do + Auto.wheels.should eq(4) + end + +end diff --git a/spec/motor_spec b/spec/motor_spec new file mode 100644 index 0000000..ed449aa --- /dev/null +++ b/spec/motor_spec @@ -0,0 +1,9 @@ + +require_relative "spec_helper" + +describe Motor do + it "should have four wheels" do + Motor.wheels.should eq(2) + end + +end diff --git a/spec/spec_helper b/spec/spec_helper new file mode 100644 index 0000000..34eadb4 --- /dev/null +++ b/spec/spec_helper @@ -0,0 +1,6 @@ +require "rspec" +require 'bundler/setup' +require_relative '../db/setup' +require_relative "../models/vehicle" +require_relative "../models/auto" +require_relative "../models/motor" diff --git a/spec/vehicle_spec.rb b/spec/vehicle_spec.rb new file mode 100644 index 0000000..d2ea4f7 --- /dev/null +++ b/spec/vehicle_spec.rb @@ -0,0 +1,24 @@ +require_relative "spec_helper" + +describe Vehicle do + + it "should start with no wheels" do + Vehicle.wheels.should be_nil + end + + it "should take input to describe the automobile" do + auto = Vehicle.new(color: "black", make: "Honda", model: "Accord", year: "2007") + auto.color.should eq("black") + auto.make.should eq("Honda") + auto.model.should eq("Accord") + auto.year.should eq("2007") + end + + it "should be able to filter the vehicles to only blue honda accords" do + auto1 = Vehicle.new(color: "Blue", make: "Honda", model: "Accord", year: "2007") + auto2 = Vehicle.new(color: "Blue", make: "Honda", model: "Accord", year: "2009") + auto3 = Vehicle.new(color: "Orange", make: "Yamaha", model: "Z7.0", year: "2019") + results = Vehicle.favorite_car + results.count.should eq(2) + end +ends