class CatTree::Observer
Public Class Methods
check(&block)
click to toggle source
# File lib/cat_tree/observer.rb, line 7 def self.check(&block) self.new.check(&block) end
new()
click to toggle source
# File lib/cat_tree/observer.rb, line 11 def initialize @target_set = TargetSet.new end
Public Instance Methods
ar_base_count()
click to toggle source
# File lib/cat_tree/observer.rb, line 19 def ar_base_count @target_set.object_count end
check() { || ... }
click to toggle source
# File lib/cat_tree/observer.rb, line 27 def check ActiveRecord::Base.add_cat_tree_observer(self) yield ensure ActiveRecord::Base.remove_cat_tree_observer output_message end
notice(object)
click to toggle source
# File lib/cat_tree/observer.rb, line 15 def notice(object) @target_set.notice(object) end
same_ar_base_objects()
click to toggle source
# File lib/cat_tree/observer.rb, line 23 def same_ar_base_objects @target_set.same_objects end
Private Instance Methods
output_message()
click to toggle source
# File lib/cat_tree/observer.rb, line 37 def output_message return if @target_set.empty? msg = ["", "[CatTree]"] msg << " ActiveRecord::Base:\t#{ar_base_count}" unless (same_objects = same_ar_base_objects).empty? msg << " Same objects:" same_objects.each do |same_obj| msg << " #{same_obj.title}:\t#{same_obj.count}" if Config.backtrace same_obj.callers.each do |cal| cal.each{|c| msg << " #{c}"} msg << "" end end end end msg << "" Logger.warn msg.join("\n") end