Sha256: ba911bbf4d7de2660e0bf49e7dd083928c5cd9dc8520e07e0f6358f1e60c3dca

Contents?: true

Size: 840 Bytes

Versions: 10

Compression:

Stored size: 840 Bytes

Contents

# typed: ignore

# Copyright (c) 2015 Sqreen. All Rights Reserved.
# Please refer to our terms for more information: https://www.sqreen.com/terms.html

require 'json'
require 'sqreen/event'

module Sqreen
  # When an exception arise it is automatically pushed to the event queue
  class RemoteException < Sqreen::Event
    def self.record(payload_or_exception)
      exception = RemoteException.new(payload_or_exception)
      exception.enqueue
    end

    def initialize(payload_or_exception)
      payload = if payload_or_exception.is_a?(Hash)
                  payload_or_exception
                else
                  { 'exception' => payload_or_exception }
                end
      super(payload)
    end

    def enqueue
      Sqreen.queue.push(self)
    end

    def klass
      payload['exception'].class.name
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
sqreen-1.25.1 lib/sqreen/events/remote_exception.rb
sqreen-1.25.0 lib/sqreen/events/remote_exception.rb
sqreen-1.24.3 lib/sqreen/events/remote_exception.rb
sqreen-1.24.2 lib/sqreen/events/remote_exception.rb
sqreen-1.24.1 lib/sqreen/events/remote_exception.rb
sqreen-1.24.0 lib/sqreen/events/remote_exception.rb
sqreen-1.23.2 lib/sqreen/events/remote_exception.rb
sqreen-1.23.1 lib/sqreen/events/remote_exception.rb
sqreen-1.23.0 lib/sqreen/events/remote_exception.rb
sqreen-1.22.1 lib/sqreen/events/remote_exception.rb