Class: TieredCaching::CacheLine

Inherits:
Object
  • Object
show all
Defined in:
lib/tiered_caching/cache_line.rb

Instance Method Summary collapse

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_localObject



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