Class: Heavylog::Middleware

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

Instance Method Summary collapse

Constructor Details

#initialize(app) ⇒ Middleware

Returns a new instance of Middleware.



7
8
9
10
11
# File 'lib/heavylog/middleware.rb', line 7

def initialize(app)
  @app = app
  @sprockets = ::Rails.application.config.respond_to?(:assets)
  @assets_regex = @sprockets ? %r(\A/{0,2}#{::Rails.application.config.assets.prefix}) : nil
end

Instance Method Details

#call(env) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/heavylog/middleware.rb', line 13

def call(env)
  ignore = (@sprockets && env["PATH_INFO"] =~ @assets_regex) ||
           (Heavylog.ignore_path && env["PATH_INFO"] =~ Heavylog.ignore_path)

  unless ignore
    request = ActionDispatch::Request.new(env)
    RequestStore.store[:heavylog_request_id] = request.uuid
    RequestStore.store[:heavylog_request_start] = Time.now.iso8601
    RequestStore.store[:heavylog_request_ip] = request.ip
  end

  @app.call(env)
ensure
  Heavylog.finish unless ignore
end