Class: EventSystem::Storage::Base
- Inherits:
-
Object
- Object
- EventSystem::Storage::Base
- Defined in:
- lib/event_system/storage/base.rb
Overview
Abstract base class for event storage implementations All concrete event store classes should implement these methods
Direct Known Subclasses
Instance Method Summary collapse
-
#available? ⇒ Boolean
Check if the storage is available.
-
#close ⇒ void
Close the event store and release resources.
-
#current_session ⇒ String?
Get the current session ID.
-
#list_sessions ⇒ Array<String>
List available sessions.
-
#load_session(session_id = nil) ⇒ Array<EventSystem::Event>
Load all events from a session.
-
#query(options = {}) ⇒ Array<EventSystem::Event>
Query for events based on options.
-
#stats ⇒ Hash
Get storage statistics.
-
#store(event) ⇒ void
Store an event.
Instance Method Details
#available? ⇒ Boolean
Check if the storage is available
49 50 51 |
# File 'lib/event_system/storage/base.rb', line 49 def available? true end |
#close ⇒ void
This method returns an undefined value.
Close the event store and release resources
43 44 45 |
# File 'lib/event_system/storage/base.rb', line 43 def close # Optional method, default implementation does nothing end |
#current_session ⇒ String?
Get the current session ID
37 38 39 |
# File 'lib/event_system/storage/base.rb', line 37 def current_session raise NotImplementedError, "#{self.class} must implement current_session" end |
#list_sessions ⇒ Array<String>
List available sessions
31 32 33 |
# File 'lib/event_system/storage/base.rb', line 31 def list_sessions raise NotImplementedError, "#{self.class} must implement list_sessions" end |
#load_session(session_id = nil) ⇒ Array<EventSystem::Event>
Load all events from a session
25 26 27 |
# File 'lib/event_system/storage/base.rb', line 25 def load_session(session_id = nil) raise NotImplementedError, "#{self.class} must implement load_session(session_id)" end |
#query(options = {}) ⇒ Array<EventSystem::Event>
Query for events based on options
18 19 20 |
# File 'lib/event_system/storage/base.rb', line 18 def query( = {}) raise NotImplementedError, "#{self.class} must implement query(options)" end |
#stats ⇒ Hash
Get storage statistics
55 56 57 58 59 60 61 |
# File 'lib/event_system/storage/base.rb', line 55 def stats { type: self.class.name, available: available?, sessions: list_sessions.length } end |
#store(event) ⇒ void
This method returns an undefined value.
Store an event
11 12 13 |
# File 'lib/event_system/storage/base.rb', line 11 def store(event) raise NotImplementedError, "#{self.class} must implement store(event)" end |