Sha256: 9622d2302097d64328b1744d52666696c8612fd3921b358f8d8d9ccfdfcef9a1
Contents?: true
Size: 1.14 KB
Versions: 1
Compression:
Stored size: 1.14 KB
Contents
require 'dalli' module Prefatory module Storage class MemcachedProvider include Prefatory::Keys DEFAULT_SERVER = '127.0.0.1:11211'.freeze DEFAULT_OPTIONS = {namespace: 'prefatory', compress: true} def initialize(options, ttl=nil, key_prefix=nil) @ttl = ttl @key_prefix = key_prefix @client = Dalli::Client.new(default_servers(options), default_options(options)) end def set(key, value, ttl=nil) @client.set(key, value, ttl||@ttl) end def get(key) @client.get(key) end def delete(key) @client.delete(key) end def key?(key) v = @client.fetch(key){:does_not_exists} v != :does_not_exists end def next_key(obj=nil) build_key(obj, @client.incr(build_key(obj, nil, @key_prefix), 1, nil, 0), @key_prefix) end private def default_servers(options) return options[:servers] if options&.fetch(:servers) {false} DEFAULT_SERVER end def default_options(options) return options.except(:servers) if options DEFAULT_OPTIONS end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
prefatory-0.1.1 | lib/prefatory/storage/memcached_provider.rb |