Class: Prefatory::Storage::MemcachedProvider

Inherits:
Object
  • Object
show all
Includes:
Keys
Defined in:
lib/prefatory/storage/memcached_provider.rb

Constant Summary collapse

DEFAULT_SERVER =
'127.0.0.1:11211'.freeze
DEFAULT_OPTIONS =
{namespace: 'prefatory', compress: true}

Constants included from Keys

Keys::INCR_KEY

Instance Method Summary collapse

Methods included from Keys

#build_key

Constructor Details

#initialize(options, ttl = nil, key_prefix = nil) ⇒ MemcachedProvider

Returns a new instance of MemcachedProvider.



10
11
12
13
14
# File 'lib/prefatory/storage/memcached_provider.rb', line 10

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

Instance Method Details

#delete(key) ⇒ Object



24
25
26
# File 'lib/prefatory/storage/memcached_provider.rb', line 24

def delete(key)
  @client.delete(key)
end

#get(key) ⇒ Object



20
21
22
# File 'lib/prefatory/storage/memcached_provider.rb', line 20

def get(key)
  @client.get(key)
end

#key?(key) ⇒ Boolean

Returns:

  • (Boolean)


28
29
30
31
# File 'lib/prefatory/storage/memcached_provider.rb', line 28

def key?(key)
  v = @client.fetch(key){:does_not_exists}
  v != :does_not_exists
end

#next_key(obj = nil) ⇒ Object



33
34
35
# File 'lib/prefatory/storage/memcached_provider.rb', line 33

def next_key(obj=nil)
  build_key(obj, @client.incr(build_key(obj, nil, @key_prefix), 1, nil, 0), @key_prefix)
end

#set(key, value, ttl = nil) ⇒ Object



16
17
18
# File 'lib/prefatory/storage/memcached_provider.rb', line 16

def set(key, value, ttl=nil)
  @client.set(key, value, ttl||@ttl)
end