class ItemSweeper < ActionController::Caching::Sweeper
  observe Item

  def after_update(item)
    expire_cache_for(item)
  end

  def after_destroy(item)
    expire_cache_for(item)
  end

  private
  def expire_cache_for(item)
    options = {:controller => 'items', :action => 'show', :id => item.id}
    expire_action(options)
  end
  
  def expire_action(options)
    if @controller
      super
    elsif LocalImpressHost
      @tmp_controller ||= SweeperController.new
      @tmp_controller.expire_action_proxy(options.dup)
    end
  end
end