| 1 |
|
defmodule Now do |
| 2 |
|
import :calendar, only: [local_time: 0] |
| 3 |
|
import Application, only: [get_env: 2, get_env: 3] |
| 4 |
|
import NaiveDateTime, only: [from_erl!: 1, from_iso8601!: 1, to_erl: 1] |
| 5 |
|
|
| 6 |
|
def time do |
| 7 |
6 |
get_env(:elita, :clock_override) |> clock() |
| 8 |
|
end |
| 9 |
|
|
| 10 |
|
def text do |
| 11 |
6 |
time() |> from_erl!() |> to_string() |
| 12 |
|
end |
| 13 |
|
|
| 14 |
1 |
defp clock(nil), do: get_env(:elita, :clock, &default/0).() |
| 15 |
|
|
| 16 |
5 |
defp clock(str), do: from_iso8601!(str) |> to_erl() |
| 17 |
|
|
| 18 |
|
defp default do |
| 19 |
:-( |
local_time() |
| 20 |
|
end |
| 21 |
|
end |