Sha256: b23e03f202027fd4afa9b0e5b0807292e65e30fb016791c225b815ff9983b0a1
Contents?: true
Size: 652 Bytes
Versions: 141
Compression:
Stored size: 652 Bytes
Contents
module ZendeskAPI # http://codesnippets.joyent.com/posts/show/12329 # @private class ZendeskAPI::LRUCache attr_accessor :size def initialize(size = 10) @size = size @store = {} @lru = [] end def write(key, value) @store[key] = value set_lru(key) @store.delete(@lru.pop) if @lru.size > @size value end def read(key) set_lru(key) @store[key] end def fetch(key) if @store.has_key? key read key else write key, yield end end private def set_lru(key) @lru.unshift(@lru.delete(key) || key) end end end
Version data entries
141 entries across 141 versions & 2 rubygems