Sha256: bee205d0b717d8ef3a400ab5a5885fac2c4e3f971630fda5a40312ca9958670e
Contents?: true
Size: 900 Bytes
Versions: 1
Compression:
Stored size: 900 Bytes
Contents
# encoding: utf-8 module IceNine class Freezer # A freezer class for handling Hash objects class Hash < Object # Deep Freeze a Hash # # @example # hash = IceNine::Freezer::Hash.deep_freeze('a' => '1', 'b' => '2') # hash.keys.select(&:frozen?) # => ['a', 'b'] # hash.values.select(&:frozen?) # => ['1', '2'] # # @param [Hash] hash # @param [RecursionGuard] recursion_guard # # @return [Hash] # # @api public def self.deep_freeze(hash, recursion_guard = RecursionGuard.new) IceNine.deep_freeze(hash.default_proc || hash.default, recursion_guard) hash.each do |key, value| IceNine.deep_freeze(key, recursion_guard) IceNine.deep_freeze(value, recursion_guard) end super end end # class Hash end # class Freezer end # module IceNine
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ice_nine-0.10.0 | lib/ice_nine/freezer/hash.rb |