class IceNine::Freezer::Object

A freezer class for handling Object instances

Public Class Methods

deep_freeze(object, recursion_guard = RecursionGuard.new) click to toggle source

Deep Freeze an object

@example

object = IceNine.deep_freeze(Object.new)

@param [Object] object @param [RecursionGuard] recursion_guard

@return [Object]

@api public

# File lib/ice_nine/freezer/object.rb, line 19
def self.deep_freeze(object, recursion_guard = RecursionGuard.new)
  freeze_instance_variables(object, recursion_guard)
  object.freeze
end

Private Class Methods

freeze_instance_variables(object, recursion_guard) click to toggle source

Handle freezing the object's instance variables

@param [Object] object @param [RecursionGuard] recursion_guard

@return [undefined]

@api private

# File lib/ice_nine/freezer/object.rb, line 32
def self.freeze_instance_variables(object, recursion_guard)
  object.instance_variables.each do |ivar_name|
    IceNine.deep_freeze(
      object.instance_variable_get(ivar_name),
      recursion_guard
    )
  end
end