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.4.14 lib/phrase/cache.rb
phrase-0.4.13 lib/phrase/cache.rb
phrase-0.4.12 lib/phrase/cache.rb
phrase-0.4.11 lib/phrase/cache.rb
phrase-0.4.10 lib/phrase/cache.rb
phrase-0.4.9 lib/phrase/cache.rb
phrase-0.4.8 lib/phrase/cache.rb
phrase-0.4.7 lib/phrase/cache.rb
phrase-0.4.6 lib/phrase/cache.rb
phrase-0.4.5 lib/phrase/cache.rb
phrase-0.4.4 lib/phrase/cache.rb
phrase-0.4.3 lib/phrase/cache.rb
phrase-0.4.2 lib/phrase/cache.rb
phrase-0.4.1 lib/phrase/cache.rb
phrase-0.4.0 lib/phrase/cache.rb
phrase-0.3.7 lib/phrase/cache.rb
phrase-0.3.6 lib/phrase/cache.rb
phrase-0.3.5 lib/phrase/cache.rb
phrase-0.3.4 lib/phrase/cache.rb
phrase-0.3.3 lib/phrase/cache.rb