Module: Caching::InstanceMethods

Defined in:
lib/caching.rb

Instance Method Summary collapse

Instance Method Details

#cache_storageObject



24
25
26
# File 'lib/caching.rb', line 24

def cache_storage
  @cache_storage ||= Storage.new
end

#cached_methods_keysObject



28
29
30
# File 'lib/caching.rb', line 28

def cached_methods_keys
  @cached_methods_keys ||= Hash.new {|h,k| h[k] = Set.new}
end

#clear_cache(*methods) ⇒ Object



32
33
34
35
36
37
38
# File 'lib/caching.rb', line 32

def clear_cache(*methods)
  method_keys = cached_methods_keys.
    select{ |m,_| methods.include? m }.
    flat_map{ |_,keys| keys.to_a }
  cache_storage.clear *method_keys
  method_keys.each { |k| cached_methods_keys.delete k }
end