class Kisyo::Cache

Constants

CACHE_SIZE

Attributes

keys[R]
m[R]
values[R]

Public Class Methods

new() click to toggle source
# File lib/kisyo/cache.rb, line 5
def initialize
  @keys = []
  @values = {}
  @m = Mutex.new
end

Public Instance Methods

get(key) click to toggle source
# File lib/kisyo/cache.rb, line 11
def get(key)
  values[key]
end
set(key, value) click to toggle source
# File lib/kisyo/cache.rb, line 15
def set(key, value)
  m.synchronize do
    if values[key]
      return
    end

    keys << key
    values[key] = value

    if keys.size > CACHE_SIZE
      oldest_key = keys.shift
      values.delete(oldest_key)
    end
  end
end