Class: Prefatory::Storage::RedisProvider

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

Instance Method Summary collapse

Constructor Details

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

Returns a new instance of RedisProvider.



6
7
8
9
10
11
12
13
14
# File 'lib/prefatory/storage/redis_provider.rb', line 6

def initialize(options=nil, ttl=Prefatory.config.ttl,
               key_generator:  Prefatory.config.keys.generator.new(Prefatory.config.keys.prefix),
               marshaler: Prefatory.config.storage.marshaler)
  options = default_settings(options)
  @ttl = ttl
  @key_generator = key_generator
  @marshaler = marshaler
  @client = options ? Redis.new(options) : Redis.current
end

Instance Method Details

#delete(key) ⇒ Object



25
26
27
# File 'lib/prefatory/storage/redis_provider.rb', line 25

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

#get(key) ⇒ Object



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

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

#key?(key) ⇒ Boolean

Returns:

  • (Boolean)


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

def key?(key)
  @client.exists(prefix(key))
end

#next_key(obj = nil) ⇒ Object



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

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

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



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

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