123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- require 'tilt/template'
- module Tilt
- # Sass template implementation. See:
- # http://haml.hamptoncatlin.com/
- #
- # Sass templates do not support object scopes, locals, or yield.
- class SassTemplate < Template
- self.default_mime_type = 'text/css'
- def self.engine_initialized?
- defined? ::Sass::Engine
- end
- def initialize_engine
- require_template_library 'sass'
- end
- def prepare
- @engine = ::Sass::Engine.new(data, sass_options)
- end
- def evaluate(scope, locals, &block)
- @output ||= @engine.render
- end
- private
- def sass_options
- options.merge(:filename => eval_file, :line => line, :syntax => :sass)
- end
- end
- # Sass's new .scss type template implementation.
- class ScssTemplate < SassTemplate
- self.default_mime_type = 'text/css'
- private
- def sass_options
- options.merge(:filename => eval_file, :line => line, :syntax => :scss)
- end
- end
- # Lessscss template implementation. See:
- # http://lesscss.org/
- #
- # Less templates do not support object scopes, locals, or yield.
- class LessTemplate < Template
- self.default_mime_type = 'text/css'
- def self.engine_initialized?
- defined? ::Less
- end
- def initialize_engine
- require_template_library 'less'
- end
- def prepare
- if ::Less.const_defined? :Engine
- @engine = ::Less::Engine.new(data)
- else
- parser = ::Less::Parser.new(:filename => eval_file, :line => line)
- @engine = parser.parse(data)
- end
- end
- def evaluate(scope, locals, &block)
- @output ||= @engine.to_css
- end
- end
- end
|