Module: DeepSort::DeepSortArray
- Defined in:
- lib/deepsort.rb
Overview
inject this method into the Array class to add deep sort functionality to Arrays
Instance Method Summary collapse
- #deep_sort ⇒ Object
- #deep_sort! ⇒ Object
- #deep_sort_by(&block) ⇒ Object
- #deep_sort_by!(&block) ⇒ Object
Instance Method Details
#deep_sort ⇒ Object
19 20 21 |
# File 'lib/deepsort.rb', line 19 def deep_sort deep_sort_by { |obj| obj } end |
#deep_sort! ⇒ Object
23 24 25 |
# File 'lib/deepsort.rb', line 23 def deep_sort! deep_sort_by! { |obj| obj } end |
#deep_sort_by(&block) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/deepsort.rb', line 27 def deep_sort_by(&block) self.map do |value| if value.respond_to? :deep_sort_by value.deep_sort_by &block elsif value.respond_to? :sort_by value.sort_by &block else value end end.sort_by &block end |
#deep_sort_by!(&block) ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/deepsort.rb', line 39 def deep_sort_by!(&block) self.map! do |value| if value.respond_to? :deep_sort_by! value.deep_sort_by! &block elsif value.respond_to? :sort_by! value.sort_by! &block else value end end.sort_by! &block end |