class ZendeskAPI::LRUCache
Attributes
size[RW]
Public Class Methods
new(size = 10)
click to toggle source
# File lib/zendesk_api/lru_cache.rb, line 7 def initialize(size = 10) @size = size @store = {} @lru = [] end
Public Instance Methods
fetch(key) { || ... }
click to toggle source
# File lib/zendesk_api/lru_cache.rb, line 25 def fetch(key) if @store.has_key? key read key else write key, yield end end
read(key)
click to toggle source
# File lib/zendesk_api/lru_cache.rb, line 20 def read(key) set_lru(key) @store[key] end
write(key, value)
click to toggle source
# File lib/zendesk_api/lru_cache.rb, line 13 def write(key, value) @store[key] = value set_lru(key) @store.delete(@lru.pop) if @lru.size > @size value end
Private Instance Methods
set_lru(key)
click to toggle source
# File lib/zendesk_api/lru_cache.rb, line 35 def set_lru(key) @lru.unshift(@lru.delete(key) || key) end