Class: Prefatory::Storage::MemcachedProvider
- Inherits:
-
Object
- Object
- Prefatory::Storage::MemcachedProvider
- 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
- #delete(key) ⇒ Object
- #get(key) ⇒ Object
-
#initialize(options = nil, ttl = nil, key_generator: Prefatory.config.keys.generator.new, marshaler: Prefatory.config.storage.marshaler) ⇒ MemcachedProvider
constructor
A new instance of MemcachedProvider.
- #key?(key) ⇒ Boolean
- #next_key(obj = nil) ⇒ Object
- #set(key, value, ttl = nil) ⇒ Object
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( = 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(), ()) 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
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 |