NaturalOrder (natural_order v0.3.0) View Source

A utility to compare strings in natural sort order.

Natural sort order is useful for humans. By default sorting Strings is a lot differently.

Examples of comparing two strings

iex> NaturalOrder.compare("String2", "String11")
:lt

iex> NaturalOrder.compare("String11", "String2")
:gt

iex> NaturalOrder.compare("string", "STRING")
:gt

iex> NaturalOrder.compare("string", "string")
:eq

Examples with sorting

iex> Enum.sort(["String2", "String11", "String3"], NaturalOrder)
["String2", "String3",  "String11"]

iex> Enum.sort(["String2", "String11", "String3"], {:asc, NaturalOrder})
["String2", "String3",  "String11"]

iex> Enum.sort(["String2", "String11", "String3"], {:desc, NaturalOrder})
["String11", "String3",  "String2"]

Link to this section Summary

Functions

Compares two strings in natural sort order.

Link to this section Functions

Link to this function

compare(string1, string2)

View Source

Specs

compare(String.t(), String.t()) :: :lt | :eq | :gt

Compares two strings in natural sort order.

Examples

iex> NaturalOrder.compare("String2", "String11")
:lt

iex> NaturalOrder.compare("String11", "String2")
:gt

iex> NaturalOrder.compare("string", "STRING")
:gt

iex> NaturalOrder.compare("string", "string")
:eq