Sha256: 2ccb6d1045793850afa0fa40fdd6864d1604073842436c17e9d9d5b8ab252fa5
Contents?: true
Size: 872 Bytes
Versions: 3
Compression:
Stored size: 872 Bytes
Contents
#!/usr/bin/env ruby # -*- encoding: utf-8 -*- # Copyright Steffie Dorn <mail@muflax.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.5.5 | lib/muflax/hash.rb |
muflax-0.5.3 | lib/muflax/hash.rb |
muflax-0.5.2 | lib/muflax/hash.rb |