module Middleman::Sass

def sass_exception_string(e)

Handle Sass errors
def sass_exception_string(e)
  e_string = "#{e.class}: #{e.message}"
  if e.is_a? ::Sass::SyntaxError
    e_string << "\non line #{e.sass_line}"
    if e.sass_filename
      e_string << " of #{e.sass_filename}"
      if File.exists?(e.sass_filename)
        e_string << "\n\n"
        min = [e.sass_line - 5, 0].max
        begin
          File.read(e.sass_filename).rstrip.split("\n")[
            min .. e.sass_line + 5
          ].each_with_index do |line, i|
            e_string << "#{min + i + 1}: #{line}\n"
          end
        rescue
          e_string << "Couldn't read sass file: #{e.sass_filename}"
        end
      end
    end
  end
  <<END
string}
trace:\n#{e.backtrace.join("\n")}
:before {
ite-space: pre;
nt-family: monospace;
ntent: "#{e_string.gsub('"', '\"').gsub("\n", '\\A ')}"; }
end