お気に入りの料理本のラザニア作りを手伝ってくれるコードを書いていきます。
タスクは5つあり、どれもレシピの調理に関係しています。
$Lasagna::ExpectedMinutesInOven変数に、ラザニアをオーブンに入れておくべき分数を設定します。料理本によると、オーブンでの想定焼き時間は40分です。
$Lasagna::ExpectedMinutesInOven
# => 40
Lasagna::remaining_minutes_in_ovenサブルーチンを修正します。このサブルーチンは、ラザニアがオーブンに入っていた実際の分数を引数として受け取り、前のタスクで求めたオーブンでの想定焼き時間をもとに、ラザニアをあと何分オーブンに入れておく必要があるかを返します。
Lasagna::remaining_minutes_in_oven(30)
# => 10
Lasagna::preparation_time_in_minutesサブルーチンを修正します。このサブルーチンは、ラザニアに追加した層の数を引数として受け取り、ラザニアの準備にかかった分数を返します。層を1つ用意するのに2分かかるものとします。
Lasagna::preparation_time_in_minutes(2)
# => 4
Lasagna::total_time_in_minutesサブルーチンを修正します。このサブルーチンは2つの引数を取ります。1つ目の引数はラザニアに追加した層の数で、2つ目の引数はラザニアがオーブンに入っていた分数です。
このサブルーチンは、ラザニアの調理に合計で何分かかったかを返します。これは、準備にかかった分数と、その時点でラザニアがオーブンに入っていた分数を足したものです。
Lasagna::total_time_in_minutes(3, 20)
# => 26
Lasagna::oven_alarmサブルーチンを修正します。このサブルーチンは引数を取らず、ラザニアが食べごろになったことを知らせるメッセージを返します。
Lasagna::oven_alarm()
# => "Ding!"