Sha256: 1bef9d4e936ceb9bde73e296d8786c8d52777dd8b8dabab2da01ee8b9743f560

Contents?: true

Size: 625 Bytes

Versions: 14

Compression:

Stored size: 625 Bytes

Contents

module MoreCoreExtensions
  module HashSortBang
    def sort!(*args, &block)
      sorted = sort(*args, &block)
      sorted = self.class[sorted.to_a] unless sorted.instance_of?(self.class)
      replace(sorted)
    end
  end

  module HashSortByBang
    def sort_by!(*args, &block)
      sorted = sort_by(*args, &block)
      sorted = self.class[sorted.to_a] unless sorted.instance_of?(self.class)
      replace(sorted)
    end
  end
end

Hash.send(:include, MoreCoreExtensions::HashSortBang) unless Hash.method_defined?(:sort!)
Hash.send(:include, MoreCoreExtensions::HashSortByBang) unless Hash.method_defined?(:sort_by!)

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
more_core_extensions-4.5.1 lib/more_core_extensions/core_ext/hash/sorting.rb
more_core_extensions-4.5.0 lib/more_core_extensions/core_ext/hash/sorting.rb
more_core_extensions-4.4.0 lib/more_core_extensions/core_ext/hash/sorting.rb
more_core_extensions-4.3.1 lib/more_core_extensions/core_ext/hash/sorting.rb
more_core_extensions-4.3.0 lib/more_core_extensions/core_ext/hash/sorting.rb
more_core_extensions-4.2.0 lib/more_core_extensions/core_ext/hash/sorting.rb
more_core_extensions-4.1.0 lib/more_core_extensions/core_ext/hash/sorting.rb
more_core_extensions-4.0.0 lib/more_core_extensions/core_ext/hash/sorting.rb
more_core_extensions-3.8.0 lib/more_core_extensions/core_ext/hash/sorting.rb
more_core_extensions-3.7.0 lib/more_core_extensions/core_ext/hash/sorting.rb
more_core_extensions-3.6.0 lib/more_core_extensions/core_ext/hash/sorting.rb
more_core_extensions-3.5.0 lib/more_core_extensions/core_ext/hash/sorting.rb
more_core_extensions-3.4.0 lib/more_core_extensions/core_ext/hash/sorting.rb
more_core_extensions-3.3.0 lib/more_core_extensions/core_ext/hash/sorting.rb