Packages
ex_money
6.1.0
6.1.1
6.1.0
6.0.0
6.0.0-rc.0
5.24.2
5.24.1
5.24.0
retired
5.23.0
5.22.0
5.21.0
5.20.0
5.19.2
5.19.1
5.19.0
5.18.0
5.17.2
5.17.1
5.17.0
5.16.1
5.16.0
5.15.4
5.15.3
5.15.2
5.15.1
5.15.0
5.14.1
5.13.0
5.12.4
5.12.3
5.12.2
5.12.1
5.12.0
5.11.0
5.10.0
5.9.0
5.8.0
5.7.4
5.7.3
5.7.2
5.7.1
5.7.0
5.6.0
5.5.5
5.5.4
5.5.3
5.5.2
5.5.1
5.5.0
5.4.1
5.4.0
5.4.0-rc.0
5.3.2
5.3.1
5.3.0
5.2.1
5.2.0
5.1.0
5.0.2
5.0.1
5.0.0
retired
4.4.3
4.4.2
retired
4.4.1
4.4.0
4.3.0
4.2.2
4.2.1
4.2.0
4.1.0
4.0.0
3.4.4
3.4.3
3.4.2
3.4.1
3.4.0
3.3.1
3.3.0
3.2.4
3.2.3
3.2.2
3.2.1
3.2.0
3.1.0
3.0.0
2.12.2
2.12.1
retired
2.12.0
retired
2.11.0
2.10.0
2.9.1
2.9.0
2.8.0
2.7.3
2.7.2
2.7.1
2.7.0
2.6.1
2.6.0
2.5.0
2.4.0
2.3.0
2.2.2
2.2.1
2.2.0
2.1.0
2.1.0-rc.1
retired
2.1.0-rc.0
retired
2.0.4
2.0.3
2.0.2
2.0.1
2.0.0
1.1.3
1.1.2
1.1.1
retired
1.1.0
1.0.0
1.0.0-rc.0
retired
0.9.0
retired
0.8.5
retired
0.8.4
retired
0.8.3
retired
0.8.2
retired
0.8.1
retired
0.8.0
retired
0.7.0
retired
0.6.2
retired
0.6.1
retired
0.6.0
retired
0.5.3
retired
0.5.2
retired
0.5.1
retired
0.5.0
retired
0.4.3
retired
0.4.2
retired
0.4.1
retired
0.4.0
retired
0.3.0
retired
0.2.0
retired
0.1.7
retired
0.1.6
retired
0.1.5
retired
0.1.4
retired
0.1.3
retired
0.1.2
retired
0.1.1
retired
0.1.0
retired
0.0.16
retired
0.0.15
retired
0.0.14
retired
0.0.13
retired
0.0.12
retired
0.0.11
retired
0.0.10
retired
0.0.9
retired
0.0.7
retired
0.0.6
retired
0.0.5
retired
0.0.4
retired
0.0.3
retired
0.0.2
retired
Money functions for operations on and localization of a money data type with support for ISO 4217 currencies and ISO 24165 digial tokens (crypto currencies).
Current section
Files
Jump to
Current section
Files
lib/money/exchange_rates/supervisor.ex
defmodule Money.ExchangeRates.Supervisor do
@moduledoc deprecated: """
`Money.ExchangeRates.Supervisor` is deprecated. Add `Money.ExchangeRates.Retriever`
directly to your application's supervision tree instead:
```
children = [
Money.ExchangeRates.Retriever
]
```
If your callback module depends on other applications being started first, position
`Money.ExchangeRates.Retriever` after those dependencies in the children list.
"""
use Supervisor
alias Money.ExchangeRates.Retriever
@doc deprecated: "Add `Money.ExchangeRates.Retriever` to your supervision tree directly."
def start_link(options) do
if Keyword.get(options, :restart, false), do: stop()
Supervisor.start_link(__MODULE__, :ok, name: __MODULE__)
end
@doc deprecated: "Manage `Money.ExchangeRates.Retriever` directly in your supervision tree."
def stop(supervisor \\ default_supervisor()) do
Supervisor.terminate_child(supervisor, __MODULE__)
end
@doc false
def default_supervisor do
{_, options} =
Application.spec(:ex_money)
|> Keyword.get(:mod)
Keyword.get(options, :name)
end
@doc false
@impl true
def init(:ok) do
Supervisor.init([Retriever], strategy: :one_for_one)
end
@doc deprecated: "Use `Process.whereis(Money.ExchangeRates.Retriever)` directly."
def retriever_running? do
!!Process.whereis(Retriever)
end
@doc deprecated:
"Use `Process.whereis(Money.ExchangeRates.Retriever)` to check if the retriever is running."
def retriever_status do
cond do
!!Process.whereis(Retriever) -> :running
configured?(Retriever) -> :stopped
true -> :not_started
end
end
defp configured?(child) do
Money.ExchangeRates.Supervisor
|> Supervisor.which_children()
|> Enum.any?(fn {name, _pid, _type, _args} -> name == child end)
end
@doc deprecated: "Add `Money.ExchangeRates.Retriever` to your supervision tree directly."
def start_retriever(config \\ Money.ExchangeRates.config()) do
Supervisor.start_child(__MODULE__, {Retriever, [config: config]})
end
@doc deprecated:
"Migrate to managing `Money.ExchangeRates.Retriever` in your own supervision tree, then use your supervisor's `terminate_child/2`."
def stop_retriever do
Supervisor.terminate_child(__MODULE__, Retriever)
end
@doc deprecated:
"Migrate to managing `Money.ExchangeRates.Retriever` in your own supervision tree, then use your supervisor's `restart_child/2`."
def restart_retriever do
Supervisor.restart_child(__MODULE__, Retriever)
end
@doc deprecated:
"Migrate to managing `Money.ExchangeRates.Retriever` in your own supervision tree, then use your supervisor's `delete_child/2`."
def delete_retriever do
Supervisor.delete_child(__MODULE__, Retriever)
end
end