controllers.py 966 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import slimit
  2. import cssmin
  3. from importer import Importer
  4. class CacheController:
  5. __cached__ = 'cached/'
  6. __aliases__ = {}
  7. def GET(self, files):
  8. cache = Importer(extension=self.__extension__,
  9. root=self.__root__,
  10. cached=self.__cached__)
  11. for alias, path in self.__aliases__.iteritems():
  12. cache.set_alias(alias, path)
  13. for f in files.split(','):
  14. cache.add(f)
  15. output = cache.output()
  16. if hasattr(self, 'minify'):
  17. output = self.minify(output)
  18. return output
  19. class JsCache(CacheController):
  20. __url__ = '/js/(.*)'
  21. __root__ = 'static/js/'
  22. __extension__ = 'js'
  23. def minify(self, output):
  24. return slimit.minify(output)
  25. class CssCache(CacheController):
  26. __url__ = '/css/(.*)'
  27. __root__ = 'static/css/'
  28. __extension__ = 'css'
  29. def minify(self, output):
  30. return cssmin.cssmin(output)