가장 좋아하는 요리책에 나온 라자냐를 만들 수 있도록 코드를 작성해 볼 거예요.
요리를 만드는 것과 관련된 다섯 가지 과제가 있어요.
$Lasagna::ExpectedMinutesInOven 변수에 라자냐를 오븐에 몇 분 동안 두어야 하는지 설정해요. 요리책에 따르면, 오븐에 넣어 둘 예상 시간은 40분이에요:
$Lasagna::ExpectedMinutesInOven
# => 40
Lasagna::remaining_minutes_in_oven 서브루틴을 수정해요. 이 서브루틴은 라자냐가 오븐에 있던 실제 시간(분)을 인자로 받아서, 이전 과제에서 정한 오븐 예상 시간을 기준으로 라자냐가 오븐에 더 있어야 할 시간이 몇 분인지 반환해야 해요.
Lasagna::remaining_minutes_in_oven(30)
# => 10
Lasagna::preparation_time_in_minutes 서브루틴을 수정해요. 이 서브루틴은 라자냐에 올린 층의 개수를 인자로 받아서, 각 층을 준비하는 데 2분이 걸린다고 가정했을 때 라자냐를 준비하는 데 몇 분이 걸렸는지 반환해야 해요.
Lasagna::preparation_time_in_minutes(2)
# => 4
Lasagna::total_time_in_minutes 서브루틴을 수정해요. 이 서브루틴은 두 개의 인자를 받는데, 첫 번째 인자는 라자냐에 올린 층의 개수이고, 두 번째 인자는 라자냐가 오븐에 있던 시간(분)이에요.
서브루틴은 라자냐를 요리하는 데 총 몇 분을 들였는지 반환해야 해요. 이 값은 준비 시간(분)과 그 순간까지 라자냐가 오븐에 있던 시간(분)을 더한 값이에요.
Lasagna::total_time_in_minutes(3, 20)
# => 26
Lasagna::oven_alarm 서브루틴을 수정해요. 이 서브루틴은 인자를 받지 않고, 라자냐가 다 되어서 먹을 수 있다는 메시지를 반환해야 해요.
Lasagna::oven_alarm()
# => "Ding!"