module Logical
  class CacheManager 
    include Singleton 

    def initialize 
      @@objects_to_rebuild = {} 
    end 

    def schedule_rebuild(klass, *get_key) 
      @@objects_to_rebuild[[klass, get_key]] = true 
    end 

    def rebuild 
      keys = @@objects_to_rebuild.clone 
      @@objects_to_rebuild.clear 
      keys.each {|k, v| k.rebuild(*v)} 
    end 
  end 
end

