Sha256: 38f2e153974070bf415488384b349aebe4b260f08773311699bece30ef5eb5e9

Contents?: true

Size: 615 Bytes

Versions: 25

Compression:

Stored size: 615 Bytes

Contents

# -*- encoding : utf-8 -*-

require 'phrase'

class Phrase::Cache
  
  attr_accessor :lifetime
  
  def initialize(args={})
    @store = {}
    @lifetime = args.fetch(:lifetime, Phrase.cache_lifetime)
  end
  
  def cached?(cache_key)
    @store.has_key?(cache_key) && !expired?(cache_key)
  end
  
  def get(cache_key)
    begin
      @store.fetch(cache_key)[:payload]
    rescue
      nil
    end
  end
  
  def set(cache_key, value)
    @store[cache_key] = {timestamp: Time.now, payload: value}
  end
  
private
  def expired?(cache_key)
    @store.fetch(cache_key)[:timestamp] < (Time.now - @lifetime)
  end
end

Version data entries

25 entries across 25 versions & 1 rubygems

Version Path
phrase-0.3.2 lib/phrase/cache.rb
phrase-0.3.1 lib/phrase/cache.rb
phrase-0.3.0 lib/phrase/cache.rb
phrase-0.2.5 lib/phrase/cache.rb
phrase-0.2.4 lib/phrase/cache.rb