exercism/elixir/need-for-speed/lib/need_for_speed/remote_control_car.ex

25 lines
626 B
Elixir

defmodule NeedForSpeed.RemoteControlCar do
defstruct [
:nickname,
:color,
battery_percentage: 100,
distance_driven_in_meters: 0
]
def new(color, nickname) when color in [:red, :blue, :green] do
%NeedForSpeed.RemoteControlCar{nickname: nickname, color: color}
end
def display_distance(%NeedForSpeed.RemoteControlCar{distance_driven_in_meters: d}) do
"#{d} meters"
end
def display_battery(%NeedForSpeed.RemoteControlCar{battery_percentage: 0}) do
"Battery empty"
end
def display_battery(%NeedForSpeed.RemoteControlCar{battery_percentage: b}) do
"Battery at #{b}%"
end
end