Add CI_Output::delete_cache()

(an improved version of PR #609)
diff --git a/system/core/Output.php b/system/core/Output.php
index 7bfde07..98deff5 100644
--- a/system/core/Output.php
+++ b/system/core/Output.php
@@ -627,6 +627,45 @@
 	// --------------------------------------------------------------------
 
 	/**
+	 * Delete cache
+	 *
+	 * @param	string	$uri	URI string
+	 * @return	bool
+	 */
+	public function delete_cache($uri = '')
+	{
+		$CI =& get_instance();
+		$cache_path = $CI->config->item('cache_path');
+		if ($cache_path === '')
+		{
+			$cache_path = APPPATH.'cache/';
+		}
+
+		if ( ! is_dir($cache_path))
+		{
+			log_message('error', 'Unable to find cache path: '.$cache_path);
+			return FALSE;
+		}
+
+		if (empty($uri))
+		{
+			$uri = $CI->uri->uri_string();
+		}
+
+		$cache_path .= md5($CI->config->item('base_url').$CI->config->item('index_page').$uri);
+
+		if ( ! @unlink($cache_path))
+		{
+			log_message('error', 'Unable to delete cache file for '.$uri);
+			return FALSE;
+		}
+
+		return TRUE;
+	}
+
+	// --------------------------------------------------------------------
+
+	/**
 	 * Set Cache Header
 	 *
 	 * Set the HTTP headers to match the server-side file cache settings
diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst
index 09c425d..6570eb7 100644
--- a/user_guide_src/source/changelog.rst
+++ b/user_guide_src/source/changelog.rst
@@ -295,8 +295,8 @@
    -  Renamed method ``_call_hook()`` to ``call_hook()`` in the :doc:`Hooks Library <general/hooks>`.
    -  :doc:`Output Library <libraries/output>` changes include:
 	 -  Added a second argument to method ``set_content_type()`` that allows setting the document charset as well.
-	 -  Added method ``get_content_type()``.
-	 -  Added method ``get_header()``.
+	 -  Added methods ``get_content_type()`` and ``get_header()``.
+	 -  Added method ``delete_cache()``.
    -  ``$config['time_reference']`` now supports all timezone strings supported by PHP.
    -  :doc:`Config Library <libraries/config>` changes include:
 	 -  Changed ``site_url()`` method  to accept an array as well.
diff --git a/user_guide_src/source/general/caching.rst b/user_guide_src/source/general/caching.rst
index c40f652..48385d6 100644
--- a/user_guide_src/source/general/caching.rst
+++ b/user_guide_src/source/general/caching.rst
@@ -56,5 +56,13 @@
 it will no longer be refreshed when it expires.
 
 .. note:: Removing the tag will not delete the cache immediately. It will
-	have to expire normally. If you need to remove it earlier you
-	will need to manually delete it from your cache directory.
\ No newline at end of file
+	have to expire normally.
+
+If you need to manually delete the cache, you can use the ``delete_cache()``
+method::
+
+	// Deletes cache for the currently requested URI
+	$this->output->delete_cache();
+
+	// Deletes cache for /foo/bar
+	$this->output->delete_cache('/foo/bar');
\ No newline at end of file