Class: Prefatory::Storage::MemcachedProvider

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

Constant Summary collapse

DEFAULT_SERVER =
'127.0.0.1:11211'.freeze
DEFAULT_OPTIONS =
{namespace: Prefatory.config.keys.prefix, compress: true, cache_nils: true}

Instance Method Summary collapse

Constructor Details

#initialize(options = nil, ttl = nil, key_generator: Prefatory.config.keys.generator.new, marshaler: Prefatory.config.storage.marshaler) ⇒ MemcachedProvider

Returns a new instance of MemcachedProvider.



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

def initialize(options = nil, ttl = nil,
               key_generator: Prefatory.config.keys.generator.new,
               marshaler: Prefatory.config.storage.marshaler)
  @ttl = ttl
  @key_generator = key_generator
  @marshaler = marshaler
  @client = Dalli::Client.new(default_servers(options), default_options(options))
end

Instance Method Details

#delete(key) ⇒ Object



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

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

#get(key) ⇒ Object



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

def get(key)
  value = @client.get(prefix(key))
  value ? @marshaler.load(value) : value
end

#key?(key) ⇒ Boolean

Returns:

  • (Boolean)


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

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

#next_key(obj = nil) ⇒ Object



36
37
38
# File 'lib/prefatory/storage/memcached_provider.rb', line 36

def next_key(obj = nil)
  @key_generator.key(obj)
end

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



18
19
20
# File 'lib/prefatory/storage/memcached_provider.rb', line 18

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