Class: TieredCaching::CacheLine
- Inherits:
-
Object
- Object
- TieredCaching::CacheLine
- Defined in:
- lib/tiered_caching/cache_line.rb
Instance Method Summary collapse
- #<<(tier) ⇒ Object
- #append_local_cache(tier) ⇒ Object
- #clear(depth = -1)) ⇒ Object
- #clear_local ⇒ Object
- #delete(key) ⇒ Object
- #get(key) ⇒ Object
- #getset(key, &block) ⇒ Object
-
#initialize(name) ⇒ CacheLine
constructor
A new instance of CacheLine.
- #set(key, value = nil) ⇒ Object
Constructor Details
#initialize(name) ⇒ CacheLine
Returns a new instance of CacheLine.
4 5 6 7 8 |
# File 'lib/tiered_caching/cache_line.rb', line 4 def initialize(name) @name = name @tiers = [] @local_tiers = [] end |
Instance Method Details
#<<(tier) ⇒ Object
10 11 12 |
# File 'lib/tiered_caching/cache_line.rb', line 10 def <<(tier) tiers << tier end |
#append_local_cache(tier) ⇒ Object
14 15 16 17 |
# File 'lib/tiered_caching/cache_line.rb', line 14 def append_local_cache(tier) @local_tiers << tier self << tier end |
#clear(depth = -1)) ⇒ Object
39 40 41 42 43 44 45 |
# File 'lib/tiered_caching/cache_line.rb', line 39 def clear(depth = -1) if depth == -1 tiers.map(&:clear) else tiers[0...depth].map(&:clear) end end |
#clear_local ⇒ Object
35 36 37 |
# File 'lib/tiered_caching/cache_line.rb', line 35 def clear_local @local_tiers.map(&:clear) end |
#delete(key) ⇒ Object
31 32 33 |
# File 'lib/tiered_caching/cache_line.rb', line 31 def delete(key) @tiers.map { |tier| tier.delete(key) } end |
#get(key) ⇒ Object
23 24 25 |
# File 'lib/tiered_caching/cache_line.rb', line 23 def get(key) internal_get(key) end |
#getset(key, &block) ⇒ Object
27 28 29 |
# File 'lib/tiered_caching/cache_line.rb', line 27 def getset(key, &block) get(key) || set(key, &block) end |
#set(key, value = nil) ⇒ Object
19 20 21 |
# File 'lib/tiered_caching/cache_line.rb', line 19 def set(key, value = nil) (value || yield).tap { |value| tiers.map { |store| store.set(key, value) } } end |