MrNatural

A utility to compare strings in natural sort order.

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

Installation

def deps do
  [
    {:mr_natural, "~> 0.1.0"}
  ]
end

Usage

To compare two strings directly.

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

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

Utilizing Enum.sort/2

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

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

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

The docs can be found at https://hexdocs.pm/mr_natural.