Sha256: 2d9753175546a596e16681cd9a70244fa549f904e535a0d87420f209aa48d52e
Contents?: true
Size: 1.37 KB
Versions: 2
Compression:
Stored size: 1.37 KB
Contents
module Bullet module Detector class Counter < Base class <<self def clear @@possible_objects = nil @@impossible_objects = nil end def add_counter_cache(object, associations) if conditions_met?(object.ar_key, associations) create_notification object.class.to_s, associations end end def add_possible_objects(object_or_objects) if object_or_objects.is_a? Array object_or_objects.each { |object| possible_objects.add object.ar_key } else possible_objects.add object_or_objects.ar_key end end def add_impossible_object(object) impossible_objects.add object.ar_key end private def create_notification(klazz, associations) notice = Bullet::Notification::CounterCache.new klazz, associations Bullet.notification_collector.add notice end def possible_objects @@possible_objects ||= Bullet::Registry::Object.new end def impossible_objects @@impossible_objects ||= Bullet::Registry::Object.new end def conditions_met?(object_ar_key, associations) possible_objects.include?(object_ar_key) && !impossible_objects.include?(object_ar_key) end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
bullet-2.3.1 | lib/bullet/detector/counter.rb |
bullet-2.3.0 | lib/bullet/detector/counter.rb |