Module: Hitnmiss::Repository::CacheManagement::InstanceMethods
- Defined in:
- lib/hitnmiss/repository/cache_management.rb
Instance Method Summary collapse
- #all ⇒ Object
- #clear ⇒ Object
- #delete(*args) ⇒ Object
- #get(*args) ⇒ Object
- #prime(*args) ⇒ Object
- #prime_all ⇒ Object
Instance Method Details
#all ⇒ Object
26 27 28 |
# File 'lib/hitnmiss/repository/cache_management.rb', line 26 def all Hitnmiss.driver(self.class.driver).all(self.class.keyspace) end |
#clear ⇒ Object
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_all ⇒ Object
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 |