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