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 =

Gem version

'0.11.2'.freeze

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)


37
38
39
# File 'lib/ice_nine.rb', line 37

def self.deep_freeze(object)
  Freezer.deep_freeze(object)
end

.deep_freeze!(object) ⇒ Object

Deep Freeze an object

This method uses a faster algorithm that will assume objects that are frozen? do not need to be frozen deeply. Use this method when object contains no shallowly frozen objects that need deep freezing.

Examples:

IceNine.deep_freeze!(['a', 'b']).map(&:frozen?) # [true, true]
IceNine.deep_freeze!(['a', 'b'].freeze).map(&:frozen?) # [false, false]

Parameters:

  • object (Object)

Returns:

  • (Object)


58
59
60
# File 'lib/ice_nine.rb', line 58

def self.deep_freeze!(object)
  Freezer.deep_freeze!(object)
end