Module: IceNine

Defined in:
lib/ice_nine.rb,
lib/ice_nine/freezer.rb,
lib/ice_nine/version.rb,
lib/ice_nine/freezer/hash.rb,
lib/ice_nine/freezer/array.rb,
lib/ice_nine/freezer/range.rb,
lib/ice_nine/freezer/object.rb,
lib/ice_nine/freezer/struct.rb,
lib/ice_nine/freezer/symbol.rb,
lib/ice_nine/core_ext/object.rb,
lib/ice_nine/freezer/numeric.rb,
lib/ice_nine/freezer/rubinius.rb,
lib/ice_nine/freezer/nil_class.rb,
lib/ice_nine/freezer/no_freeze.rb,
lib/ice_nine/freezer/hash/state.rb,
lib/ice_nine/freezer/true_class.rb,
lib/ice_nine/freezer/false_class.rb,
lib/ice_nine/support/recursion_guard.rb

Overview

Base IceNine module

Defined Under Namespace

Modules: CoreExt, RecursionGuard Classes: Freezer

Constant Summary collapse

VERSION =

Current gem version

'0.7.0'

Class Method Summary collapse

Class Method Details

.deep_freeze(object) ⇒ Object

Deep Freeze an object

Examples:

object = IceNine.deep_freeze(object)

Parameters:

  • object (Object)

Returns:

  • (Object)


38
39
40
41
42
43
# File 'lib/ice_nine.rb', line 38

def self.deep_freeze(object)
  return object if object.frozen?
  RecursionGuard.guard(object.object_id) do
    Freezer[object.class].deep_freeze(object)
  end
end