Class: Prefatory::Storage::TestProvider

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

Overview

Used by Specs. This is not safe for production (in any way!) You have been warned.

Instance Method Summary collapse

Constructor Details

#initialize(_ttl = nil, key_generator: Prefatory.config.keys.generator.new, marshaler: Prefatory.config.storage.marshaler) ⇒ TestProvider

Returns a new instance of TestProvider.



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

def initialize(_ttl = nil,
               key_generator:  Prefatory.config.keys.generator.new,
               marshaler: Prefatory.config.storage.marshaler)
  @hash = {}
  @key_generator = key_generator
  @marshaler = marshaler
end

Instance Method Details

#delete(key) ⇒ Object



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

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

#get(key) ⇒ Object



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

def get(key)
  value = @hash.fetch(key){nil}
  value ? @marshaler.load(value) : value
end

#key?(key) ⇒ Boolean

Returns:

  • (Boolean)


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

def key?(key)
  @hash.key?(key)
end

#next_key(obj = nil) ⇒ Object



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

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

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



14
15
16
# File 'lib/prefatory/storage/test_provider.rb', line 14

def set(key, value, _ttl=nil)
  @hash.store(key, @marshaler.dump(value))
end