Mercurial > hg > contenttransformer
comparison contenttransformer/transformers.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 | 68643e72c749 |
| children | a9ddcfc7c4e8 |
comparison
equal
deleted
inserted
replaced
| 8:805cadc2b825 | 9:051d4d39b4b9 |
|---|---|
| 2 import subprocess | 2 import subprocess |
| 3 from webob import Request, Response | 3 from webob import Request, Response |
| 4 | 4 |
| 5 class Transformer(object): | 5 class Transformer(object): |
| 6 """abstract base class for transformer objects""" | 6 """abstract base class for transformer objects""" |
| 7 def __init__(self, content): | 7 def __init__(self, content, content_type): |
| 8 self.content = content | 8 self.content = content |
| 9 self.content_type = content_type | |
| 9 | 10 |
| 10 def transform(self, request): | 11 def transform(self, request): |
| 11 """returns a tuple of (body, content-type)""" | 12 """returns a tuple of (body, content-type)""" |
| 12 raise NotImplementedError | 13 raise NotImplementedError |
| 13 | 14 |
| 14 def __call__(self, environ, start_response): | 15 def __call__(self, environ, start_response): |
| 15 request = Request(environ) | 16 request = Request(environ) |
| 17 response = self.get_response(request) | |
| 18 return response(environ, start_response) | |
| 19 | |
| 20 def get_response(self, request): | |
| 21 if request.GET.get('format') == 'raw': | |
| 22 return Response(content_type=self.content_type, body=self.content) | |
| 16 content_type, body = self.transform(request) | 23 content_type, body = self.transform(request) |
| 17 return Response(content_type=content_type, body=body)(environ, start_response) | 24 return Response(content_type=content_type, body=body) |
| 25 | |
| 18 | 26 |
| 19 class Graphviz(Transformer): | 27 class Graphviz(Transformer): |
| 20 def transform(self, request): | 28 def transform(self, request): |
| 21 """create a Graphviz object""" | 29 """create a Graphviz object""" |
| 22 process = subprocess.Popen(['dot', '-Tpng'], | 30 process = subprocess.Popen(['dot', '-Tpng'], |
