class Peek::Views::ActiveRecord

Public Class Methods

new(options = {}) click to toggle source
# File lib/peek/views/active_record.rb, line 6
def initialize options = {}
  @type_tracking = options.fetch(:type_tracking, false)

  setup_subscribers
end

Public Instance Methods

context() click to toggle source
# File lib/peek/views/active_record.rb, line 12
def context
  {
    :object_count => object_count,
    :object_types => object_types
  }
end

Private Instance Methods

object_count() click to toggle source
# File lib/peek/views/active_record.rb, line 21
def object_count
  ::ActiveRecord::Base.obj_count.value
end
object_types() click to toggle source
# File lib/peek/views/active_record.rb, line 25
def object_types
  Hash[::ActiveRecord::Base.obj_types.sort_by(&:last).reverse]
end
setup_subscribers() click to toggle source
# File lib/peek/views/active_record.rb, line 29
def setup_subscribers
  before_request do
    ::ActiveRecord::Base.tap do |ar|
      ar.obj_count = Atomic.new(0)
      ar.obj_types = Hash.new(0)
      ar.obj_types_enabled = @type_tracking
    end
  end
end