module Mize::CacheMethods

Public Instance Methods

mize_cache_clear() click to toggle source

Clear cached values for all methods/functions of this object.

# File lib/mize/cache_methods.rb, line 6
def mize_cache_clear
  __mize_cache__.clear
  self
end
mize_cache_clear_name(name) click to toggle source

Clear all cached results for the method/function name.

# File lib/mize/cache_methods.rb, line 12
def mize_cache_clear_name(name)
  name = build_key_prefix(name)
  __mize_cache__.each_name do |n|
    n =~ %r{\A#{Regexp.quote(name)}/} and __mize_cache__.delete(n)
  end
  self
end

Private Instance Methods

__mize_cache__() click to toggle source

Return the cache object.

# File lib/mize/cache_methods.rb, line 28
def __mize_cache__
  if defined?(@__mize_cache__)
    @__mize_cache__
  else
    self.__mize_cache__ = Mize.default_cache.prototype
  end
end
__mize_cache__=(cache) click to toggle source

Set the cache object to cache.

# File lib/mize/cache_methods.rb, line 23
def __mize_cache__=(cache)
  @__mize_cache__ = cache
end
build_key(name, *args) click to toggle source

Build a name prefixed key for the arguments args.

# File lib/mize/cache_methods.rb, line 42
def build_key(name, *args)
  "#{build_key_prefix(name)}/#{Marshal.dump(args)}"
end
build_key_prefix(name) click to toggle source

Build a key prefix for name.

# File lib/mize/cache_methods.rb, line 37
def build_key_prefix(name)
  "mize/#{name}"
end
memoize_apply_visibility(id) { || ... } click to toggle source

Apply the visibility of method id to the wrapper method of this method.

# File lib/mize/cache_methods.rb, line 47
def memoize_apply_visibility(id)
  visibility = instance_eval do
    case
    when private_method_defined?(id)
      :private
    when protected_method_defined?(id)
      :protected
    end
  end
  yield
ensure
  visibility and __send__(visibility, id)
end