class SassC::Engine

def render

def render
  return @template.dup if @template.empty?
  result = ::Sass.compile_string(
    @template,
    importer: import_handler.setup(nil),
    load_paths: load_paths,
    syntax: syntax,
    url: file_url,
    source_map: source_map_embed? || !source_map_file.nil?,
    source_map_include_sources: source_map_contents?,
    style: output_style,
    functions: functions_handler.setup(nil, functions: @functions),
    importers: [],
    alert_ascii: @options.fetch(:alert_ascii, false),
    alert_color: @options.fetch(:alert_color, nil),
    logger: @options.fetch(:logger, nil),
    quiet_deps: @options.fetch(:quiet_deps, false),
    verbose: @options.fetch(:verbose, false)
  )
  @dependencies = result.loaded_urls
                        .filter { |url| url.start_with?('file:') && url != file_url }
                        .map { |url| URL.file_url_to_path(url) }
  @source_map = post_process_source_map(result.source_map)
  return post_process_css(result.css) unless quiet?
rescue ::Sass::CompileError => e
  line = e.span&.start&.line
  line += 1 unless line.nil?
  url = e.span&.url
  path = if url&.start_with?('file:')
           URL.parse(url).route_from(URL.path_to_file_url("#{File.absolute_path('')}/"))
         end
  raise SyntaxError.new(e.message, filename: path, line: line)
end