From ee08e81c98b05b3da0567dd0119bda3a3753bcaa Mon Sep 17 00:00:00 2001 From: Elle Yoko Suzuki Date: Wed, 23 Jan 2013 23:00:34 -0800 Subject: [PATCH] specified own route; can set start city --- .gitignore | 2 ++ lib/sales_person.rb | 9 +++++++++ salesperson.rb | 23 ++++++++++++++++++++++- spec/place_spec.rb | 4 ++-- spec/sales_person_spec.rb | 6 ++++++ 5 files changed, 41 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 61a293a..8836ce0 100644 --- a/.gitignore +++ b/.gitignore @@ -21,3 +21,5 @@ doc/ config/database.yml TODO + +.idea diff --git a/lib/sales_person.rb b/lib/sales_person.rb index d0c2890..41be86e 100644 --- a/lib/sales_person.rb +++ b/lib/sales_person.rb @@ -12,4 +12,13 @@ def schedule_city(city) def route CalculatesRoute.calculate(cities) end + + ## ex. salesperson.start_city(place_obj) + def start_city(city) + if @cities.include?(city) + @cities.delete(city) + end + + @cities.insert(0, city) + end end diff --git a/salesperson.rb b/salesperson.rb index 9cafbd7..8a00257 100644 --- a/salesperson.rb +++ b/salesperson.rb @@ -1,6 +1,6 @@ Dir["./lib/*.rb"].each {|file| require file } - +=begin phil = SalesPerson.new phil.schedule_city(Place.build("Dallas, TX")) phil.schedule_city(Place.build("El Paso, TX")) @@ -8,3 +8,24 @@ phil.schedule_city(Place.build("Lubbock, TX")) puts phil.route +=end + +mochi = SalesPerson.new + +benicia = Place.build('Benicia, CA') +berkeley = Place.build('Berkeley, CA') +eville = Place.build('Emeryville, CA') +sf = Place.build('San Francisco, CA') +sm = Place.build('San Mateo, CA') +wc = Place.build('Walnut Creek, CA') + +cities = [berkeley, wc, sf, sm, benicia, eville] + +cities.each { |city| + mochi.schedule_city(city) +} + +mochi.start_city(benicia) # city that was already scheduled +#mochi.start_city(Place.build('Pleasant Hill, CA')) # a new city not already scheduled +#mochi.start_city(Place.build('Mill Valley')) +puts mochi.route diff --git a/spec/place_spec.rb b/spec/place_spec.rb index 7d48250..8854703 100644 --- a/spec/place_spec.rb +++ b/spec/place_spec.rb @@ -6,7 +6,7 @@ it "should have a name" do subject.should respond_to(:name) end - it "should have a coordinates" do + it "should have coordinates" do subject.coordinates = [29,-95] subject.coordinates.should eq([29,-95]) end @@ -35,7 +35,7 @@ end describe "#to_coordinates" do - it "should delegate to_coorinates to coordinates" do + it "should delegate to_coordinates to coordinates" do subject.stub(:coordinates) { [5,5]} subject.to_coordinates.should eq ([5,5]) end diff --git a/spec/sales_person_spec.rb b/spec/sales_person_spec.rb index 08a6ce9..eace041 100644 --- a/spec/sales_person_spec.rb +++ b/spec/sales_person_spec.rb @@ -27,4 +27,10 @@ CalculatesRoute.stub(:calculate) { route_stub } subject.route.should eq(route_stub) end + + it 'should let you specify starting point' do + city = stub + subject.start_city(city) + subject.cities.first.should eq(city) + end end