Module: Familia::Validation::CommandRecorder::Middleware

Defined in:
lib/familia/validation/command_recorder.rb

Overview

Enhanced middleware that integrates with DatabaseLogger

Class Method Summary collapse

Class Method Details

.call(command, config) ⇒ Object



309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
# File 'lib/familia/validation/command_recorder.rb', line 309

def self.call(command, config)
  return yield unless CommandRecorder.recording?

  timestamp = Time.now
  start_time = Process.clock_gettime(Process::CLOCK_MONOTONIC, :microsecond)

  result = yield

  duration = Process.clock_gettime(Process::CLOCK_MONOTONIC, :microsecond) - start_time

  CommandRecorder.record_command(
    command: command[0],
    args: command[1..-1],
    result: result,
    timestamp: timestamp,
    duration_us: duration,
    context: {
      config: config,
      thread_id: Thread.current.object_id
    }
  )

  result
end