module DeepSort::DeepSortArray

inject this method into the Array class to add deep sort functionality to Arrays

Public Instance Methods

deep_sort(options = {}) click to toggle source
# File lib/deepsort.rb, line 19
def deep_sort(options = {})
  deep_sort_by(options) { |obj| obj }
end
deep_sort!(options = {}) click to toggle source
# File lib/deepsort.rb, line 23
def deep_sort!(options = {})
  deep_sort_by!(options) { |obj| obj }
end
deep_sort_by(options = {}, &block) click to toggle source
# File lib/deepsort.rb, line 27
def deep_sort_by(options = {}, &block)
  array = self.map do |value|
    if value.respond_to?(:deep_sort_by)
      value.deep_sort_by(options, &block)
    else
      value
    end
  end
  options[:array] == false ? array : array.sort_by(&block)
end
deep_sort_by!(options = {}, &block) click to toggle source
# File lib/deepsort.rb, line 38
def deep_sort_by!(options = {}, &block)
  array = self.map! do |value|
    if value.respond_to?(:deep_sort_by!)
      value.deep_sort_by!(options, &block)
    else
      value
    end
  end
  options[:array] == false ? array : array.sort_by!(&block)
end