Sha256: 96a3bf07edd71fe8ac28b0d6c6e0f46511110174ac7114ae8ebb7e2e35f10d20

Contents?: true

Size: 953 Bytes

Versions: 5

Compression:

Stored size: 953 Bytes

Contents

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

class Card::Cache::Persistent
  attr_reader :prefix

  def initialize opts
    @store = opts[:store]
    self.system_prefix =
      opts[:prefix] || Card::Cache.system_prefix(opts[:class])
  end

  def system_prefix= system_prefix
    @system_prefix = system_prefix
    @prefix = "#{system_prefix}/"
  end

  def read key
    @store.read(@prefix + key)
  end

  def write_variable key, variable, value
    if @store && (object = @store.read key)
      object.instance_variable_set "@#{variable}", value
      @store.write key, object
    end
    value
  end

  def write key, value
    @store.write(@prefix + key, value)
  end

  def fetch key, &block
    @store.fetch @prefix + key, &block
  end

  def delete key
    @store.delete @prefix + key
  end

  def reset
    @store.clear
  rescue => e
    Rails.logger.debug "Problem clearing cache: #{e.message}"
  end

  def exist? key
    @store.exist? @prefix + key
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
card-1.17.4 lib/card/cache/persistent.rb
card-1.17.3 lib/card/cache/persistent.rb
card-1.17.2 lib/card/cache/persistent.rb
card-1.17.1 lib/card/cache/persistent.rb
card-1.17.0 lib/card/cache/persistent.rb