Class: Hoodoo::TransientStore::Base
- Inherits:
-
Object
- Object
- Hoodoo::TransientStore::Base
- Defined in:
- lib/hoodoo/transient_store/transient_store/base.rb
Overview
Base class for Hoodoo::TransientStore plugins. This is in effect just a template / abstract class, providing a source-level guideline for plug-in authors. See also out-of-the-box existing plug-ins as worked examples.
Direct Known Subclasses
Instance Method Summary collapse
-
#close ⇒ Object
Base class template for the plug-in’s back-end implementation of Hoodoo::TransientStore#close - see that for details.
-
#delete(key:) ⇒ Object
Base class template for the plug-in’s back-end implementation of Hoodoo::TransientStore#delete - see that for details.
-
#get(key:) ⇒ Object
Base class template for the plug-in’s back-end implementation of Hoodoo::TransientStore#get - see that for details.
-
#initialize(storage_host_uri:, namespace:) ⇒ Base
constructor
Base class template for a constructor.
-
#set(key:, payload:, maximum_lifespan:) ⇒ Object
Base class template for the plug-in’s back-end implementation of Hoodoo::TransientStore#set - see that for details.
Constructor Details
#initialize(storage_host_uri:, namespace:) ⇒ Base
Base class template for a constructor. Subclasses should try to establish a connection with their storage engine(s) here and raise exceptions if things go wrong.
storage_host_uri
-
The engine-dependent connection URI. See Hoodoo::TransientStore::new for details.
namespace
-
The storage key namespace to use, as a String. See Hoodoo::TransientStore::new for details.
29 30 31 32 |
# File 'lib/hoodoo/transient_store/transient_store/base.rb', line 29 def initialize( storage_host_uri:, namespace: ) @storage_host_uri = storage_host_uri @namespace = namespace end |
Instance Method Details
#close ⇒ Object
Base class template for the plug-in’s back-end implementation of Hoodoo::TransientStore#close - see that for details.
Any exception raised will be ignored by Hoodoo::TransientStore#close.
75 76 77 |
# File 'lib/hoodoo/transient_store/transient_store/base.rb', line 75 def close raise 'Subclasses must implement Hoodoo::TransientStore::Base#close' end |
#delete(key:) ⇒ Object
Base class template for the plug-in’s back-end implementation of Hoodoo::TransientStore#delete - see that for details.
The implementation is free to raise an exception if an error is encountered while trying to get the data - this will be caught and ignored by Hoodoo::TransientStore#delete. Otherwise return true
on success or false
for failures of unknown origin.
66 67 68 |
# File 'lib/hoodoo/transient_store/transient_store/base.rb', line 66 def delete( key: ) raise 'Subclasses must implement Hoodoo::TransientStore::Base#delete' end |
#get(key:) ⇒ Object
Base class template for the plug-in’s back-end implementation of Hoodoo::TransientStore#get - see that for details. Returns nil
if no data is found for the given key, or if data is explicitly nil
.
The implementation is free to raise an exception if an error is encountered while trying to get the data - this will be caught and nil
returned by Hoodoo::TransientStore#get.
54 55 56 |
# File 'lib/hoodoo/transient_store/transient_store/base.rb', line 54 def get( key: ) raise 'Subclasses must implement Hoodoo::TransientStore::Base#get' end |
#set(key:, payload:, maximum_lifespan:) ⇒ Object
Base class template for the plug-in’s back-end implementation of Hoodoo::TransientStore#set - see that for details.
The implementation is free to raise an exception if an error is encountered while trying to set the data - this will be caught and returned by Hoodoo::TransientStore#set. Otherwise return true
on success or false
for failures of unknown origin.
42 43 44 |
# File 'lib/hoodoo/transient_store/transient_store/base.rb', line 42 def set( key:, payload:, maximum_lifespan: ) raise 'Subclasses must implement Hoodoo::TransientStore::Base#set' end |