lib/mixpanel/middleware.rb in mixpanel-3.5.1 vs lib/mixpanel/middleware.rb in mixpanel-3.5.2
- old
+ new
@@ -1,10 +1,19 @@
require 'rack'
require 'json'
module Mixpanel
class Middleware
+ class << self
+ attr_accessor :skip_request
+ def skip_this_request
+ @skip_request = true
+ end
+ end
+
+ @skip_request = false
+
def initialize(app, mixpanel_token, options={})
@app = app
@token = mixpanel_token
@options = {
:insert_mixpanel_scripts=> true,
@@ -16,16 +25,18 @@
def call(env)
@env = env
@status, @headers, @response = @app.call(env)
-
- if is_trackable_response?
+
+ if is_trackable_response? && !Mixpanel::Middleware.skip_request
merge_queue! if @options[:persist]
update_response!
update_content_length!
delete_event_queue!
end
+
+ Mixpanel::Middleware.skip_request = false
[@status, @headers, @response]
end
private