Sha256: a3fd5e36b83245b552c7a5604b80bc29d344c30b0256fa1412db0c23da6da7e8

Contents?: true

Size: 665 Bytes

Versions: 6

Compression:

Stored size: 665 Bytes

Contents

# frozen_string_literal: true

require_relative './multi_sender'

# Invoca ::Enumerable extensions
module Enumerable
  def map_and_find(not_found = nil)
    each do |x|
      val = yield(x)
      return val if val
    end
    not_found
  end

  def map_with_index(res = [])
    each_with_index do |x, i|
      res << yield(x, i)
    end
    res
  end

  def build_hash(res = {})
    each do |x|
      pair = block_given? ? yield(x) : x
      res[pair.first] = pair.last if pair
    end
    res
  end

  def map_hash(res = {})
    each do |x|
      v = yield x
      res[x] = v
    end
    res
  end

  def *
    Invoca::Utils::MultiSender.new(self, :map)
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
invoca-utils-0.6.0 lib/invoca/utils/enumerable.rb
invoca-utils-0.5.1 lib/invoca/utils/enumerable.rb
invoca-utils-0.5.0 lib/invoca/utils/enumerable.rb
invoca-utils-0.4.1 lib/invoca/utils/enumerable.rb
invoca-utils-0.4.0 lib/invoca/utils/enumerable.rb
invoca-utils-0.3.0 lib/invoca/utils/enumerable.rb