Class: IceNine::Freezer::Hash

Inherits:
Object show all
Defined in:
lib/ice_nine/freezer/hash.rb,
lib/ice_nine/freezer/hash/state.rb

Overview

A freezer class for handling Hash objects

Defined Under Namespace

Classes: State

Constant Summary

Constants inherited from IceNine::Freezer

BasicObject

Class Method Summary collapse

Methods inherited from IceNine::Freezer

[], const_lookup

Class Method Details

.deep_freeze(hash, recursion_guard = RecursionGuard.new) ⇒ Hash

Deep Freeze a Hash

Examples:

hash = IceNine::Freezer::Hash.deep_freeze('a' => '1', 'b' => '2')
hash.keys.select(&:frozen?)    # => ['a', 'b']
hash.values.select(&:frozen?)  # => ['1', '2']

Parameters:

Returns:



22
23
24
25
26
27
28
29
# File 'lib/ice_nine/freezer/hash.rb', line 22

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