module ForgetMeNot::Memoizable

Allows the memoization of method calls

Public Class Methods

included(base) click to toggle source
# File lib/forget-me-not/memoizable.rb, line 5
def included(base)
  base.extend(ClassMethods)
end
storage_builder() click to toggle source
# File lib/forget-me-not/memoizable.rb, line 81
def storage_builder
  @storage_builder ||= Proc.new { HashCache.new }
end
storage_builder=(builder) click to toggle source
# File lib/forget-me-not/memoizable.rb, line 85
def storage_builder=(builder)
  @storage_builder = builder
end

Public Instance Methods

fetch_from_storage(key, &block) click to toggle source
# File lib/forget-me-not/memoizable.rb, line 72
def fetch_from_storage(key, &block)
  storage.fetch(key, &block)
end
log(message) click to toggle source
# File lib/forget-me-not/memoizable.rb, line 68
def log(message)
  ForgetMeNot.logger.info "key: #{memoize_key}" if ForgetMeNot.logger
end
storage() click to toggle source
# File lib/forget-me-not/memoizable.rb, line 76
def storage
  @storage ||= Memoizable.storage_builder.call
end