Sha256: 4a3b40047ec2a716839ac315f37b8ab6e310c513bd34f62b09b56e5466264325

Contents?: true

Size: 837 Bytes

Versions: 1

Compression:

Stored size: 837 Bytes

Contents

module Prefatory
  module Storage
    # Used by Specs. This is not safe for production (in any way!) You have been warned.
    class TestProvider

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

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

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

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

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

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

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
prefatory-0.1.2 lib/prefatory/storage/test_provider.rb