Ruby: sort UTF8 Strings alphabetical via Enumerable extension
Clone or download
Latest commit f8eea71 Aug 5, 2017

Readme.md

Adds sort_alphabetical and sort_alphabetical_by to Enumberable(Array/Hash...), which sorts UTF8 Strings alphabetical. This sorting is done by placing variants on the same level as base character (A comes before Ä but ÄA comes before AB).

Setup

gem install sort_alphabetical

Usage

['b','á'].sort_alphabetical == ['á','b']
[['b',1],['á',2]].sort_alphabetical_by(&:first) == [['á',2],['b',1]]

SortAlphabetical.normalize('á') == 'a'

Alternative

Use ICU

collator = ICU::Collation::Collator.new("nb")
array.sort! { |a,b| collator.compare(a, b) }

TODO

  • Sort non-ascii-convertables like ß(ss), œ(oe) , fi(fi), see Ligatures
  • Integrate natural sorting e.g. ['a11', 'a2'] => ['a2', 'a11'] like NaturalSort

Contributors

=======

Michael Grosser
michael@grosser.it
License: MIT
Build Status