Sha256: 45f2d20229e342ea4387bb4d2ea05c58c94176118c01456a4d195cc512df9882

Contents?: true

Size: 922 Bytes

Versions: 13

Compression:

Stored size: 922 Bytes

Contents

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 = ""

      # 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.gsub(/\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

13 entries across 13 versions & 2 rubygems

Version Path
panjiva-rack-mini-profiler-0.10.5.2 lib/patches/db/nobrainer.rb
rack-mini-profiler-0.10.7 lib/patches/db/nobrainer.rb
rack-mini-profiler-0.10.6 lib/patches/db/nobrainer.rb
panjiva-rack-mini-profiler-0.10.5 lib/patches/db/nobrainer.rb
rack-mini-profiler-0.10.5 lib/patches/db/nobrainer.rb
rack-mini-profiler-0.10.4 lib/patches/db/nobrainer.rb
rack-mini-profiler-0.10.3 lib/patches/db/nobrainer.rb
rack-mini-profiler-0.10.2 lib/patches/db/nobrainer.rb
rack-mini-profiler-0.10.1 lib/patches/db/nobrainer.rb
rack-mini-profiler-0.9.9.2 lib/patches/db/nobrainer.rb
rack-mini-profiler-0.9.9.1 lib/patches/db/nobrainer.rb
rack-mini-profiler-0.9.9 lib/patches/db/nobrainer.rb
rack-mini-profiler-0.9.8 lib/patches/db/nobrainer.rb