Sha256: 25db3514f989c6bd08819be5efb96f7545755f9ee1f740c389e37580729ccebd

Contents?: true

Size: 853 Bytes

Versions: 1

Compression:

Stored size: 853 Bytes

Contents

# frozen_string_literal: true

class Solid::Result::EventLogsRecord < ActiveRecord::Base
  self.table_name = 'solid_result_event_logs'

  class Listener
    include ::Solid::Result::EventLogs::Listener

    def on_finish(event_logs:)
        metadata = event_logs[:metadata]
        root_name = event_logs.dig(:records, 0, :root, :name) || 'Unknown'

        Solid::Result::EventLogsRecord.create(
          root_name: root_name,
          trace_id: metadata[:trace_id],
          version: event_logs[:version],
          duration: metadata[:duration],
          ids: metadata[:ids],
          records: event_logs[:records]
        )
    rescue ::StandardError => e
      err = "#{e.message} (#{e.class}); Backtrace: #{e.backtrace.join(', ')}"

      ::Kernel.warn "Error on Solid::Result::EventLogsRecord::Listener#on_finish: #{err}"
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
solid-result-2.0.0 examples/multiple_listeners/lib/solid/result/event_logs_record.rb