Module: Caching::InstanceMethods

Defined in:
lib/caching.rb

Instance Method Summary collapse

Instance Method Details

#cache_storageObject



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

def cache_storage
  @cache_storage ||= Storage.new
end

#cached_methods_keysObject



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

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

#clear_cache(*methods) ⇒ Object



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

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