Skip to content

Commit

Permalink
Added css_slimmer filter.
Browse files Browse the repository at this point in the history
  • Loading branch information
miracle2k committed Apr 20, 2012
1 parent 55c8326 commit 43a2790
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 0 deletions.
6 changes: 6 additions & 0 deletions docs/builtin_filters.rst
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,12 @@ CSS compressors
.. autoclass:: webassets.filter.cleancss.CleanCSSFilter


``slimmer_css``
~~~~~~~~~~~~~~~

.. autoclass:: webassets.filter.slimmer.CSSSlimmer


.. _filters-css-compilers:

CSS Compilers
Expand Down
1 change: 1 addition & 0 deletions requirements-dev.pip
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ cssmin
yuicompressor
closure
pyScss
slimmer

# Default rsmin package is not installable via pip
http://michael.elsdoerfer.name/rjsmin/rjsmin-1.0.1-webassets.tar.gz
Expand Down
26 changes: 26 additions & 0 deletions src/webassets/filter/slimmer.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
from __future__ import absolute_import

from webassets.filter import Filter


__all__ = ('CSSSlimmer',)


class Slimmer(Filter):

def setup(self):
super(Slimmer, self).setup()
import slimmer
self.slimmer = slimmer


class CSSSlimmer(Slimmer):
"""Minifies CSS by removing whitespace, comments etc., using the Python
`slimmer <http://pypi.python.org/pypi/slimmer/>`_ library.
"""

name = 'css_slimmer'

def output(self, _in, out, **kw):
out.write(self.slimmer.css_slimmer(_in.read()))

8 changes: 8 additions & 0 deletions tests/test_filters.py
Original file line number Diff line number Diff line change
Expand Up @@ -358,6 +358,14 @@ def test_cleancss(self):
self.mkbundle('foo.css', filters='cleancss', output='out.css').build()
assert self.get('out.css') == 'h1{font-family:"Verdana";color:#FFF}'

def test_cssslimmer(self):
try:
import slimmer
except ImportError:
raise SkipTest()
self.mkbundle('foo.css', filters='css_slimmer', output='out.css').build()
assert self.get('out.css') == 'h1{font-family:"Verdana";color:#FFF}'


class TestCoffeeScript(TempEnvironmentHelper):

Expand Down

0 comments on commit 43a2790

Please sign in to comment.