class SassRenderer def initialize(templatedir, outdir, verbose) @templatedir = templatedir @outdir = outdir @verbose = verbose end def name 'sass/compass' end def handle?(file) (file =~ /\.sass$/) || (file =~ /\.scss$/) end def render(file, stats) scss = file =~ /\.scss$/ ifile = File.join(@templatedir, file) ofile = File.join(@outdir, File.basename(file, scss ? '.scss' : '.sass') + '.css') lines = IO::readlines(ifile).join('') options = Compass.sass_engine_options options[:syntax] = scss ? :scss : :sass engine = Sass::Engine.new(lines, options) lines = engine.render File.new(ofile, 'w').write(lines) end end Renderer.register SassRenderer