Class: WhenAUser::Rack

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

Instance Method Summary collapse

Constructor Details

#initialize(app, options = {}) ⇒ Rack

Returns a new instance of Rack.



73
74
75
76
77
78
79
80
81
82
83
# File 'lib/whenauser.rb', line 73

def initialize(app, options={})
  @app = app
  WhenAUser.logger = defined?(Rails) ? Rails.logger : Logger.new(STDOUT)
  WhenAUser.webhook_url = options[:webhook_url] || 'http://www.whenauser.com/events/'
  WhenAUser.buffer = []
  WhenAUser.filter_parameters = defined?(Rails) ? Rails.application.config.filter_parameters : []
  WhenAUser.token = options[:token]
  WhenAUser.queue = options[:queue] || WhenAUser::MemoryQueue
  WhenAUser.queue_options = options[:queue_options] || {}
  WhenAUser.custom_data = options[:custom_data] || lambda { |env| {} }
end

Instance Method Details

#call(env) ⇒ Object



85
86
87
88
89
90
91
92
93
94
95
# File 'lib/whenauser.rb', line 85

def call(env)
  WhenAUser.buffer = []
  request = ActionDispatch::Request.new(env)
  env['whenauser.request_url'] = request.url
  env['whenauser.request_method'] = request.request_method
  env['whenauser.user_agent'] = request.user_agent
  env['whenauser.referer_url'] = request.referer
  @app.call(env)
ensure
  WhenAUser.flush(env)
end