Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pull request per assignment #15

Open
wants to merge 9 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions Gemfile.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
GEM
remote: https://rubygems.org/
specs:
diff-lcs (1.5.0)
rspec (3.12.0)
rspec-core (~> 3.12.0)
rspec-expectations (~> 3.12.0)
rspec-mocks (~> 3.12.0)
rspec-core (3.12.0)
rspec-support (~> 3.12.0)
rspec-expectations (3.12.2)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.12.0)
rspec-mocks (3.12.2)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.12.0)
rspec-support (3.12.0)

PLATFORMS
x86_64-linux

DEPENDENCIES
rspec

BUNDLED WITH
2.4.3
12 changes: 12 additions & 0 deletions lib/chiller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,18 @@ def initialize(capacity = 100)
@contents = []
end

def temperature
@temperature
end

def power
@power
end

def contents
@contents
end

def turn_on
@power = :on
end
Expand Down
12 changes: 12 additions & 0 deletions lib/freezer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,18 @@ def initialize(capacity = 100)
@contents = []
end

def temperature
@temperature
end

def power
@power
end

def contents
@contents
end

def turn_on
@power = :on
end
Expand Down
8 changes: 8 additions & 0 deletions lib/item.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,12 @@ def initialize(name, volume)
@volume = volume
end

def name
@name
end

def volume
@volume
end

end
24 changes: 24 additions & 0 deletions lib/refrigerator.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,30 @@ def initialize(chiller, freezer, water_dispenser, water_reservoir)
@power = :off
end

def chiller
@chiller
end

def freezer
@freezer
end

def control_panel
@control_panel
end

def water_dispenser
@water_dispenser
end

def water_reservoir
@water_reservoir
end

def power
@power
end

def chill(item)
chiller.add(item)
end
Expand Down
23 changes: 22 additions & 1 deletion lib/vessel.rb
Original file line number Diff line number Diff line change
@@ -1,9 +1,30 @@
class Vessel
attr_reader :volume

def initialize(name, volume)
def initialize(name, volume, fluid = 0)
@name = name
@volume = volume
@fluid = fluid
end

def name
@name
end

def volume
@volume
end

def fluid
@fluid
end

def pour_into_vessel(water)
@fluid += water
end

def fill
@fluid = volume
end

end
6 changes: 5 additions & 1 deletion lib/water_dispenser.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,12 @@ def initialize(reservoir)
@reservoir = reservoir
end

def reservoir
@reservoir
end

def dispense(vessel)
reservoir.drain(vessel.volume)
reservoir.drain(vessel, vessel.volume)
end

end
22 changes: 19 additions & 3 deletions lib/water_reservoir.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,32 @@ def initialize(capacity = 10, initial_water_volume = 0)
@current_water_volume = initial_water_volume
end

def current_water_volume
@current_water_volume
end

def capacity
@capacity
end

def empty?
current_water_volume == 0
end

def fill
current_water_volume = capacity
self.current_water_volume = capacity
end

def drain(volume)
self.current_water_volume -= volume
def drain(vessel, volume)

if volume <= current_water_volume
self.current_water_volume -= volume
vessel.pour_into_vessel(volume)

else
vessel.pour_into_vessel(current_water_volume)
self.current_water_volume = 0
end
end

end
92 changes: 92 additions & 0 deletions spec/chiller_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,96 @@

describe 'A chiller' do

# ROOM_TEMPERATURE = 70

# attr_reader :capacity, :temperature

# def initialize(capacity = 100)
# @capacity = capacity
# @temperature = ROOM_TEMPERATURE
# @power = :off
# @contents = []
# end

# def turn_on
# @power = :on
# end

# def turn_off
# @power = :off
# end

# def add(item)
# @contents << item
# end

# def remaining_capacity
# capacity - @contents.map(&:volume).reduce(:+).to_i
# end

# def set_level(level)
# @temperature = ROOM_TEMPERATURE - level * 5
# end


it "responds to capacity" do
chiller = Chiller.new
expect(chiller).to respond_to(:capacity)
end

it "responds to temperature" do
chiller = Chiller.new
expect(chiller).to respond_to(:temperature)
end

it "has capacity" do
chiller = Chiller.new
expect(chiller.capacity).to eq(100)
end

it "has temperature" do
chiller = Chiller.new
expect(chiller.temperature).to eq(70)
end

it "has power" do
chiller = Chiller.new
expect(chiller.power).to eq(:off)
end

it "has contents" do
chiller = Chiller.new
expect(chiller.contents).to eq([])
end

it "turns on" do
chiller = Chiller.new
chiller.turn_on
expect(chiller.power).to eq(:on)
end

it "turns off" do
chiller = Chiller.new
chiller.turn_off
expect(chiller.power).to eq(:off)
end

it "adds a item" do
chiller = Chiller.new
item = Item.new("cola", 12)
chiller.add(item)
expect(chiller.contents).to eq([item])
end

it "checks remaining capacity" do
chiller = Chiller.new
expect(chiller.remaining_capacity).to eq(100)
end

it "sets level" do
chiller = Chiller.new
chiller.set_level(10)
expect(chiller.temperature).to eq(20)
end

end
66 changes: 66 additions & 0 deletions spec/freezer_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,70 @@

describe 'A freezer' do

# ROOM_TEMPERATURE = 70

# attr_reader :capacity, :temperature

it "responds to capacity" do
freezer = Freezer.new
expect(freezer).to respond_to(:capacity)
end

it "responds to temperature" do
freezer = Freezer.new
expect(freezer).to respond_to(:temperature)
end

it "has capacity" do
freezer = Freezer.new
expect(freezer.capacity).to eq(100)
end

it "has temperature" do
freezer = Freezer.new
expect(freezer.temperature).to eq(70)
end

it "has power" do
freezer = Freezer.new
expect(freezer.power).to eq(:off)
end

it "has contents" do
freezer = Freezer.new
expect(freezer.contents).to eq([])
end

it "turns on" do
freezer = Freezer.new
freezer.turn_on
expect(freezer.power).to eq(:on)
end

it "turns off" do
freezer = Freezer.new
freezer.turn_off
expect(freezer.power).to eq(:off)
end

it "adds a item" do
freezer = Freezer.new
item = Item.new("cola", 12)
freezer.add(item)
expect(freezer.contents).to eq([item])
end

it "checks remaining capacity" do
freezer = Freezer.new
expect(freezer.remaining_capacity).to eq(100)
end

it "sets level" do
freezer = Freezer.new
freezer.set_level(10)
expect(freezer.temperature).to eq(-30)
end



end
11 changes: 11 additions & 0 deletions spec/item_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,15 @@

describe 'An item of food or a beverage' do

it "has a name" do
item = Item.new("Cola", 12)
expect(item.name).to eq("Cola")

end

it "has a volume" do
item = Item.new("Cola", 12)
expect(item.volume).to eq(12)
end

end
Loading