diff --git a/config/config.exs b/config/config.exs index f7a55f8..8a1882e 100644 --- a/config/config.exs +++ b/config/config.exs @@ -2,20 +2,12 @@ import Config config :shortnr, port: 8080, - ets_implementation: - (fn - :test -> :ets - _ -> :dets - end).(Mix.env()) + ets_implementation: :dets config :logger, :console, format: "date=$date time=$time level=$level$levelpad message=\"$message\" $metadata\n", metadata: [:port, :file, :line, :crash_reason, :stack], - level: - (fn - :prod -> :info - _ -> :debug - end).(Mix.env()) + level: :debug config :credo, checks: [ @@ -23,3 +15,5 @@ config :credo, {Credo.Check.Refactor.MapInto, false}, {Credo.Check.Warning.LazyLogging, false} ] + +import_config "#{Mix.env}.exs" diff --git a/config/dev.exs b/config/dev.exs new file mode 100644 index 0000000..e69de29 diff --git a/config/prod.exs b/config/prod.exs new file mode 100644 index 0000000..c7a966a --- /dev/null +++ b/config/prod.exs @@ -0,0 +1,4 @@ +import Config + +config :logger, :console, + level: :info diff --git a/config/test.exs b/config/test.exs new file mode 100644 index 0000000..91ce02e --- /dev/null +++ b/config/test.exs @@ -0,0 +1,4 @@ +import Config + +config :shortnr, + ets_implementation: :ets diff --git a/lib/shortnr.ex b/lib/shortnr.ex index caafc11..5459cc6 100644 --- a/lib/shortnr.ex +++ b/lib/shortnr.ex @@ -6,7 +6,7 @@ defmodule Shortnr do require Logger use Application - @impl Application + @impl true def start(_type, _args) do children = [ {Plug.Cowboy, scheme: :http, plug: Shortnr.Router, options: [port: port()]} @@ -22,7 +22,7 @@ defmodule Shortnr do Supervisor.start_link(children, strategy: :one_for_one) end - @impl Application + @impl true def stop(_state) do if ets_implementation() == :dets, do: :dets.close(:urls) end diff --git a/lib/router.ex b/lib/shortnr/router.ex similarity index 100% rename from lib/router.ex rename to lib/shortnr/router.ex diff --git a/lib/transport/transport.ex b/lib/shortnr/transport.ex similarity index 100% rename from lib/transport/transport.ex rename to lib/shortnr/transport.ex diff --git a/lib/transport/http.ex b/lib/shortnr/transport/http.ex similarity index 100% rename from lib/transport/http.ex rename to lib/shortnr/transport/http.ex diff --git a/lib/transport/text.ex b/lib/shortnr/transport/text.ex similarity index 100% rename from lib/transport/text.ex rename to lib/shortnr/transport/text.ex diff --git a/lib/url/url.ex b/lib/shortnr/url.ex similarity index 100% rename from lib/url/url.ex rename to lib/shortnr/url.ex diff --git a/lib/url/endpoints.ex b/lib/shortnr/url/endpoints.ex similarity index 98% rename from lib/url/endpoints.ex rename to lib/shortnr/url/endpoints.ex index 402c33d..d3842dc 100644 --- a/lib/url/endpoints.ex +++ b/lib/shortnr/url/endpoints.ex @@ -8,7 +8,7 @@ defmodule Shortnr.URL.Endpoints do @behaviour Endpoints - @impl Endpoints + @impl true def select(conn, name, arg \\ nil) def select(conn, :list, _arg) do diff --git a/lib/url/repo/repo.ex b/lib/shortnr/url/repo.ex similarity index 100% rename from lib/url/repo/repo.ex rename to lib/shortnr/url/repo.ex diff --git a/lib/url/repo/ets.ex b/lib/shortnr/url/repo/ets.ex similarity index 91% rename from lib/url/repo/ets.ex rename to lib/shortnr/url/repo/ets.ex index 904d0ac..0b27dc2 100644 --- a/lib/url/repo/ets.ex +++ b/lib/shortnr/url/repo/ets.ex @@ -6,7 +6,7 @@ defmodule Shortnr.URL.Repo.ETS do @behaviour Repo - @impl Repo + @impl true def get(key) do case ets().lookup(:urls, key) |> List.first() do {_, url} -> {:ok, url} @@ -14,25 +14,25 @@ defmodule Shortnr.URL.Repo.ETS do end end - @impl Repo + @impl true def put(url) do :ok = ets().insert(:urls, {url.id, url}) :ok end - @impl Repo + @impl true def list do resp = ets().select(:urls, [{:"$1", [], [:"$1"]}]) {:ok, resp |> Enum.map(&elem(&1, 1))} end - @impl Repo + @impl true def delete(key) do :ok = ets().delete(:urls, key) :ok end - @impl Repo + @impl true def reset do :ok = ets().delete_all_objects(:urls) end diff --git a/lib/url/util.ex b/lib/shortnr/url/util.ex similarity index 100% rename from lib/url/util.ex rename to lib/shortnr/url/util.ex