From 991161fcf72e5014023f344cdda611f0475c70db Mon Sep 17 00:00:00 2001 From: Marc Rijken Date: Thu, 18 Dec 2014 01:33:01 +0100 Subject: [PATCH] first attempt for minified versions --- bowerstatic/core.py | 16 +++++++++++++- bowerstatic/tests/test_injector.py | 35 ++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+), 1 deletion(-) diff --git a/bowerstatic/core.py b/bowerstatic/core.py index e8baa29..8c55e08 100644 --- a/bowerstatic/core.py +++ b/bowerstatic/core.py @@ -1,4 +1,5 @@ import os +import re import json from .publisher import Publisher from .injector import Injector @@ -11,11 +12,12 @@ class Bower(object): """Contains a bunch of bower_components directories. """ - def __init__(self, publisher_signature='bowerstatic', autoversion=None): + def __init__(self, publisher_signature='bowerstatic', autoversion=None, use_minified=False): self.publisher_signature = publisher_signature self._component_collections = {} self._renderer = Renderer() self.autoversion = autoversion or filesystem_second_autoversion + self.use_minified = use_minified def components(self, name, path): if name in self._component_collections: @@ -45,6 +47,9 @@ def renderer(self, ext, render_func): self._renderer.register(ext, render_func) def html(self, resource): + if self.use_minified and resource.minified_resource: + resource = resource.minified_resource + return self._renderer.html(resource) def filter_by_known_ext(self, paths): @@ -274,6 +279,15 @@ def __init__(self, component, file_path, dependencies): self.dependencies = dependencies dummy, self.ext = os.path.splitext(file_path) + self.minified_resource = None + + if self.component.bower.use_minified: + file_path = re.sub(r"(?Hello!') +def test_injector_minified(): + bower = bowerstatic.Bower(use_minified=True) + + components = bower.components('components', os.path.join( + os.path.dirname(__file__), 'bower_components')) + + def wsgi(environ, start_response): + start_response('200 OK', [('Content-Type', 'text/html;charset=UTF-8')]) + include = components.includer(environ) + # going to pull in jquery-ui and jquery twice + include('jquery-ui') + include('jquery-ui-bootstrap') + return ['Hello!'] + + injector = bower.injector(wsgi) + + c = Client(injector) + + response = c.get('/') + + assert response.body == ( + b'' + b'\n' + b'\n' + b'' + b'Hello!') + + + def test_injector_no_head_to_inject(): bower = bowerstatic.Bower()