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.



65
66
67
68
69
# File 'lib/middleman-core/renderers/sass.rb', line 65

def initialize(*args, &block)
  super

  @context = @options[:context] if @options.key?(:context)
end

Instance Method Details

#evaluate(context, _) ⇒ String

Add exception messaging

Parameters:

  • context (Class)

Returns:

  • (String)


82
83
84
85
86
87
88
89
90
91
# File 'lib/middleman-core/renderers/sass.rb', line 82

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

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

#prepareObject



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

def prepare; end

#sass_optionsHash

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

Returns:

  • (Hash)


95
96
97
98
99
100
101
102
103
104
105
106
107
# File 'lib/middleman-core/renderers/sass.rb', line 95

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:



73
74
75
# File 'lib/middleman-core/renderers/sass.rb', line 73

def syntax
  :sass
end