Sha256: 9768892efeefc47c0c7c1a65f34050b3c1809099b574a0faef42a2d7244de1ef

Contents?: true

Size: 862 Bytes

Versions: 26

Compression:

Stored size: 862 Bytes

Contents

module Enumerable

  # Produces a hash from an Enumerable with index for keys.
  #
  #   enu = 'a'..'b'
  #   enu.to_h  #=> { 0=>'a', 1=>'b' }
  #
  # If a block is passed, the hash values will be set by 
  # calling the block with the enumerated element and it's
  # counter.
  #
  #   enu = 'a'..'b'
  #   enu.to_h{ |e,i| e }  #=> { 0=>'a', 1=>'b' }
  #
  # See also #graph.
  #
  def to_h( &blk )
    h = {}
    if block_given?
      each_with_index{ |e,i| h[i] = blk.call(e,i) }
    else
      each_with_index{ |e,i| h[i] = e }
    end
    h
  end

end


#  _____         _
# |_   _|__  ___| |_
#   | |/ _ \/ __| __|
#   | |  __/\__ \ |_
#   |_|\___||___/\__|
#
=begin test

  require 'test/unit'

  class TCEnumerable < Test::Unit::TestCase

    def test_to_h
      a = [:a,:b,:c]
      assert_equal( { 0=>:a, 1=>:b, 2=>:c }, a.to_h )
    end

  end

=end

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
facets-1.0.3 packages/core/lib/facet/enumerable/to_h.rb
facets-0.9.0 lib/nano/enumerable/to_h.rb
facets-1.0.0 lib/facet/enumerable/to_h.rb
facets-1.3.0 lib/facets/core/enumerable/to_h.rb
facets-1.1.0 lib/facet/enumerable/to_h.rb
facets-1.2.0 lib/facets/core/enumerable/to_h.rb
facets-1.2.1 lib/facets/core/enumerable/to_h.rb
facets-1.3.2 lib/facets/core/enumerable/to_h.rb
facets-1.3.1 lib/facets/core/enumerable/to_h.rb
facets-1.3.3 lib/facets/core/enumerable/to_h.rb
facets-1.4.1 lib/facets/core/enumerable/to_h.rb
facets-1.4.0 lib/facets/core/enumerable/to_h.rb
facets-1.4.2 lib/facets/core/enumerable/to_h.rb
facets-1.4.3 lib/facets/core/enumerable/to_h.rb
facets-1.4.4 lib/facets/core/enumerable/to_h.rb
facets-1.4.5 lib/facets/core/enumerable/to_h.rb
facets-1.7.0 lib/facets/core/enumerable/to_h.rb
facets-1.7.30 lib/facets/core/enumerable/to_h.rb
facets-1.7.38 lib/facets/core/enumerable/to_h.rb
facets-1.7.46 lib/facets/core/enumerable/to_h.rb