/sort_alphabetical

Ruby: sort UTF8 Strings alphabetical via Enumerable extension

Primary LanguageRuby

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).

Requirements

  • Ruby >= 1.9

Setup

  • As gem: sudo 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

=======

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