1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
# encoding: utf-8
require 'ice_nine/support/recursion_guard'
require 'ice_nine/freezer'
require 'ice_nine/freezer/object'
require 'ice_nine/freezer/no_freeze'
require 'ice_nine/freezer/array'
require 'ice_nine/freezer/false_class'
require 'ice_nine/freezer/hash'
require 'ice_nine/freezer/hash/state'
require 'ice_nine/freezer/nil_class'
require 'ice_nine/freezer/module'
require 'ice_nine/freezer/numeric'
require 'ice_nine/freezer/range'
require 'ice_nine/freezer/rubinius'
require 'ice_nine/freezer/struct'
require 'ice_nine/freezer/symbol'
require 'ice_nine/freezer/true_class'
require 'ice_nine/version'
# Base IceNine module
module IceNine
# Deep Freeze an object
#
# @example
# object = IceNine.deep_freeze(object)
#
# @param [Object] object
#
# @return [Object]
#
# @api public
def self.deep_freeze(object)
Freezer.deep_freeze(object)
end
# 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.
#
# @example
# IceNine.deep_freeze!(['a', 'b']).map(&:frozen?) # [true, true]
#
# @example
# IceNine.deep_freeze!(['a', 'b'].freeze).map(&:frozen?) # [false, false]
#
# @param [Object] object
#
# @return [Object]
#
# @api public
def self.deep_freeze!(object)
Freezer.deep_freeze!(object)
end
end # IceNine
|