15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
# File 'lib/sass-rails-source-maps/sass_template.rb', line 15
def evaluate_with_source_maps(context, locals, &block)
cache_store = Sprockets::SassCacheStore.new(context.environment)
options = {
sourcemap_filename: ::Sass::Util::sourcemap_name(basename),
filename: eval_file,
line: line,
syntax: syntax,
cache_store: cache_store,
cache: ::Rails.application.config.assets.debug,
line_numbers: ::Rails.application.config.sass.line_numbers,
line_comments: ::Rails.application.config.sass.,
importer: SassImporter.new(context.pathname.to_s),
load_paths: context.environment.paths.map { |path| SassImporter.new(path.to_s) },
sprockets: {
context: context,
environment: context.environment
}
}
result, mapping = ::Sass::Engine.new(data, options).render_with_sourcemap("/#{SOURCE_MAPS_DIRECTORY}/#{options[:sourcemap_filename]}")
write_output(data, ::Rails.root.join("public", SOURCE_MAPS_DIRECTORY, basename).to_s)
write_output(mapping.to_json(
css_path: basename.gsub(".#{syntax.to_s}", ""),
sourcemap_path: ::Rails.root.join("public", SOURCE_MAPS_DIRECTORY, options[:sourcemap_filename])) + "\n",
::Rails.root.join("public", SOURCE_MAPS_DIRECTORY, options[:sourcemap_filename]).to_s)
copy_dependencies(context._dependency_paths)
result
rescue ::Sass::SyntaxError => e
context.__LINE__ = e.sass_backtrace.first[:line]
raise e
end
|