Skip to content

Instantly share code, notes, and snippets.

@nastysloper
Last active December 16, 2015 14:08
Show Gist options
  • Save nastysloper/5446151 to your computer and use it in GitHub Desktop.
Save nastysloper/5446151 to your computer and use it in GitHub Desktop.
I'm refactoring code for the House class to use cleaner Boolean expressions.
class House
def initialize(temperature = 68, min_temp = 58, max_temp = 80)
@temperature = temperature
@max_temp = max_temp
@min_temp = min_temp
@heater = "off"
@air_conditioner = "off"
end
def update_temperature!
if @temperature > @max_temp
unless air_on?
@air_conditioner = "on"
@heater = "off" if heat_on?
$end
end
elsif @temperature < @min_temp
unless @heat_on?
@heater = "on"
@air_conditioner = "off" if air_on?
$end
end
end
if @heat_on?
@temperature += 1
elsif @air_on?
@temperature -= 2
end
puts @temperature
end
def heat_on?
@heater == "on"
end
# def heat_off
# @heater = "off"
# end
def air_on?
@air_conditioner == "on"
end
# def air_off
# @air_conditioner = "off"
# end
end
my_house = House.new 50
#my_house.heat_on
my_house.update_temperature!
my_house.update_temperature!
my_house.update_temperature!
my_house.update_temperature!
#my_house.heat_off
#my_house.air_on
my_house.update_temperature!
my_house.air_on
my_house.update_temperature!
my_house.update_temperature!
my_house.update_temperature!
my_house.update_temperature!
my_house.update_temperature!
my_house.update_temperature!
my_house.update_temperature!
my_house.update_temperature!
my_house.update_temperature!
my_house.update_temperature!
my_house.update_temperature!
my_house.update_temperature!
my_house.update_temperature!
my_house.update_temperature!
my_house.update_temperature!
my_house.update_temperature!
my_house.update_temperature!
my_house.update_temperature!
my_house.update_temperature!
my_house.update_temperature!
my_house.update_temperature!
my_house.update_temperature!
my_house.update_temperature!
my_house.update_temperature!
my_house.update_temperature!
my_house.update_temperature!
my_house.update_temperature!
my_house.update_temperature!
puts " ** "
@nastysloper
Copy link
Author

richard-vogt-jrs-macbook-pro:Dropbox richardvogtjr$ ruby house.rb
house.rb:21: syntax error, unexpected tIVAR, expecting ':'
@air_conditioner = "off" if air_on?
^
house.rb:28: syntax error, unexpected keyword_elsif, expecting ':'
elsif @air_on?
^
house.rb:30: syntax error, unexpected keyword_end, expecting ':'
house.rb:50: syntax error, unexpected keyword_end, expecting $end
richard-vogt-jrs-macbook-pro:Dropbox richardvogtjr$

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment