Sha256: 5572b1c312d17fec050b180634abe0c9423f3bc9b7ab44b7977111bd36cea0b6

Contents?: true

Size: 990 Bytes

Versions: 1

Compression:

Stored size: 990 Bytes

Contents

class RSolr::Connection
  alias_method :execute_without_profiling, :execute
  def execute_with_profiling(client, request_context)
    return execute_without_profiling(client, request_context) unless SqlPatches.should_measure?

    start        = Process.clock_gettime(Process::CLOCK_MONOTONIC)
    result       = execute_without_profiling(client, request_context)
    elapsed_time = SqlPatches.elapsed_time(start)

    data = "#{request_context[:method].upcase} #{request_context[:uri]}"
    if request_context[:method] == :post and request_context[:data]
      if request_context[:headers].include?("Content-Type") and request_context[:headers]["Content-Type"] == "text/xml"
        # it's xml, unescaping isn't needed
        data << "\n#{request_context[:data]}"
      else
        data << "\n#{Rack::Utils.unescape(request_context[:data])}"
      end
    end
    ::Rack::MiniProfiler.record_sql(data, elapsed_time)

    result
  end
  alias_method :execute, :execute_with_profiling
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rack-mini-profiler-0.10.7 lib/patches/db/rsolr.rb