class Rusen::Middleware::RusenRack

Public Class Methods

new(app, settings = {}) click to toggle source
# File lib/rusen/middleware/rusen_rack.rb, line 10
def initialize(app, settings = {})
  @app = app

  if settings.is_a?(::Rusen::Settings)
    @settings = settings
  elsif settings.is_a?(Hash)
    @settings = ::Rusen::Settings.new(settings)
  end

  @notifier = ::Rusen::Notifier.new(@settings) if @settings
end

Public Instance Methods

call(env) click to toggle source
# File lib/rusen/middleware/rusen_rack.rb, line 22
def call(env)
  begin
    @app.call(env)
  rescue Exception => error
    @notifier ||= Rusen.notifier
    @settings ||= Rusen.settings

    if @settings && !@settings.exclude_if.call(error)
      request = Rack::Request.new(env)
      @notifier.notify(error, request.GET.merge(request.POST), env, request.session)
    end

    raise
  end
end