Sha256: 809bbc5b078427cdcc272873683868ba85835a7b4f576920daaed9e47a882172

Contents?: true

Size: 417 Bytes

Versions: 17

Compression:

Stored size: 417 Bytes

Contents

# frozen_string_literal: true

class ReeArray::GroupBy
  include Ree::FnDSL

  fn :group_by

  contract(
    Or[ArrayOf[Any], Enumerable], Block => HashOf[Any, ArrayOf[Any]]
  )
  def call(list, &proc)
    result = {}

    list.each do |element|
      key = yield(element)

      if result.has_key?(key)
        result[key] << element
      else
        result[key] = [element]
      end
    end

    result
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
ree_lib-1.1.1 lib/ree_lib/packages/ree_array/package/ree_array/functions/group_by.rb
ree_lib-1.1.0 lib/ree_lib/packages/ree_array/package/ree_array/functions/group_by.rb
ree_lib-1.0.124 lib/ree_lib/packages/ree_array/package/ree_array/functions/group_by.rb
ree_lib-1.0.123 lib/ree_lib/packages/ree_array/package/ree_array/functions/group_by.rb
ree_lib-1.0.122 lib/ree_lib/packages/ree_array/package/ree_array/functions/group_by.rb
ree_lib-1.0.121 lib/ree_lib/packages/ree_array/package/ree_array/functions/group_by.rb
ree_lib-1.0.120 lib/ree_lib/packages/ree_array/package/ree_array/functions/group_by.rb
ree_lib-1.0.119 lib/ree_lib/packages/ree_array/package/ree_array/functions/group_by.rb
ree_lib-1.0.118 lib/ree_lib/packages/ree_array/package/ree_array/functions/group_by.rb
ree_lib-1.0.117 lib/ree_lib/packages/ree_array/package/ree_array/functions/group_by.rb
ree_lib-1.0.116 lib/ree_lib/packages/ree_array/package/ree_array/functions/group_by.rb
ree_lib-1.0.115 lib/ree_lib/packages/ree_array/package/ree_array/functions/group_by.rb
ree_lib-1.0.114 lib/ree_lib/packages/ree_array/package/ree_array/functions/group_by.rb
ree_lib-1.0.113 lib/ree_lib/packages/ree_array/package/ree_array/functions/group_by.rb
ree_lib-1.0.112 lib/ree_lib/packages/ree_array/package/ree_array/functions/group_by.rb
ree_lib-1.0.111 lib/ree_lib/packages/ree_array/package/ree_array/functions/group_by.rb
ree_lib-1.0.110 lib/ree_lib/packages/ree_array/package/ree_array/functions/group_by.rb