Sha256: d6ebe963f006dbd436664b466badf40f363f5afe9a5c2cdff5b2b93d578c0bc4

Contents?: true

Size: 836 Bytes

Versions: 15

Compression:

Stored size: 836 Bytes

Contents

module Honeybadger
  module Rack
    class UserInformer
      def initialize(app)
        @app = app
      end

      def replacement(with)
        Honeybadger.configuration.user_information.gsub(/\{\{\s*error_id\s*\}\}/, with.to_s)
      end

      def call(env)
        status, headers, body = @app.call(env)
        if env['honeybadger.error_id'] && Honeybadger.configuration.user_information
          new_body = []
          replace  = replacement(env['honeybadger.error_id'])
          body.each do |chunk|
            new_body << chunk.gsub("<!-- HONEYBADGER ERROR -->", replace)
          end
          body.close if body.respond_to?(:close)
          headers['Content-Length'] = new_body.reduce(0) { |a,e| a += e.bytesize }.to_s
          body = new_body
        end
        [status, headers, body]
      end
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
honeybadger-1.16.7 lib/honeybadger/rack/user_informer.rb
honeybadger-1.16.6 lib/honeybadger/rack/user_informer.rb
honeybadger-1.16.5 lib/honeybadger/rack/user_informer.rb
honeybadger-1.16.4 lib/honeybadger/rack/user_informer.rb
honeybadger-1.16.3 lib/honeybadger/rack/user_informer.rb
honeybadger-1.16.2 lib/honeybadger/rack/user_informer.rb
honeybadger-1.16.1 lib/honeybadger/rack/user_informer.rb
honeybadger-1.16.0 lib/honeybadger/rack/user_informer.rb
honeybadger-1.15.3 lib/honeybadger/rack/user_informer.rb
honeybadger-1.15.2 lib/honeybadger/rack/user_informer.rb
honeybadger-1.15.1 lib/honeybadger/rack/user_informer.rb
honeybadger-1.15.0 lib/honeybadger/rack/user_informer.rb
honeybadger-1.14.0 lib/honeybadger/rack/user_informer.rb
honeybadger-1.12.0.beta3 lib/honeybadger/rack/user_informer.rb
honeybadger-1.12.0.beta2 lib/honeybadger/rack/user_informer.rb