Packages

ex_cldr

0.0.3
2.47.5 2.47.4 2.47.3 2.47.2 2.47.1 2.47.0 2.46.0 2.45.2 2.45.1 2.45.0 2.44.1 2.44.0 2.43.2 2.43.1 2.43.0 2.42.0 2.41.1 2.41.0 2.40.4 2.40.3 2.40.2 2.40.1 2.40.0 2.39.2 2.39.1 2.39.0 2.38.1 2.38.0 2.37.5 2.37.4 2.37.3 retired 2.37.2 2.37.1 2.37.0 2.36.0 2.35.1 2.35.0 retired 2.34.2 2.34.1 2.34.0 2.33.2 2.33.1 2.33.1-rc.0 2.33.0 2.32.1 2.32.0 2.31.0 2.30.0 2.29.0 2.28.0 2.27.1 2.27.0 retired 2.26.3 2.26.2 2.26.1 2.26.0 2.25.0 2.24.2 2.24.1 2.24.0 2.24.0-rc.6 2.24.0-rc.5 2.24.0-rc.4 2.24.0-rc.3 2.24.0-rc.2 2.24.0-rc.1 2.24.0-rc.0 2.23.2 2.23.1 2.23.0 2.22.1 2.22.0 2.21.0 2.20.0 2.20.0-rc.3 2.20.0-rc.2 2.20.0-rc.1 2.20.0-rc.0 2.19.1 2.19.0 2.18.2 2.18.1 2.18.0 2.18.0-rc.0 2.17.2 2.17.1 2.17.0 2.16.2 2.16.1 2.16.1-rc.0 2.16.0 2.15.0 2.14.1 2.14.0 2.14.0-rc.0 2.13.0 2.12.1 2.12.0 2.11.1 2.11.0 2.10.2 2.10.1 2.10.0 retired 2.9.0 2.8.1 2.8.0 2.7.2 2.7.1 2.7.0 2.6.2 2.6.1 2.6.0 2.5.0 2.4.3 2.4.2 2.4.1 2.4.0 2.3.2 2.3.1 2.3.0 2.2.7 2.2.6 2.2.5 2.2.4 2.2.3 2.2.2 2.2.1 2.2.0 2.1.0 2.0.4 2.0.3 2.0.2 2.0.1 2.0.0 2.0.0-rc.3 retired 2.0.0-rc.2 retired 2.0.0-rc.1 retired 2.0.0-rc.0 retired 1.8.2 1.8.1 1.8.0 1.7.1 1.7.0 1.6.4 1.6.3 1.6.2 1.6.1 1.6.0 1.5.2 1.5.1 1.5.0 1.4.5 1.4.4 1.4.3 1.4.2 1.4.1 1.4.0 retired 1.4.0-rc.3 retired 1.4.0-rc.2 retired 1.4.0-rc.1 retired 1.4.0-rc.0 retired 1.3.2 1.3.1 1.3.0 1.2.0 1.1.0 1.0.0 1.0.0-rc.3 retired 1.0.0-rc.2 retired 1.0.0-rc.1 retired 1.0.0-rc.0 retired 0.13.1 0.13.0 0.12.2 retired 0.12.1 retired 0.12.0 retired 0.11.0 retired 0.10.0 retired 0.9.0 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.2 retired 0.5.1 retired 0.5.0 retired 0.4.2 retired 0.4.1 retired 0.4.0 retired 0.3.0 retired 0.2.1 retired 0.2.0 retired 0.1.3 retired 0.1.2 retired 0.1.1 retired 0.1.0 retired 0.0.20 retired 0.0.19 retired 0.0.18 retired 0.0.17 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.8 retired 0.0.7 retired 0.0.6 retired 0.0.5 retired 0.0.4 retired 0.0.3 retired

Common Locale Data Repository (CLDR) functions for Elixir to localize and format numbers, dates, lists, messages, languages, territories and units with support for over 700 locales for internationalized (i18n) and localized (L10N) applications.

Retired package: Deprecated

Current section

Files

Jump to
ex_cldr lib cldr number rbnf.ex
Raw

lib/cldr/number/rbnf.ex

defmodule Cldr.Rbnf do
@moduledoc """
Rules Base Number Formatting
During compilation we want to look up the configured locales
and generate the functions needed for only those locales.
For any other recognized locale we need a way to either fallback
to a known locale, or error exit (configurable)
"""
# import Xml
# alias Cldr.Rbnf.Rule
# defdelegate parse(filename), to: Xml
# @data_dir Application.get_env(:cldr, :data_dir) || "./priv/cldr"
# @rbnf_dir Path.join(@data_dir, "rbnf")
#
# @spec rbnf_dir :: String.t
# def rbnf_dir do
# @rbnf_dir
# end
#
# {:ok, files} = File.ls(@rbnf_dir)
# @locales Enum.map(files, &Path.basename(&1, ".xml"))
# @spec locales :: [String.t] | []
# def locales do
# @locales
# end
#
# @spec locale_path(binary) :: String.t
# def locale_path(locale) when is_binary(locale) do
# Path.join(rbnf_dir(), "/#{locale}.xml")
# end
#
# @spec rulegroups(Xml.xml_node, String.t) :: [String.t]
# def rulegroups(xml, path \\ "//rulesetGrouping") do
# Enum.map(all(xml, path), fn(xml_node) -> attr(xml_node, "type") end)
# end
#
# @spec rulesets(Xml.xml_node, binary) :: list([type: String.t, access: String.t])
# def rulesets(xml, rulegroup) do
# path = "//rulesetGrouping[@type='#{rulegroup}']/ruleset"
# Enum.map(all(xml, path), fn(xml_node) -> [attr(xml_node, "type"), attr(xml_node, "access") || "public"] end)
# end
#
# @spec rules(Xml.xml_node, String.t, String.t) :: [%Rule{}]
# def rules(xml, rulegroup, ruleset) do
# path = "//rulesetGrouping[@type='#{rulegroup}']/ruleset[@type='#{ruleset}']/rbnfrule"
# xml
# |> all(path)
# |> Enum.map(fn(xml_node) ->
# %Rule{name: attr(xml_node, "value"), radix: attr(xml_node, "radix"), definition: text(xml_node)}
# end)
# |> set_range
# end
#
# # If the current rule is numeric and the next rule is numeric then
# # the next rules value determines the upper bound of the validity
# # of the current rule.
# #
# # ie. "0": "one;"
# # "10": "ten;"
# #
# # Means that rule "0" is applied for values up to but not including "10"
# defp set_range([rule | [next_rule | rest]]) do
# [%Rule{rule | :range => range_from_next_rule(rule.name, next_rule.name)}] ++ set_range([next_rule] ++ rest)
# end
# defp set_range([rule | []]) do
# [%Rule{rule | :range => :undefined}]
# end
#
# defp range_from_next_rule(rule, next_rule) do
# with {_, ""} <- Integer.parse(rule),
# {_, ""} <- Integer.parse(next_rule)
# do
# next_rule
# else
# :error -> :undefined
# end
# end
end