class Bullet::Detector::NPlusOneQuery

def add_possible_objects(object_or_objects)

def add_possible_objects(object_or_objects)
  return unless Bullet.start?
  return unless Bullet.n_plus_one_query_enable?
  objects = Array.wrap(object_or_objects)
  class_names_match_regex = true
  primary_key_values_are_empty = true
  keys_joined = ""
  objects.each do |obj|
    unless obj.class.name =~ /^HABTM_/
      class_names_match_regex = false
    end
    unless obj.bullet_primary_key_value.nil?
      primary_key_values_are_empty = false
    end
    keys_joined += "#{(keys_joined.empty?? '' : ', ')}#{obj.bullet_key}"
  end
  unless class_names_match_regex || primary_key_values_are_empty
    Bullet.debug(
      'Detector::NPlusOneQuery#add_possible_objects',
      "objects: #{keys_joined}"
    )
    objects.each { |object| possible_objects.add object.bullet_key }
  end
end