Last active
December 16, 2015 14:08
-
-
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.
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
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 " ** " |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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$