class IceNine::Freezer::Object
A freezer class for handling Object instances
Public Class Methods
guarded_deep_freeze(object, recursion_guard)
click to toggle source
Deep Freeze an object
@example
object = IceNine.deep_freeze(Object.new)
@param [Object] object @param [RecursionGuard] recursion_guard
@return [Object]
# File lib/ice_nine/freezer/object.rb, line 17 def self.guarded_deep_freeze(object, recursion_guard) return object unless object.respond_to?(:freeze) object.freeze freeze_instance_variables(object, recursion_guard) object 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 33 def self.freeze_instance_variables(object, recursion_guard) object.instance_variables.each do |ivar_name| Freezer.guarded_deep_freeze( object.instance_variable_get(ivar_name), recursion_guard ) end end