Sha256: b01d4153f9f3ffd20a32fd9dd6d29f6a13f01e7f57b05e320922c927553b95a8

Contents?: true

Size: 621 Bytes

Versions: 36

Compression:

Stored size: 621 Bytes

Contents

require 'forwardable'

# Internal: A collection for de-duping traces. Not currently thread-safe (so
# make sure access is synchronized.)
module Honeybadger
  class Agent
    class TraceCollection
      extend Forwardable
      include Enumerable

      def initialize
        @traces = {}
      end

      def_delegators :to_a, :each, :empty?, :size

      def push(trace)
        if !traces.key?(trace.key) || traces[trace.key].duration < trace.duration
          traces[trace.key] = trace
        end
      end

      def to_a
        traces.values
      end

      private

      attr_reader :traces
    end
  end
end

Version data entries

36 entries across 36 versions & 2 rubygems

Version Path
honeybadger-2.6.1 lib/honeybadger/agent/trace_collection.rb
honeybadger-2.6.0 lib/honeybadger/agent/trace_collection.rb
honeybadger-2.5.3 lib/honeybadger/agent/trace_collection.rb
honeybadger-2.5.2 lib/honeybadger/agent/trace_collection.rb
honeybadger-2.5.1 lib/honeybadger/agent/trace_collection.rb
honeybadger-2.5.0 lib/honeybadger/agent/trace_collection.rb
honeybadger-2.4.1 lib/honeybadger/agent/trace_collection.rb
honeybadger-2.4.0 lib/honeybadger/agent/trace_collection.rb
honeybadger-2.3.3 lib/honeybadger/agent/trace_collection.rb
honeybadger-2.3.2 lib/honeybadger/agent/trace_collection.rb
honeybadger-2.3.2.beta.1 lib/honeybadger/agent/trace_collection.rb
honeybadger-2.3.1 lib/honeybadger/agent/trace_collection.rb
honeybadger-2.3.0 lib/honeybadger/agent/trace_collection.rb
honeybadger-2.2.0 lib/honeybadger/agent/trace_collection.rb
honeybadger-2.2.0.beta.1 lib/honeybadger/agent/trace_collection.rb
honeybadger-2.1.6.beta.1 lib/honeybadger/agent/trace_collection.rb
honeybadger-2.1.5 lib/honeybadger/agent/trace_collection.rb
honeybadger-2.1.4 lib/honeybadger/agent/trace_collection.rb
honeybadger-2.1.3 lib/honeybadger/agent/trace_collection.rb
honeybadger-2.1.1 lib/honeybadger/agent/trace_collection.rb