module Hamster::Immutable::ClassMethods
@private
Public Instance Methods
memoize(*names)
click to toggle source
# File lib/hamster/immutable.rb, line 17 def memoize(*names) include MemoizeMethods unless include?(MemoizeMethods) names.each do |name| original_method = "__hamster_immutable_#{name}__" alias_method original_method, name class_eval " def #{name} if @__hamster_immutable_memory__.instance_variable_defined?(:@#{name}) @__hamster_immutable_memory__.instance_variable_get(:@#{name}) else @__hamster_immutable_memory__.instance_variable_set(:@#{name}, #{original_method}) end end ", __FILE__, __LINE__ end end
new(*args)
click to toggle source
Calls superclass method
# File lib/hamster/immutable.rb, line 13 def new(*args) super.__send__(:immutable!) end