def __init__(self, command, filename): immediate_write = True self.use_css_rewriter = False if command.rewrite: immediate_write = False self.use_css_rewriter = True super(CSSResourceAggregator, self).__init__(command, filename, immediate_write) if self.use_css_rewriter: from abl.vpath import URI from abl.cssprocessor.rewriter import CSSRewriter output = URI(filename) self.rewriter = CSSRewriter(output)
class CSSResourceAggregator(ResourceAggregator): """ This class allows to splice in the abl.cssprocessor.CSSRewriter so that image-references are re-written. """ def __init__(self, command, filename): immediate_write = True self.use_css_rewriter = False if command.rewrite: immediate_write = False self.use_css_rewriter = True super(CSSResourceAggregator, self).__init__(command, filename, immediate_write) if self.use_css_rewriter: from abl.vpath import URI from abl.cssprocessor.rewriter import CSSRewriter output = URI(filename) self.rewriter = CSSRewriter(output) def add_file(self, modname, filename): super(CSSResourceAggregator, self).add_file(modname, filename) if self.use_css_rewriter: from abl.vpath import URI css_file = URI(self.resolve_filename(modname, filename)) self.rewriter.add_css(css_file) def flush(self): super(CSSResourceAggregator, self).flush() if self.use_css_rewriter: self.rewriter.rewrite() def post_hook(self, out_filename): if self.use_css_rewriter: from abl.vpath import URI # move the images to the destination out_dir = URI(out_filename).dirname() output = self.rewriter.output (output.dirname() / "images").copy(out_dir, "r")