25 lines
531 B
Elixir
25 lines
531 B
Elixir
|
defmodule NeedForSpeed.Race do
|
||
|
defstruct [
|
||
|
:title,
|
||
|
:total_distance_in_meters,
|
||
|
cars: []
|
||
|
]
|
||
|
|
||
|
def display_status(%NeedForSpeed.Race{} = race) do
|
||
|
cond do
|
||
|
Enum.any?(race.cars, &(&1.distance_driven_in_meters >= race.total_distance_in_meters)) ->
|
||
|
"Finished"
|
||
|
|
||
|
Enum.any?(race.cars, &(&1.distance_driven_in_meters > 0)) ->
|
||
|
"In Progress"
|
||
|
|
||
|
true ->
|
||
|
"Not Started"
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def display_distance(%NeedForSpeed.Race{total_distance_in_meters: d}) do
|
||
|
"#{d} meters"
|
||
|
end
|
||
|
end
|