Sha256: 57d105cf0de2a1d2cf7932abba9cc46138c8d2149497ebd25b622d80f402ea69

Contents?: true

Size: 550 Bytes

Versions: 4

Compression:

Stored size: 550 Bytes

Contents

# frozen_string_literal: true

require "thread"

module Dassets; end

# This is a thread-safe in-memory cache.
class Dassets::MemCache
  def initialize
    @hash = {}
    @write_mutex = ::Mutex.new
  end

  def keys
    @hash.keys
  end

  def [](key)
    @hash[key]
  end

  def []=(key, value)
    @write_mutex.synchronize{ @hash[key] = value }
  end
end

# This is a no-op cache object. This is the default cache in use and "turns
# off caching.
class Dassets::NoCache
  def keys
    []
  end

  def [](key)
  end

  def []=(key, value)
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
dassets-0.15.3 lib/dassets/cache.rb
dassets-0.15.2 lib/dassets/cache.rb
dassets-0.15.1 lib/dassets/cache.rb
dassets-0.15.0 lib/dassets/cache.rb