module Enumerable
Copyright © 2006-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
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 <www.gnu.org/licenses/>.
Public Instance Methods
Maps the elements to a Hash.
@yield [element]
The given block will be passed each element. The return value from the block will be stored in the hash.
@yieldparam [Object] element
An element.
@return [Hash{Object => Object}]
The hash of elements and their mappings.
@example
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"]}
@since 0.3.0
@api public
# File lib/ronin/support/core_ext/enumerable.rb, line 43 def map_hash new_hash = Hash.new do |hash,key| hash[key] = yield(key) end each { |element| new_hash[element] } return new_hash end