Class: Harrods::BasicMiddleware

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

Instance Method Summary collapse

Constructor Details

#initialize(app) ⇒ BasicMiddleware

Returns a new instance of BasicMiddleware.



4
5
6
7
8
# File 'lib/harrods/basic_middleware.rb', line 4

def initialize(app)
  @db     = Harrods::Database.new Rails.root.join("db","harrods.db")
  @logger = Harrods::Logger.new
  @app    = app
end

Instance Method Details

#call(env) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/harrods/basic_middleware.rb', line 10

def call(env)
  tracer = Harrods::Tracer.new(@db)
  status, headers, response, output, ram, objects, gc_runs, gc_time = nil, nil, nil, nil, nil, nil, nil
  if env['ORIGINAL_FULLPATH'].split("/")[1]  == "assets"
    status, headers, response = @app.call(env)
    [status, headers, response]
  else
    ram, objects, gc_runs, gc_time = tracer.record(env['ORIGINAL_FULLPATH']) do
      status, headers, response = @app.call(env)
    end
    @logger.log(ram, objects, gc_runs, gc_time)
    [status, headers, response]
  end
end