Sha256: 574e81b5357bc04fb6f19c0d7754fdf1e4ea2c8a0bdcf9dd81a73f0e42596944

Contents?: true

Size: 584 Bytes

Versions: 6

Compression:

Stored size: 584 Bytes

Contents

require 'action_dispatch'

module Appsignal
  class Listener
    def initialize(app, options = {})
      @app, @options = app, options
    end

    def call(env)
      Appsignal::Transaction.create(env['action_dispatch.request_id'], env)
      @app.call(env)
    rescue Exception => exception
      unless Appsignal.is_ignored_exception?(exception)
        Appsignal::Transaction.current.add_exception(
          Appsignal::ExceptionNotification.new(env, exception)
        )
      end
      raise exception
    ensure
      Appsignal::Transaction.current.complete!
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
appsignal-0.6.3.beta.2 lib/appsignal/listener.rb
appsignal-0.6.3.beta.1 lib/appsignal/listener.rb
appsignal-0.6.2 lib/appsignal/listener.rb
appsignal-0.6.1 lib/appsignal/listener.rb
appsignal-0.6.0.beta.2 lib/appsignal/listener.rb
appsignal-0.6.0.beta.1 lib/appsignal/listener.rb