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/module.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 Classes: Freezer, RecursionGuard
Constant Summary collapse
- VERSION =
Unreleased gem version
'0.10.0'.freeze
Class Method Summary collapse
-
.deep_freeze(object, recursion_guard = RecursionGuard.new) ⇒ Object
Deep Freeze an object.
Class Method Details
.deep_freeze(object, recursion_guard = RecursionGuard.new) ⇒ Object
Deep Freeze an object
40 41 42 43 44 45 |
# File 'lib/ice_nine.rb', line 40 def self.deep_freeze(object, recursion_guard = RecursionGuard.new) return object if object.frozen? recursion_guard.guard(object.__id__) do Freezer[object.class].deep_freeze(object, recursion_guard) end end |