Sha256: 4e470f23f339169f4b812472f328b6261471f25e2fe0db2977daad0db26119f4

Contents?: true

Size: 1.35 KB

Versions: 21

Compression:

Stored size: 1.35 KB

Contents

require 'forwardable'

require 'honeybadger/util/sanitizer'

module Honeybadger
  class Event
    extend Forwardable

    # The timestamp of the event
    attr_reader :ts

    # The event_type of the event
    attr_reader :event_type

    # The payload data of the event
    attr_reader :payload

    def_delegators :payload, :dig, :[], :[]=

    # @api private
    def initialize(event_type_or_payload, payload={})
      if event_type_or_payload.is_a?(String)
        @event_type = event_type_or_payload
        @payload = payload
      elsif event_type_or_payload.is_a?(Hash)
        @event_type = event_type_or_payload[:event_type] || event_type_or_payload["event_type"]
        @payload = event_type_or_payload
      end

      @ts = payload[:ts] || Time.now.utc.strftime("%FT%T.%LZ")
      @halted = false
    end

    # Halts the event and the before_event callback chain.
    #
    # Returns nothing.
    def halt!
      @halted ||= true
    end

    # @api private
    # Determines if this event will be discarded.
    def halted?
      !!@halted
    end

    # @api private
    # Template used to create JSON payload.
    #
    # @return [Hash] JSON representation of the event.
    def as_json(*args)
      data = payload.tap do |p|
        p[:ts] = ts
        p[:event_type] = event_type if event_type
      end
      Util::Sanitizer.sanitize(data)
    end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
honeybadger-5.27.0 lib/honeybadger/event.rb
honeybadger-5.26.4 lib/honeybadger/event.rb
honeybadger-5.26.3 lib/honeybadger/event.rb
honeybadger-5.26.2 lib/honeybadger/event.rb
honeybadger-5.26.1 lib/honeybadger/event.rb
honeybadger-5.26.0 lib/honeybadger/event.rb
honeybadger-5.25.0 lib/honeybadger/event.rb
honeybadger-5.24.0 lib/honeybadger/event.rb
honeybadger-5.23.0 lib/honeybadger/event.rb
honeybadger-5.22.0 lib/honeybadger/event.rb
honeybadger-5.21.0 lib/honeybadger/event.rb
honeybadger-5.20.1 lib/honeybadger/event.rb
honeybadger-5.20.0 lib/honeybadger/event.rb
honeybadger-5.19.2 lib/honeybadger/event.rb
honeybadger-5.19.1 lib/honeybadger/event.rb
honeybadger-5.19.0 lib/honeybadger/event.rb
honeybadger-5.18.0 lib/honeybadger/event.rb
honeybadger-5.17.0 lib/honeybadger/event.rb
honeybadger-5.16.0 lib/honeybadger/event.rb
honeybadger-5.15.6 lib/honeybadger/event.rb