Class: Middleman::Renderers::Sass::SassPlusCSSFilenameTemplate

Inherits:
Tilt::SassTemplate
  • Object
show all
Defined in:
lib/middleman-core/renderers/sass.rb

Overview

A SassTemplate for Tilt which outputs debug messages

Instance Method Summary collapse

Constructor Details

#initialize(*args, &block) ⇒ SassPlusCSSFilenameTemplate

Returns a new instance of SassPlusCSSFilenameTemplate.



41
42
43
44
45
46
47
# File 'lib/middleman-core/renderers/sass.rb', line 41

def initialize(*args, &block)
  super
  
  if @options.has_key?(:context)
    @context = @options[:context]
  end
end

Instance Method Details

#evaluate(context, locals, &block) ⇒ String

Add exception messaging

Parameters:

  • context (Class)
  • locals (Hash)

Returns:



61
62
63
64
65
66
67
68
69
70
# File 'lib/middleman-core/renderers/sass.rb', line 61

def evaluate(context, locals, &block)
  @context ||= context
  @engine = ::Sass::Engine.new(data, sass_options)

  begin
    @engine.render
  rescue ::Sass::SyntaxError => e
    ::Sass::SyntaxError.exception_to_css(e, :full_exception => true)
  end
end

#prepareObject



55
# File 'lib/middleman-core/renderers/sass.rb', line 55

def prepare; end

#sass_optionsHash

Change Sass path, for url functions, to the build folder if we’re building

Returns:

  • (Hash)


74
75
76
77
78
79
80
81
82
83
84
85
86
# File 'lib/middleman-core/renderers/sass.rb', line 74

def sass_options
  more_opts = { :filename => eval_file, :line => line, :syntax => syntax }
  
  if @context.is_a?(::Middleman::Application) && file
    location_of_sass_file = @context.source_dir
  
    parts = basename.split('.')
    parts.pop
    more_opts[:css_filename] = File.join(location_of_sass_file, @context.config[:css_dir], parts.join("."))
  end
  
  options.merge(more_opts)
end

#syntaxSymbol

Define the expected syntax for the template

Returns:



51
52
53
# File 'lib/middleman-core/renderers/sass.rb', line 51

def syntax
  :sass
end