class Sass::Plugin::Compiler
def update_stylesheet(filename, css, sourcemap)
def update_stylesheet(filename, css, sourcemap) dir = File.dirname(css) unless File.exist?(dir) run_creating_directory dir FileUtils.mkdir_p dir end begin File.read(filename) unless File.readable?(filename) # triggers an error for handling engine_opts = engine_options(:css_filename => css, :filename => filename, :sourcemap_filename => sourcemap) mapping = nil run_compilation_starting(filename, css, sourcemap) engine = Sass::Engine.for_file(filename, engine_opts) if sourcemap rendered, mapping = engine.render_with_sourcemap(File.basename(sourcemap)) else rendered = engine.render end rescue StandardError => e compilation_error_occurred = true run_compilation_error e, filename, css, sourcemap raise e unless options[:full_exception] rendered = Sass::SyntaxError.exception_to_css(e, options[:line] || 1) end write_file(css, rendered) if mapping write_file( sourcemap, mapping.to_json( :css_path => css, :sourcemap_path => sourcemap, :type => options[:sourcemap])) end run_updated_stylesheet(filename, css, sourcemap) unless compilation_error_occurred end