1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
# encoding: utf-8
module Adamantium
# Module fake frozen object
#
# This behavior sometimes is needed when a mutable
# object needs to be referenced in an inmutable object tree.
#
# If you have to use `memoize :foo, freezer: :noop` to often you might
# want to include this module into your class.
#
# Use wisely! A rule of thumb only a tiny fraction of your objects
# typically deserves this.
#
module Mutable
# Noop freezer
#
# @example
# class DoesNotGetFrozen
# include Adamantium::Mutable
# end
#
# instance = DoesNotGetFrozen
# instance.freeze # => instance
#
# @return [self]
#
# @api public
#
def freeze
self
end
# Test if object is frozen
#
# @example
# class DoesNotGetFrozen
# include Adamantium::Mutable
# end
#
# instance = DoesNotGetFrozen
# instance.frozen? # => true
#
# @return [true]
#
# @api public
#
def frozen?
true
end
end # Mutable
end # Adamantium
|