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(options = {}) ⇒ Object
- #deep_sort!(options = {}) ⇒ Object
- #deep_sort_by(options = {}, &block) ⇒ Object
- #deep_sort_by!(options = {}, &block) ⇒ Object
Instance Method Details
#deep_sort(options = {}) ⇒ Object
19 20 21 |
# File 'lib/deepsort.rb', line 19 def deep_sort( = {}) deep_sort_by() { |obj| obj } end |
#deep_sort!(options = {}) ⇒ Object
23 24 25 |
# File 'lib/deepsort.rb', line 23 def deep_sort!( = {}) deep_sort_by!() { |obj| obj } end |
#deep_sort_by(options = {}, &block) ⇒ Object
27 28 29 30 31 32 33 34 35 36 |
# File 'lib/deepsort.rb', line 27 def deep_sort_by( = {}, &block) array = self.map do |value| if value.respond_to?(:deep_sort_by) value.deep_sort_by(, &block) else value end end [:array] == false ? array : array.sort_by(&block) end |
#deep_sort_by!(options = {}, &block) ⇒ Object
38 39 40 41 42 43 44 45 46 47 |
# File 'lib/deepsort.rb', line 38 def deep_sort_by!( = {}, &block) array = self.map! do |value| if value.respond_to?(:deep_sort_by!) value.deep_sort_by!(, &block) else value end end [:array] == false ? array : array.sort_by!(&block) end |