Class: Mixpanel::Middleware

Inherits:
Object
  • Object
show all
Defined in:
lib/mixpanel/middleware.rb

Class Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(app, mixpanel_token, options = {}) ⇒ Middleware

Returns a new instance of Middleware.



15
16
17
18
19
20
21
22
23
24
# File 'lib/mixpanel/middleware.rb', line 15

def initialize(app, mixpanel_token, options={})
  @app = app
  @token = mixpanel_token
  @options = {
    :insert_mixpanel_scripts=> true,
    :insert_js_last => false,
    :persist => false,
    :config => {}
  }.merge(options)
end

Class Attribute Details

.skip_requestObject

Returns the value of attribute skip_request.



7
8
9
# File 'lib/mixpanel/middleware.rb', line 7

def skip_request
  @skip_request
end

Class Method Details

.skip_this_requestObject



8
9
10
# File 'lib/mixpanel/middleware.rb', line 8

def skip_this_request
  @skip_request = true
end

Instance Method Details

#call(env) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/mixpanel/middleware.rb', line 26

def call(env)
  @env = env

  @status, @headers, @response = @app.call(env)

  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