Class: Tairu::Cache::Memory
- Inherits:
-
Object
- Object
- Tairu::Cache::Memory
- Defined in:
- lib/tairu/cache/memory.rb
Instance Method Summary collapse
- #add(name, coord, tile, age = 300) ⇒ Object
- #get(name, coord) ⇒ Object
-
#initialize(options = nil) ⇒ Memory
constructor
A new instance of Memory.
- #purge_expired ⇒ Object
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(=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_expired ⇒ Object
29 30 31 |
# File 'lib/tairu/cache/memory.rb', line 29 def purge_expired @tiles.delete_if {|k,v| v[:expire] > Time.now} end |