class Rack::WebProfiler::Engine::Processor

Attributes

record[R]

Public Class Methods

new(request, response) click to toggle source
# File lib/rack/web_profiler/engine.rb, line 77
def initialize(request, response)
  @record = new_record(request, response)
end

Public Instance Methods

save!() click to toggle source
# File lib/rack/web_profiler/engine.rb, line 81
def save!
  @record.save({ transaction: true })
rescue => e
  # @todo raise_if_debug WebProfiler::RuntimeError, "Error while processing to save datas", e.backtrace
end

Private Instance Methods

collect_datas(request, response) click to toggle source
# File lib/rack/web_profiler/engine.rb, line 100
def collect_datas(request, response)
  datas = {}

  Rack::WebProfiler.config.collectors.all.each do |name, definition|
    begin
      datas[name.to_sym] = definition.collect!(request, response).to_h
    rescue => e
      # @todo raise_if_debug WebProfiler::RuntimeError, "Error while collecting datas of collector '#{name}'"
    end
  end

  datas
end
new_record(request, response) click to toggle source
# File lib/rack/web_profiler/engine.rb, line 89
def new_record(request, response)
  WebProfiler::Model::CollectionRecord.new({
    url:          request.url,
    ip:           request.ip,
    http_method:  request.request_method,
    http_status:  response.status,
    content_type: response.content_type,
    datas:        collect_datas(request, response),
  })
end