The default class that handles freezing objects
Look up the Freezer descendant by object type
@example
freezer_class = IceNine::Freezer[mod]
@param [Module] mod
@return [Class<Freezer>]
@api public
# File lib/ice_nine/freezer.rb, line 27 def self.[](mod) @freezer_cache[mod] end
Deep freeze an object with a particular Freezer
@see IceNine.deep_freeze
@param [Object] object
@return [Object]
@api public
# File lib/ice_nine/freezer.rb, line 40 def self.deep_freeze(object) guarded_deep_freeze(object, RecursionGuard::ObjectSet.new) end
Deep freeze an object with a particular Freezer
@see IceNine.deep_freeze!
@param [Object] object
@return [Object]
@api public
# File lib/ice_nine/freezer.rb, line 53 def self.deep_freeze!(object) guarded_deep_freeze(object, RecursionGuard::Frozen.new) end
Look up a constant in the namespace
@param [String] namespace
@return [Module]
returned if a matching constant is found
@return [nil]
returned if no matching constant is found
@api private
# File lib/ice_nine/freezer.rb, line 86 def self.const_lookup(namespace) const_get(namespace) if const_defined?(namespace, nil) end
Deep freeze an object with a particular Freezer and RecursionGuard
@param [Object] object @param [RecursionGuard] recursion_guard
@return [Object]
@api private
# File lib/ice_nine/freezer.rb, line 98 def self.guarded_deep_freeze(object, recursion_guard) recursion_guard.guard(object) do Freezer[object.class].guarded_deep_freeze(object, recursion_guard) end end
Generated with the Darkfish Rdoc Generator 2.