Sha256: 4ff13fdd44fec943ce97a06a2427a4078bae899e74217f1eb92fbd472b92d117

Contents?: true

Size: 1.37 KB

Versions: 22

Compression:

Stored size: 1.37 KB

Contents

require 'active_record/log_subscriber'

module ActiveRecord::Turntable
  module ActiveRecordExt
    module LogSubscriber
      extend ActiveSupport::Concern

      included do
        alias_method_chain :sql, :turntable
      end

      protected

      # @note Override to add shard name logging
      def sql_with_turntable(event)
        self.class.runtime += event.duration
        return unless logger.debug?

        payload = event.payload

        return if ActiveRecord::LogSubscriber::IGNORE_PAYLOAD_NAMES.include?(payload[:name])

        name  = "#{payload[:name]} (#{event.duration.round(1)}ms)"
        shard = '[Shard: %s]' % (event.payload[:turntable_shard_name] ? event.payload[:turntable_shard_name] : nil)
        sql   = payload[:sql].squeeze(' ')
        binds = nil

        unless (payload[:binds] || []).empty?
          binds = "  " + payload[:binds].map { |col,v|
            render_bind(col, v)
          }.inspect
        end

        if odd?
          name = color(name, ActiveRecord::LogSubscriber::CYAN, true)
          shard = color(shard, ActiveRecord::LogSubscriber::CYAN, true)
          sql  = color(sql, nil, true)
        else
          name = color(name, ActiveRecord::LogSubscriber::MAGENTA, true)
          shard = color(shard, ActiveRecord::LogSubscriber::MAGENTA, true)
        end

        debug "  #{name} #{shard} #{sql}#{binds}"
      end
    end
  end
end

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
activerecord-turntable-2.5.0 lib/active_record/turntable/active_record_ext/log_subscriber.rb
activerecord-turntable-2.4.0 lib/active_record/turntable/active_record_ext/log_subscriber.rb
activerecord-turntable-2.3.3 lib/active_record/turntable/active_record_ext/log_subscriber.rb
activerecord-turntable-2.3.2 lib/active_record/turntable/active_record_ext/log_subscriber.rb
activerecord-turntable-2.3.1 lib/active_record/turntable/active_record_ext/log_subscriber.rb
activerecord-turntable-2.3.0 lib/active_record/turntable/active_record_ext/log_subscriber.rb
activerecord-turntable-2.2.2 lib/active_record/turntable/active_record_ext/log_subscriber.rb
activerecord-turntable-2.2.1 lib/active_record/turntable/active_record_ext/log_subscriber.rb
activerecord-turntable-2.2.0 lib/active_record/turntable/active_record_ext/log_subscriber.rb
activerecord-turntable-2.1.1 lib/active_record/turntable/active_record_ext/log_subscriber.rb
activerecord-turntable-2.1.0 lib/active_record/turntable/active_record_ext/log_subscriber.rb
activerecord-turntable-2.1.0.rc2 lib/active_record/turntable/active_record_ext/log_subscriber.rb
activerecord-turntable-2.1.0.rc1 lib/active_record/turntable/active_record_ext/log_subscriber.rb
activerecord-turntable-2.1.0.beta2 lib/active_record/turntable/active_record_ext/log_subscriber.rb
activerecord-turntable-2.1.0.beta1 lib/active_record/turntable/active_record_ext/log_subscriber.rb
activerecord-turntable-2.0.6 lib/active_record/turntable/active_record_ext/log_subscriber.rb
activerecord-turntable-2.0.5 lib/active_record/turntable/active_record_ext/log_subscriber.rb
activerecord-turntable-2.0.4 lib/active_record/turntable/active_record_ext/log_subscriber.rb
activerecord-turntable-2.0.3 lib/active_record/turntable/active_record_ext/log_subscriber.rb
activerecord-turntable-2.0.2 lib/active_record/turntable/active_record_ext/log_subscriber.rb