I was writing some code and it ended up being way too ugly to my liking. Is there anyway that I can refactor it so that I don't use nested if statements?
def hours_occupied(date)
#assuming date is a valid date object
availability = get_work_hours(date)
focus = "work"
if availability.nil
availability = get_family_hours(date)
focus = "family"
if availability.nil
availability = get_friend_hours(date)
focus = "friends"
end
end
end
I know I'll be able to do something like this for availability
availability = get_work_hours(date) || get_family_hours(date) || get_friend_hours(date)
but how do I set the focus variable accordingly?
I would do something like the following as it makes it clear that each case is mutually exclusive:
def hours_occupied(date)
if availability = get_work_hours(date)
focus = "work"
elsif availability = get_family_hours(date)
focus = "family"
elsif availability = get_friend_hours(date)
focus = "friends"
end
end