0.69
Low commit activity in last 3 years
A long-lived project that still receives updates
VersionSorter is a C extension that does fast sorting of large sets of version strings.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
 Dependencies
 Project Readme

Version sorter

Fast sorting of strings representing version numbers.

require 'version_sorter'

versions = ["1.0.9", "2.0", "1.0.10", "1.0.3", "2.0.pre"]

VersionSorter.sort(versions)
#=> 1.0.3
#=> 1.0.9
#=> 1.0.10
#=> 2.0.pre
#=> 2.0

You can also sort arrays of arbitrary objects by providing a block.

VersionSorter.sort(tags) { |tag| tag.name }

Library API:

VersionSorter.sort(versions)   #=> sorted array
VersionSorter.rsort(versions)  #=> reverse sorted array

VersionSorter.sort!(versions)  # sort array in place
VersionSorter.rsort!(versions) # reverse sort array in place

VersionSorter.compare(version_a, version_b) #=> positive or negative number depending on which way to sort 

http://github.com/blog/521-speedy-version-sorting