Sha256: 85721bd8b878c9935684b65de75dbd710aefc2b1261a1886079c818b17a4f9d8
Contents?: true
Size: 879 Bytes
Versions: 3
Compression:
Stored size: 879 Bytes
Contents
#!/usr/bin/env ruby # -*- encoding: utf-8 -*- # Copyright Freya Dorn <freya.siv.dorn@gmail.com>, 2013 # License: GNU GPL 3 <http://www.gnu.org/copyleft/gpl.html> # simple auto-vivifying hash # TODO support nested hashes def vivaHash default=[] hash = if default.duplicable? ; Hash.new{|h, k| h[k] = default.dup} else ; Hash.new{|h, k| h[k] = default} end hash end # missing methods class Hash def transform_keys return enum_for(:transform_keys) { size } unless block_given? result = {} each_key do |key| result[yield(key)] = self[key] end result end unless method_defined? :transform_keys def transform_keys! return enum_for(:transform_keys!) { size } unless block_given? keys.each do |key| self[yield(key)] = delete(key) end self end unless method_defined? :transform_keys! end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
muflax-0.7.0 | lib/muflax/hash.rb |
muflax-0.6.1 | lib/muflax/hash.rb |
muflax-0.6.0 | lib/muflax/hash.rb |