Class: Yeller::Rack
- Inherits:
-
Object
- Object
- Yeller::Rack
- Defined in:
- lib/yeller/rack.rb
Class Method Summary collapse
- .client ⇒ Object
- .configure(&block) ⇒ Object
- .enabled? ⇒ Boolean
- .report(exception, options = {}) ⇒ Object
- .rescue_rack_exception(exception, env) ⇒ Object
Instance Method Summary collapse
- #call(env) ⇒ Object
-
#initialize(app) ⇒ Rack
constructor
A new instance of Rack.
Constructor Details
#initialize(app) ⇒ Rack
Returns a new instance of Rack.
23 24 25 |
# File 'lib/yeller/rack.rb', line 23 def initialize(app) @app = app end |
Class Method Details
.client ⇒ Object
19 20 21 |
# File 'lib/yeller/rack.rb', line 19 def self.client @client end |
.configure(&block) ⇒ Object
6 7 8 |
# File 'lib/yeller/rack.rb', line 6 def self.configure(&block) @client = Yeller.client(&block) end |
.enabled? ⇒ Boolean
14 15 16 17 |
# File 'lib/yeller/rack.rb', line 14 def self.enabled? return false unless @client @client.enabled? end |
.report(exception, options = {}) ⇒ Object
10 11 12 |
# File 'lib/yeller/rack.rb', line 10 def self.report(exception, ={}) @client.report(exception, ) end |
.rescue_rack_exception(exception, env) ⇒ Object
36 37 38 39 40 41 42 43 44 45 |
# File 'lib/yeller/rack.rb', line 36 def self.rescue_rack_exception(exception, env) request = ::Rack::Request.new(env) Yeller::Rack.report( exception, :url => request.url, :custom_data => { :params => request.params, :session => env.fetch('rack.session', {}), }) end |
Instance Method Details
#call(env) ⇒ Object
27 28 29 30 31 32 33 34 |
# File 'lib/yeller/rack.rb', line 27 def call(env) begin @app.call(env) rescue Exception => exception Yeller::Rack.rescue_rack_exception(exception, env) raise exception end end |