Metadata-Version: 1.0
Name: fancy-cache
Version: 0.1
Summary: clears the junk out of your CSS
Home-page: http://github.com/peterbe/django-fancy-cache
Author: Peter Bengtsson
Author-email: mail@peterbe.com
License: BSD
Description: django-fancy-cache
        ==================
        
        (c) Peter Bengtsson, mail@peterbe.com, 2013
        
        About django-fancy-cache
        ------------------------
        
        A Django `cache_page` decorator on steroids.
        
        Unlike the stock `django.views.decorators.cache.change_page` this
        decorator makes it possible to set a `key_prefixer` that is a
        callable. This callable is passed the request and if it returns `None`
        the page is not cached.
        
        Also, you can set another callable called `post_process_response`
        (which is passed the response and the request) which can do some
        additional changes to the response before it's set in cache.
        
        Lastly, you can set `post_process_response_always=True` so that the
        `post_process_response` callable is always called, even when the
        response is coming from the cache.
        
        
        How to use it
        -------------
        
        In your Django views:
        
                from fancy_cache import cache_page
        
        	@cache_page(60 * 60)
        	def myview(request):
        	    return render(request, 'page1.html')
        
        	def prefixer(request):
        	    if request.method != 'GET':
        	        return None
        	    if request.GET.get('no-cache'):
        	        return None
        	    return 'myprefix'
        
        	@cache_page(60 * 60, key_prefixer=prefixer)
        	def myotherview(request):
        	    return render(request, 'page2.html')
        
        	def post_processor(response, request):
        	    response.content += '<!-- this was post processed -->'
        	    return response
        
        	@cache_page(60 * 60,
        	            key_prefixer=prefixer,
        		    post_process_response=post_processor)
        	def yetanotherotherview(request):
        	    return render(request, 'page3.html')
        
        
        Running the test suite
        ----------------------
        
        The simplest way is to simply run:
        
                $ pip install -r requirements.txt
                $ fab test
        
        Or to run it without `fab` you can simply run:
        
                $ export PYTHONPATH=`pwd`
        	$ export DJANGO_SETTINGS_MODULE=fancy_cache.tests.settings
        	$ django-admin.py test
        
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
