Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #9 from Sam-Serpoosh/master
Ruby solution for TurnTicketDispenser problem
- Loading branch information
Showing
9 changed files
with
108 additions
and
0 deletions.
There are no files selected for viewing
14 changes: 14 additions & 0 deletions
14
TDDMicroExercises.YoursSolutions/Sam-Serpoosh/code/turn_ticket_dispenser/ticket_dispenser.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Original file line | Diff line number | Diff line change |
---|---|---|---|
@@ -0,0 +1,14 @@ | |||
require_relative "./turn_number_sequence" | |||
require_relative "./turn_ticket" | |||
|
|||
class TicketDispenser | |||
|
|||
def initialize(ticket_sequence_generator=TurnNumberSequence) | |||
@ticket_sequence_generator = ticket_sequence_generator | |||
end | |||
|
|||
def get_turn_ticket | |||
new_turn_number = @ticket_sequence_generator.get_next_turn_number | |||
TurnTicket.new(new_turn_number) | |||
end | |||
end |
7 changes: 7 additions & 0 deletions
7
...oExercises.YoursSolutions/Sam-Serpoosh/code/turn_ticket_dispenser/turn_number_sequence.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Original file line | Diff line number | Diff line change |
---|---|---|---|
@@ -0,0 +1,7 @@ | |||
class TurnNumberSequence | |||
@@current_turn_number = -1 | |||
|
|||
def self.get_next_turn_number | |||
@@current_turn_number += 1 | |||
end | |||
end |
9 changes: 9 additions & 0 deletions
9
TDDMicroExercises.YoursSolutions/Sam-Serpoosh/code/turn_ticket_dispenser/turn_ticket.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Original file line | Diff line number | Diff line change |
---|---|---|---|
@@ -0,0 +1,9 @@ | |||
class TurnTicket | |||
def initialize(turn_number) | |||
@turn_number = turn_number | |||
end | |||
|
|||
def turn_number | |||
@turn_number | |||
end | |||
end |
12 changes: 12 additions & 0 deletions
12
...ises.YoursSolutions/Sam-Serpoosh/spec/turn_ticket_dispenser_spec/ticket_dispenser_spec.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Original file line | Diff line number | Diff line change |
---|---|---|---|
@@ -0,0 +1,12 @@ | |||
require_relative "../../code/turn_ticket_dispenser/ticket_dispenser" | |||
|
|||
|
|||
describe TicketDispenser do | |||
it "gets the next ticket" do | |||
TurnNumberSequence.stub(:get_next_turn_number => 2) | |||
ticket_dispenser = TicketDispenser.new | |||
|
|||
ticket = ticket_dispenser.get_turn_ticket | |||
ticket.turn_number.should == 2 | |||
end | |||
end |
24 changes: 24 additions & 0 deletions
24
TDDMicroExercises/Ruby/tire_pressure_monitoring_system/alarm.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Original file line | Diff line number | Diff line change |
---|---|---|---|
@@ -0,0 +1,24 @@ | |||
require_relative "./sensor" | |||
|
|||
class Alarm | |||
LOWPRESSURETHRESHOLD = 17 | |||
HIGHPRESSURETHRESHOLD = 21 | |||
|
|||
def initialize | |||
@sensor = Sensor.new | |||
@alarm_on = false | |||
@alarm_count = 0 | |||
end | |||
|
|||
def check | |||
psi_pressure_value = @sensor.pop_next_pressure_psi_value | |||
if psi_pressure_value < LOWPRESSURETHRESHOLD || HIGHPRESSURETHRESHOLD < psi_pressure_value | |||
@alarm_on = true | |||
@alarm_count += 1 | |||
end | |||
end | |||
|
|||
def alarm_on | |||
return @alarm_on | |||
end | |||
end |
15 changes: 15 additions & 0 deletions
15
TDDMicroExercises/Ruby/tire_pressure_monitoring_system/sensor.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Original file line | Diff line number | Diff line change |
---|---|---|---|
@@ -0,0 +1,15 @@ | |||
class Sensor | |||
OFFSET = 16; | |||
|
|||
def pop_next_pressure_psi_value | |||
pressure_telemetry_value = sample_pressure | |||
OFFSET + pressure_telemetry_value; | |||
end | |||
|
|||
def sample_pressure | |||
#placeholder implementation that | |||
#simulate a real sensor in a real tire | |||
pressure_telemetry_value = 6 * rand(5) * rand(4) | |||
pressure_telemetry_value | |||
end | |||
end |
11 changes: 11 additions & 0 deletions
11
TDDMicroExercises/Ruby/turn_ticket_dispenser/ticket_dispenser.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Original file line | Diff line number | Diff line change |
---|---|---|---|
@@ -0,0 +1,11 @@ | |||
require_relative "./turn_number_sequence" | |||
require_relative "./turn_ticket" | |||
|
|||
class TicketDispenser | |||
def get_turn_ticket | |||
new_turn_number = TurnNumberSequence.get_next_turn_number | |||
new_turn_ticket = TurnTicket.new(new_turn_number) | |||
|
|||
return new_turn_ticket | |||
end | |||
end |
7 changes: 7 additions & 0 deletions
7
TDDMicroExercises/Ruby/turn_ticket_dispenser/turn_number_sequence.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Original file line | Diff line number | Diff line change |
---|---|---|---|
@@ -0,0 +1,7 @@ | |||
class TurnNumberSequence | |||
TURN_NUMBER = -1 | |||
|
|||
def self.get_next_turn_number | |||
TURN_NUMBER += 1 | |||
end | |||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Original file line | Diff line number | Diff line change |
---|---|---|---|
@@ -0,0 +1,9 @@ | |||
class TurnTicket | |||
def initialize(turn_number) | |||
@turn_number = turn_number | |||
end | |||
|
|||
def turn_number | |||
return @turn_number | |||
end | |||
end |