ice_nine

Deep freeze ruby objects

Gem Version Build Status Dependency Status Code Climate Coverage Status

Examples

# Deep freezes most kinds of objects
hash   = IceNine.deep_freeze('a' => '1')
array  = IceNine.deep_freeze([ 'a', 'b', 'c' ])
range  = IceNine.deep_freeze('a'..'z')
struct = IceNine.deep_freeze(Struct.new(:a, :b).new('a', 'b'))
object = IceNine.deep_freeze(Object.new)
user   = IceNine.deep_freeze(User.new(name: 'dkubb'))

# Add core extension for Object#deep_freeze (not required by default)
require 'ice_nine/core_ext/object'

object = Object.new
object.deep_freeze

# Faster deep freeze that skips walking frozen objects
object = IceNine.deep_freeze!(Object.new)

Contributing

See CONTRIBUTING.md for details.

Copyright © 2012-2013 Dan Kubb. See LICENSE for details.