module DeepCover::Memoize::ClassMethods

Public Instance Methods

memoize(*methods) click to toggle source
# File lib/deep_cover/memoize.rb, line 35
      def memoize(*methods)
        @memoized = (memoized | methods).freeze

        methods.each do |method|
          memoizer_module.module_eval <<-RUBY, __FILE__, __LINE__ + 1
            def #{method}                    # def foo
              @_#{method} ||= super.freeze   #   @_foo ||= super.freeze
            end                              # end
          RUBY
        end
      end
memoized() click to toggle source
# File lib/deep_cover/memoize.rb, line 23
def memoized
  @memoized ||= [].freeze
end
memoizer_module() click to toggle source
# File lib/deep_cover/memoize.rb, line 27
def memoizer_module
  @memoizer_module ||= begin
    mod = const_set(:Memoizer, Module.new)
    prepend mod
    mod
  end
end