Sha256: 58995f1d0b8b0e1b0a77e5592ffc36f9e899a2aadb1e4767aff64b2b71a7de95
Contents?: true
Size: 1.14 KB
Versions: 1
Compression:
Stored size: 1.14 KB
Contents
# encoding: utf-8 module IceNine class Freezer # A freezer class for handling Object instances class Object < self # Deep Freeze an object # # @example # object = IceNine.deep_freeze(Object.new) # # @param [Object] object # @param [RecursionGuard] recursion_guard # # @return [Object] # # @api public def self.deep_freeze(object, recursion_guard = RecursionGuard.new) freeze_instance_variables(object, recursion_guard) object.freeze end # Handle freezing the object's instance variables # # @param [Object] object # @param [RecursionGuard] recursion_guard # # @return [undefined] # # @api private 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 private_class_method :freeze_instance_variables end # class Object BasicObject = Object end # class Freezer end # module IceNine
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ice_nine-0.10.0 | lib/ice_nine/freezer/object.rb |