Module: RSMP::SXL::Processing::NaturalSort
- Defined in:
- lib/rsmp/sxl/processing/natural_sort.rb
Overview
Natural sorting for identifiers containing decimal digit sequences.
Class Method Summary collapse
Class Method Details
.key(value) ⇒ Object
6 7 8 9 10 11 12 13 14 |
# File 'lib/rsmp/sxl/processing/natural_sort.rb', line 6 def self.key(value) value.scan(/\d+|\D+/).map do |part| if part.match?(/\A\d+\z/) [0, part.to_i, part.length] else [1, part] end end end |
.sort(values) ⇒ Object
16 17 18 |
# File 'lib/rsmp/sxl/processing/natural_sort.rb', line 16 def self.sort(values) values.sort_by { |value| key(value) } end |