Class: Tairu::Cache::Memory

Inherits:
Object
  • Object
show all
Defined in:
lib/tairu/cache/memory.rb

Instance Method Summary collapse

Constructor Details

#initialize(options = nil) ⇒ Memory

Returns a new instance of Memory.



4
5
6
# File 'lib/tairu/cache/memory.rb', line 4

def initialize(options=nil)
  @tiles = {}
end

Instance Method Details

#add(name, coord, tile, age = 300) ⇒ Object



8
9
10
11
12
13
# File 'lib/tairu/cache/memory.rb', line 8

def add(name, coord, tile, age=300)
  key = Tairu::Cache::Key.new(name, coord)
  expire = Time.now + age
  @tiles[key] = {tile: tile, expire: expire}
  purge_expired
end

#get(name, coord) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/tairu/cache/memory.rb', line 15

def get(name, coord)
  key = Tairu::Cache::Key.new(name, coord)
  tile = @tiles[key]

  return nil if tile.nil?

  if tile[:expire] < Time.now
    tile[:tile]
  else
    @tiles.delete(key)
    return nil
  end
end

#purge_expiredObject



29
30
31
# File 'lib/tairu/cache/memory.rb', line 29

def purge_expired
  @tiles.delete_if {|k,v| v[:expire] > Time.now}
end