Class: Rusen::Middleware::RusenRack
- Inherits:
-
Object
- Object
- Rusen::Middleware::RusenRack
- Defined in:
- lib/rusen/middleware/rusen_rack.rb
Instance Method Summary collapse
- #call(env) ⇒ Object
-
#initialize(app, settings = {}) ⇒ RusenRack
constructor
A new instance of RusenRack.
Constructor Details
#initialize(app, settings = {}) ⇒ RusenRack
Returns a new instance of RusenRack.
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/rusen/middleware/rusen_rack.rb', line 10 def initialize(app, settings = {}) @app = app if settings.is_a?(::Rusen::Settings) @rusen_settings = settings else @rusen_settings = Settings.new @rusen_settings.outputs = settings[:outputs] @rusen_settings.sections = settings[:sections] @rusen_settings.filter_parameters = settings[:filter_parameters] @rusen_settings.email_prefix = settings[:email_prefix] @rusen_settings.sender_address = settings[:sender_address] @rusen_settings.exception_recipients = settings[:exception_recipients] @rusen_settings.smtp_settings = settings[:smtp_settings] @rusen_settings.exclude_if = settings[:exclude_if] end @notifier = Notifier.new(@rusen_settings) end |
Instance Method Details
#call(env) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/rusen/middleware/rusen_rack.rb', line 31 def call(env) begin @app.call(env) rescue Exception => error unless @rusen_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 |