Module: Hitnmiss::Repository::CacheManagement::InstanceMethods

Defined in:
lib/hitnmiss/repository/cache_management.rb

Instance Method Summary collapse

Instance Method Details

#allObject



26
27
28
# File 'lib/hitnmiss/repository/cache_management.rb', line 26

def all
  Hitnmiss.driver(self.class.driver).all(self.class.keyspace)
end

#clearObject



18
19
20
# File 'lib/hitnmiss/repository/cache_management.rb', line 18

def clear
  Hitnmiss.driver(self.class.driver).clear(self.class.keyspace)
end

#delete(*args) ⇒ Object



22
23
24
# File 'lib/hitnmiss/repository/cache_management.rb', line 22

def delete(*args)
  Hitnmiss.driver(self.class.driver).delete(generate_key(*args))
end

#get(*args) ⇒ Object



46
47
48
49
50
51
52
53
54
55
# File 'lib/hitnmiss/repository/cache_management.rb', line 46

def get(*args)
  hit_or_miss = get_from_cache(*args)
  if hit_or_miss.is_a?(Hitnmiss::Driver::Miss)
    return prime(*args)
  elsif hit_or_miss.is_a?(Hitnmiss::Driver::Hit)
    return hit_or_miss.value
  else
    raise UnsupportedDriverResponse.new("Driver '#{self.class.driver.inspect}' did not return an object of the support types (Hitnmiss::Driver::Hit, Hitnmiss::Driver::Miss)")
  end
end

#prime(*args) ⇒ Object



40
41
42
43
44
# File 'lib/hitnmiss/repository/cache_management.rb', line 40

def prime(*args)
  cacheable_entity = fetch(*args)
  cache_entity(args, cacheable_entity)
  return cacheable_entity.value
end

#prime_allObject



30
31
32
33
34
35
36
37
38
# File 'lib/hitnmiss/repository/cache_management.rb', line 30

def prime_all
  cacheable_entities = fetch_all(self.class.keyspace)
  return cacheable_entities.map do |cacheable_entity_hash|
    args = cacheable_entity_hash.fetch(:args)
    cacheable_entity = cacheable_entity_hash.fetch(:entity)
    cache_entity(args, cacheable_entity)
    cacheable_entity.value
  end
end