Sha256: e3b2e7f1bcf841d9d3b0716150ee673613eac7460f2e59d536437caf2f495995

Contents?: true

Size: 955 Bytes

Versions: 29

Compression:

Stored size: 955 Bytes

Contents

# frozen_string_literal: true

class Rack::MiniProfiler::NoBrainerProfiler

  def on_query(env)
    if SqlPatches.should_measure?
      not_indexed = env[:criteria] && env[:criteria].where_present? &&
                        !env[:criteria].where_indexed? &&
                        !env[:criteria].model.try(:perf_warnings_disabled)

      query = "".dup

      # per-model/query database overrides
      query << "[#{env[:options][:db]}] " if env[:options][:db]

      # "read", "write" prefix
      # query << "(#{NoBrainer::RQL.type_of(env[:query]).to_s}) "

      query << "NOT USING INDEX: " if not_indexed
      query << env[:query].inspect.delete("\n").gsub(/ +/, ' ') + " "

      if env[:exception]
        query << "exception: #{env[:exception].class} #{env[:exception].message.split("\n").first} "
      end

      ::Rack::MiniProfiler.record_sql query.strip, env[:duration] * 1000.0
    end
  end

  NoBrainer::Profiler.register self.new
end

Version data entries

29 entries across 29 versions & 1 rubygems

Version Path
rack-mini-profiler-3.3.1 lib/patches/db/nobrainer.rb
rack-mini-profiler-3.3.0 lib/patches/db/nobrainer.rb
rack-mini-profiler-3.2.1 lib/patches/db/nobrainer.rb
rack-mini-profiler-3.2.0 lib/patches/db/nobrainer.rb
rack-mini-profiler-3.1.1 lib/patches/db/nobrainer.rb
rack-mini-profiler-3.1.0 lib/patches/db/nobrainer.rb
rack-mini-profiler-3.0.0 lib/patches/db/nobrainer.rb
rack-mini-profiler-2.3.4 lib/patches/db/nobrainer.rb
rack-mini-profiler-2.3.3 lib/patches/db/nobrainer.rb
rack-mini-profiler-2.3.2 lib/patches/db/nobrainer.rb
rack-mini-profiler-2.3.1 lib/patches/db/nobrainer.rb
rack-mini-profiler-2.3.0 lib/patches/db/nobrainer.rb
rack-mini-profiler-2.2.1 lib/patches/db/nobrainer.rb
rack-mini-profiler-2.2.0 lib/patches/db/nobrainer.rb
rack-mini-profiler-2.1.0 lib/patches/db/nobrainer.rb
rack-mini-profiler-2.0.4 lib/patches/db/nobrainer.rb
rack-mini-profiler-2.0.3 lib/patches/db/nobrainer.rb
rack-mini-profiler-2.0.2 lib/patches/db/nobrainer.rb
rack-mini-profiler-2.0.1 lib/patches/db/nobrainer.rb
rack-mini-profiler-2.0.0 lib/patches/db/nobrainer.rb