class I18n::Backend::Http::I18n::Backend::Http::I18n::Backend::Http::LRUCache
Public Class Methods
new(size = 10)
click to toggle source
# File lib/i18n/backend/http/lru_cache.rb, line 6 def initialize(size = 10) @size = size @store = {} @lru = [] end
Public Instance Methods
[](key)
click to toggle source
# File lib/i18n/backend/http/lru_cache.rb, line 18 def [](key) set_lru(key) @store[key] end
[]=(key, value)
click to toggle source
# File lib/i18n/backend/http/lru_cache.rb, line 12 def []=(key, value) @store[key] = value set_lru(key) @store.delete(@lru.pop) if @lru.size > @size end
keys()
click to toggle source
# File lib/i18n/backend/http/lru_cache.rb, line 23 def keys @store.keys end
values()
click to toggle source
# File lib/i18n/backend/http/lru_cache.rb, line 27 def values @store.values end
Private Instance Methods
set_lru(key)
click to toggle source
# File lib/i18n/backend/http/lru_cache.rb, line 33 def set_lru(key) @lru.unshift(@lru.delete(key) || key) end