From 3f8f811a6a5051015f6cc9fb545ee5ddbe632cc8 Mon Sep 17 00:00:00 2001 From: PDaily Date: Fri, 25 Apr 2014 22:35:08 +0000 Subject: [PATCH 1/2] Added messageboard functionality --- train.rb | 28 ++++++++++++++++++++++++---- train_spec.rb | 33 +++++++++++++++++++++++++-------- 2 files changed, 49 insertions(+), 12 deletions(-) diff --git a/train.rb b/train.rb index bc6dbcb..ce20ff3 100644 --- a/train.rb +++ b/train.rb @@ -1,15 +1,35 @@ class Conductor - attr_reader :engineer + attr_reader :engineer + attr_reader :message_board - def initialize(engineer) - @engineer = engineer + def initialize(message_board, engineer) + @engineer = engineer + @message_board = message_board end def see_danger_coming! - engineer.slow_down! + message_board.message(engineer.slow_down!) end end class Engineer + + attr_reader :message_board + + def initialize(message_board) + @message_board = message_board + end + + def confirm! + message_board.confirm_slow_down! + end +end + +class MessageBoard + + def message(msg) + msg + end + end \ No newline at end of file diff --git a/train_spec.rb b/train_spec.rb index de4cff5..efcefd9 100644 --- a/train_spec.rb +++ b/train_spec.rb @@ -2,12 +2,29 @@ require './train' describe Conductor do - let(:engineer) { Engineer.new } - let(:conductor) { Conductor.new(engineer)} - - it "should tell the engineer to slow down" do - engineer.should_receive(:slow_down!) - conductor.see_danger_coming! - end - + let(:engineer) { Engineer.new (message_board)} + let(:conductor) { Conductor.new(message_board,engineer)} + let(:message_board) { MessageBoard.new } + + it "Should notify the messageboard to slow down when danger is imminent" do + engineer.should_receive(:slow_down!) + conductor.see_danger_coming! + end +end + +describe Engineer do + + let(:engineer) { Engineer.new (message_board)} + let(:conductor) { Conductor.new(message_board,engineer)} + let(:message_board) { MessageBoard.new } + + it "Should receive the slowdown message" do + engineer.should_receive(:slow_down!) + conductor.see_danger_coming! + end + + it "Should reply to the Message Board with a slow down confirmation" do + message_board.should_receive(:confirm_slow_down!) + engineer.confirm! + end end \ No newline at end of file From a62116ec9d81f1efb3bfc963f0e6fdb45232af82 Mon Sep 17 00:00:00 2001 From: PDaily Date: Fri, 25 Apr 2014 22:38:59 +0000 Subject: [PATCH 2/2] Added messageboard functionality --- train.rb | 3 +-- train_spec.rb | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/train.rb b/train.rb index ce20ff3..cc86f1c 100644 --- a/train.rb +++ b/train.rb @@ -1,7 +1,6 @@ class Conductor - attr_reader :engineer - attr_reader :message_board + attr_reader :engineer, :message_board def initialize(message_board, engineer) @engineer = engineer diff --git a/train_spec.rb b/train_spec.rb index efcefd9..7533d60 100644 --- a/train_spec.rb +++ b/train_spec.rb @@ -3,7 +3,7 @@ describe Conductor do let(:engineer) { Engineer.new (message_board)} - let(:conductor) { Conductor.new(message_board,engineer)} + let(:conductor) { Conductor.new(message_board, engineer)} let(:message_board) { MessageBoard.new } it "Should notify the messageboard to slow down when danger is imminent" do @@ -15,7 +15,7 @@ describe Engineer do let(:engineer) { Engineer.new (message_board)} - let(:conductor) { Conductor.new(message_board,engineer)} + let(:conductor) { Conductor.new(message_board, engineer)} let(:message_board) { MessageBoard.new } it "Should receive the slowdown message" do