Class: Dbwatcher::Services::TimelineDataService

Inherits:
Object
  • Object
show all
Includes:
EnhancementUtilities, EntryBuilder, MetadataBuilder
Defined in:
lib/dbwatcher/services/timeline_data_service.rb,
lib/dbwatcher/services/timeline_data_service/entry_builder.rb,
lib/dbwatcher/services/timeline_data_service/metadata_builder.rb,
lib/dbwatcher/services/timeline_data_service/enhancement_utilities.rb

Overview

Timeline Data Service for processing session data into chronological timeline format

This service transforms session changes into a chronologically ordered timeline with enhanced metadata for visualization and filtering.

Examples:

service = TimelineDataService.new(session)
result = service.call
timeline = result[:timeline]
 = result[:metadata]

Defined Under Namespace

Modules: EnhancementUtilities, EntryBuilder, MetadataBuilder

Instance Method Summary collapse

Constructor Details

#initialize(session) ⇒ TimelineDataService

Initialize the timeline data service

Parameters:

  • session (Session)

    session object containing changes data



26
27
28
29
30
# File 'lib/dbwatcher/services/timeline_data_service.rb', line 26

def initialize(session)
  @session = session
  @timeline_entries = []
  @start_time = Time.current
end

Instance Method Details

#callHash

Process session data into timeline format

Returns:

  • (Hash)

    processed timeline data with metadata



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/dbwatcher/services/timeline_data_service.rb', line 35

def call
  Rails.logger.info("Processing timeline data for session #{@session.id}")

  validate_session_data
  build_timeline_entries
  sort_chronologically
  
  result = build_result

  Rails.logger.info(
    "Timeline processing completed for session #{@session.id} (#{@timeline_entries.length} entries)"
  )

  result
rescue StandardError => e
  Rails.logger.error("Timeline processing failed for session #{@session.id}: #{e.message}")
  build_error_result(e)
end