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

Sergio Urrutia-Oyer - CS 362 Final #3

Open
wants to merge 15 commits into
base: master
Choose a base branch
from
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.3)
rspec (3.9.0)
rspec-core (~> 3.9.0)
rspec-expectations (~> 3.9.0)
rspec-mocks (~> 3.9.0)
rspec-core (3.9.1)
rspec-support (~> 3.9.1)
rspec-expectations (3.9.0)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.9.0)
rspec-mocks (3.9.1)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.9.0)
rspec-support (3.9.2)

PLATFORMS
x86_64-linux

DEPENDENCIES
rspec

BUNDLED WITH
2.2.5
11 changes: 10 additions & 1 deletion lib/vessel.rb
Original file line number Diff line number Diff line change
@@ -1,9 +1,18 @@
class Vessel
attr_reader :volume
attr_reader :volume, :name, :empty

def initialize(name, volume)
@name = name
@volume = volume
@empty = true
end

def empty?
return @empty
end

def fill
@empty = false
end

end
16 changes: 15 additions & 1 deletion lib/water_dispenser.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,21 @@ def initialize(reservoir)
end

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

def dispense_cast(vessel)
if check_reservoir_volume() == 1
reservoir.drain(vessel.volume)
end
end

def check_reservoir_volume()
if @reservoir.empty?
puts 'reservoir is empty, nothing dispensed'
else
return 1
end

end
end
4 changes: 2 additions & 2 deletions lib/water_reservoir.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@ def initialize(capacity = 10, initial_water_volume = 0)
end

def empty?
current_water_volume == 0
@current_water_volume == 0
end

def fill
current_water_volume = capacity
@current_water_volume = capacity
end

def drain(volume)
Expand Down
11 changes: 11 additions & 0 deletions spec/item_spec.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
require_relative '../lib/item'

describe 'An item of food or a beverage' do
let(:item) { Item.new("FAKE",100) }
it 'item exists' do
item
end

it 'item has name' do
expect(item).to respond_to(:name)
end

it 'item has volume' do
expect(item).to respond_to(:volume)
end
end
4 changes: 1 addition & 3 deletions spec/vessel_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,17 @@
describe 'A vessel for holding liquid' do

it 'has a name and volume' do
vessel = Vessel.new
vessel = Vessel.new("FAKE",100)
expect(vessel.name).to eq('FAKE')
expect(vessel.volume).to eq(100)
end

it 'is initially empty' do
skip
vessel = Vessel.new('FAKE', 100)
expect(vessel).to be_empty
end

it 'is no longer empty when we fill it' do
skip
vessel = Vessel.new('FAKE', 100)
vessel.fill
expect(vessel).to_not be_empty
Expand Down
27 changes: 27 additions & 0 deletions spec/water_reservoir_spec.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,32 @@
require_relative '../lib/water_reservoir'

describe 'A water reservoir' do
let(:reservoir) { WaterReservoir.new() }
it 'dispenser exists' do
reservoir
end

it 'reservoir has capacity' do
expect(reservoir).to respond_to(:capacity)
end


it 'reservoir has water volume' do
expect(reservoir).to respond_to(:current_water_volume)
end

it 'empty at first' do
expect(reservoir.empty?).to be_truthy
end

it 'full when filled' do
reservoir.fill
expect(reservoir.empty?).to be_falsey
end

it 'empty when drained by current volume' do
reservoir.drain(reservoir.current_water_volume)
expect(reservoir.empty?).to be_truthy
end

end