Parent

Files

IceNine::Freezer

The default class that handles freezing objects

Constants

BasicObject

Public Class Methods

[](mod) click to toggle source

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(object) click to toggle source

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!(object) click to toggle source

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

Protected Class Methods

const_lookup(namespace) click to toggle source

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
guarded_deep_freeze(object, recursion_guard) click to toggle source

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

[Validate]

Generated with the Darkfish Rdoc Generator 2.