Class: EventSystem::Storage::Base

Inherits:
Object
  • Object
show all
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

FileStore, MemoryStore

Instance Method Summary collapse

Instance Method Details

#available?Boolean

Check if the storage is available

Returns:

  • (Boolean)

    True if storage is ready for use



49
50
51
# File 'lib/event_system/storage/base.rb', line 49

def available?
  true
end

#closevoid

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_sessionString?

Get the current session ID

Returns:

  • (String, nil)

    Current session ID

Raises:

  • (NotImplementedError)


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_sessionsArray<String>

List available sessions

Returns:

  • (Array<String>)

    List of session IDs

Raises:

  • (NotImplementedError)


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

Parameters:

  • session_id (String, nil) (defaults to: nil)

    Session ID to load, or current session if nil

Returns:

Raises:

  • (NotImplementedError)


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

Parameters:

  • options (Hash) (defaults to: {})

    Query options (type, time range, limit, etc.)

Returns:

Raises:

  • (NotImplementedError)


18
19
20
# File 'lib/event_system/storage/base.rb', line 18

def query(options = {})
  raise NotImplementedError, "#{self.class} must implement query(options)"
end

#statsHash

Get storage statistics

Returns:

  • (Hash)

    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

Parameters:

Raises:

  • (NotImplementedError)


11
12
13
# File 'lib/event_system/storage/base.rb', line 11

def store(event)
  raise NotImplementedError, "#{self.class} must implement store(event)"
end