# Cldr Currencies

Packages the currency definitions from [CLDR]( into a set of functions
to return currency data.

## Installation

The package can be installed by adding `ex_cldr_currencies` to your list of dependencies in `mix.exs`:

def deps do
    {:ex_cldr_currencies, "~> 2.13"}

## Defining private use currencies

[ISO4217]( permits the creation of private use currencies. These are denoted by currencies that start with "X" followed by two characters.  New currencies can be created with `` however in order to do so a supervisor must be started which maintains an `:ets` table that holds the custom currencies.

Since the currencies are stored in an `:ets` table they are transient and will be lost on application restart. It is the developers responsibility to define the required private use currencies on application restart.

### Starting the private use currency supervisor

The simplest way to start the private use currency supervisor is:
iex> Cldr.Currency.start_link()

The preferred method however is to add the supervisor to your applications supervision tree. In your application module (ie the one that includes `use Application`):
defmodule MyApp do
  use Application

  def start(_type, _args) do
    # Start the service which maintains the
    # :ets table that holds the private use currencies
    children = [

    opts = [strategy: :one_for_one, name: MoneyTest.Supervisor]
    Supervisor.start_link(children, opts)
    # Load your custom currencies now that the
    # Cldr.Currency genserver is running
    # load_my_custom_currencies()