Module: Caching::InstanceMethods

Defined in:
lib/caching.rb

Instance Method Summary collapse

Instance Method Details

#cache_storageObject



21
22
23
# File 'lib/caching.rb', line 21

def cache_storage
  @cache_storage ||= Storage.new
end

#cached_methods_keysObject



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

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

#clear_cache(*methods) ⇒ Object



29
30
31
32
33
34
35
# File 'lib/caching.rb', line 29

def clear_cache(*methods)
  method_keys = cached_methods_keys.
    select{ |m,_| methods.include? m }.
    flat_map{ |_,keys| keys }

  cache_storage.clear *method_keys
end