lib/bullet/counter.rb in flyerhzm-bullet-1.4.1 vs lib/bullet/counter.rb in flyerhzm-bullet-1.5.0
- old
+ new
@@ -1,29 +1,66 @@
module Bullet
class Counter
class <<self
- def start_request
+ include Bullet::Notification
+ def start_request
end
def end_request
@@klazz_associations = nil
end
def need_counter_caches?
!klazz_associations.empty?
end
+
+ def notification?
+ need_counter_caches?
+ end
+
+ def notification_response
+ response = []
+ if need_counter_caches?
+ response << counter_cache_messages.join("\n")
+ end
+ response
+ end
+
+ def console_title
+ title = ["Need Counter Cache"]
+ end
+
+ def log_messages(path = nil)
+ [counter_cache_messages(path)]
+ end
def add_counter_cache(object, associations)
klazz = object.class
klazz_associations[klazz] ||= []
klazz_associations[klazz] << associations
klazz_associations[klazz].flatten!
klazz_associations[klazz].uniq!
end
- def klazz_associations
- @@klazz_associations ||= {}
- end
+ private
+ def counter_cache_messages(path = nil)
+ messages = []
+ klazz_associations.each do |klazz, associations|
+ messages << [
+ "Need Counter Cache",
+ " #{klazz} => [#{associations.map(&:inspect).join(', ')}]"
+ ]
+ end
+ messages
+ end
+
+ def call_stack_messages
+ []
+ end
+
+ def klazz_associations
+ @@klazz_associations ||= {}
+ end
end
end
end