Cldr.Collation (Cldr Collation v0.7.0) View Source
Implements the Unicode collation rules based on the CLDR root collation which in turn is based upon the Unicode DUCET table.
Link to this section Summary
Functions
Compares two strings according to the Unicode collation rules with the CLDR root collation which is based upon the Unicode DUCET table.
Sorts a list of strings according to the Unicode collation rules with the CLDR root collation which is based upon the Unicode DUCET table.
Link to this section Types
Specs
comparison() :: :lt | :eq | :gt
Specs
options() :: [{:casing, :sensitive | :insensitive}]
Link to this section Functions
Specs
compare(string_1 :: String.t(), string_2 :: String.t(), options()) :: comparison()
Compares two strings according to the Unicode collation rules with the CLDR root collation which is based upon the Unicode DUCET table.
Arguments
string_1
is an at:String.t()
string_2
is an at:String.t()
options
is a keyword list of options
Options
casing
is either:sensitive
or:insensitive
indicating if collation is to be case sensitive or not. The default is:insensitive
Returns
- Either of
:lt
,:eq
or:gt
signifying ifstring_1
is less than, equal to or greater thanstring_2
Examples
iex> Cldr.Collation.compare "á", "A", casing: :sensitive
:gt
iex> Cldr.Collation.compare "á", "A", casing: :insensitive
:eq
Specs
Sorts a list of strings according to the Unicode collation rules with the CLDR root collation which is based upon the Unicode DUCET table.
This collation does not aim to provide precisely correct ordering for each language and script; tailoring would be required for correct language handling in almost all cases.
The goal is instead to have all the other characters, those that are not tailored, show up in a reasonable order.
Arguments
strings
is an enumerable of typet:String.t()
options
is a keyword list of options
Options
casing
is either:sensitive
or:insensitive
indicating if collation is to be case sensitive or not. The default is:insensitive
Returns
- An ordered list of
t:String.t()
Examples
iex> Cldr.Collation.sort ["á", "b", "A"]
["á", "A", "b"]
iex> Cldr.Collation.sort ["á", "b", "A"], casing: :sensitive
["A", "á", "b"]