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
49
50
51
52
|
# File 'lib/compass-rails-source-maps/sass_template.rb', line 16
def evaluate(context, locals, &block)
cache_store = SassCacheStore.new(context.environment)
paths = context.environment.paths.map { |path| CompassRails::SpriteImporter.new(context, path) }
paths += context.environment.paths.map { |path| CompassRailsSourceMaps::SassImporter.new(context, path) }
paths += ::Rails.application.config.sass.load_paths
options = CompassRails.sass_config.merge({
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: CompassRailsSourceMaps::SassImporter.new(context, context.pathname),
load_paths: paths,
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
|