Module: Enumerable

Included in:
IPAddr
Defined in:
lib/ronin/extensions/enumerable.rb

Overview

Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)

This file is part of Ronin Support.

Ronin Support is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Ronin Support is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with Ronin Support. If not, see http://www.gnu.org/licenses/.

Instance Method Summary collapse

Instance Method Details

#map_hash {|element| ... } ⇒ Hash{Object => Object}

Maps the elements to a Hash.

Examples:

host_names = %w[www.wired.com www.google.com]
host_names.map_hash { |name| Resolv.getaddresses(name) }
# {"www.wired.com"=>["184.84.183.17", "184.84.183.91"],
#  "www.google.com"=>["173.194.33.18", "173.194.33.17", "173.194.33.19", "173.194.33.20", "173.194.33.16"]}

Yields:

  • (element)

    The given block will be passed each element. The return value from the block will be stored in the hash.

Yield Parameters:

  • element (Object)

    An element.

Returns:

  • (Hash{Object => Object})

    The hash of elements and their mappings.

Since:

  • 0.3.0



45
46
47
48
49
50
51
52
# File 'lib/ronin/extensions/enumerable.rb', line 45

def map_hash
  new_hash = Hash.new do |hash,key|
    hash[key] = yield(key)
  end

  each { |element| new_hash[element] }
  return new_hash
end