Sha256: 4c184657d5fc774f542cbd0b1892e6f515c0800a4c4d560e5dda98c818bb4355

Contents?: true

Size: 943 Bytes

Versions: 2

Compression:

Stored size: 943 Bytes

Contents

require 'rollbar/util'
require 'rollbar/truncation/mixin'
require 'rollbar/truncation/raw_strategy'
require 'rollbar/truncation/frames_strategy'
require 'rollbar/truncation/strings_strategy'
require 'rollbar/truncation/min_body_strategy'
require 'rollbar/truncation/remove_request_strategy'
require 'rollbar/truncation/remove_extra_strategy'

module Rollbar
  module Truncation
    extend ::Rollbar::Truncation::Mixin

    MAX_PAYLOAD_SIZE = 512 * 1024 # 512kb
    STRATEGIES = [RawStrategy,
                  FramesStrategy,
                  StringsStrategy,
                  MinBodyStrategy,
                  RemoveRequestStrategy,
                  RemoveExtraStrategy].freeze

    def self.truncate(payload, attempts = [])
      result = nil

      STRATEGIES.each do |strategy|
        result = strategy.call(payload)
        attempts << result.bytesize
        break unless truncate?(result)
      end

      result
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rollbar-2.20.2 lib/rollbar/truncation.rb
rollbar-2.20.1 lib/rollbar/truncation.rb