A freezer class for handling Hash objects
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
# File lib/ice_nine/freezer/hash.rb, line 21 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