Sha256: 0a36187c18586f2171726323b4a3bfcd77979ab3175786992193561d5e1c1783
Contents?: true
Size: 1.72 KB
Versions: 1
Compression:
Stored size: 1.72 KB
Contents
# encoding: utf-8 # # This file is part of the elephas gem. Copyright (C) 2013 and above Shogun <shogun@cowtech.it>. # Licensed under the MIT license, which can be found at http://www.opensource.org/licenses/mit-license.php. # module Elephas module Backends # This is a Ruby on Rails backend, which uses Rails.cache. class RubyOnRails < Base # Reads a value from the cache. # # @param key [String] The key to lookup. # @return [Entry|NilClass] The read value or `nil`. def read(key) exists?(key) ? Rails.cache.read(key) : nil end # Writes a value to the cache. # # @param key [String] The key to associate the value with. # @param value [Object] The value to write. **Setting a value to `nil` **doesn't** mean *deleting* the value. # @param options [Hash] A list of options for writing. # @see Elephas::Cache.setup_options # @return [Object] The value itself. def write(key, value, options = {}) entry = ::Elephas::Entry.ensure(value, key, options) entry.refresh Rails.cache.write(key, entry, expires_in: entry.ttl) entry end # Deletes a value from the cache. # # @param key [String] The key to delete. # @return [Boolean] `true` if the key was in the cache, `false` otherwise. def delete(key) rv = Rails.cache.exist?(key) Rails.cache.delete(key) rv end # Checks if a key exists in the cache. # # @param key [String] The key to lookup. # @return [Boolean] `true` if the key is in the cache, `false` otherwise. def exists?(key) Rails.cache.exist?(key) && Rails.cache.read(key).valid?(self) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
elephas-4.2.1 | lib/elephas/backends/ruby_on_rails.rb |