Mercurial > hg > contenttransformer
view contenttransformer/web.py @ 9:051d4d39b4b9
* separate out get_response to its own function
* keep track of raw content_type for later usage (muahaha)
author | k0s <k0scist@gmail.com> |
---|---|
date | Sun, 07 Feb 2010 19:03:15 -0500 |
parents | aa491070ccf3 |
children |
line wrap: on
line source
""" example app for how to use TypedTransformer TTW on a directory """ import os from contenttransformer.app import FileTypeTransformer from webob import Request, exc class Dispatcher(object): ### class level variables defaults = { 'app': None, 'directory': None, 'transforms': ''} def __init__(self, **kw): for key in self.defaults: setattr(self, key, kw.get(key, self.defaults[key])) assert os.path.exists(self.directory) self.transforms = [ [j.strip() for j in i.split('=', 1) ] for i in self.transforms.split(',') if '=' in i] self.transformer = FileTypeTransformer(*self.transforms) if self.app: assert hasattr(self.app, '__call__') ### methods dealing with HTTP def __call__(self, environ, start_response): request = Request(environ) path = os.path.join(self.directory, request.path_info.strip('/')) if os.path.exists(path) and os.path.isfile(path): handler = self.transformer(path) return handler(environ, start_response) else: # TODO: if self.app ... return exc.HTTPNotFound()(environ, start_response)