lib/sass.rb
# frozen_string_literal: true require_relative 'sass/compile_error' require_relative 'sass/compile_result' require_relative 'sass/embedded' require_relative 'sass/embedded/async' require_relative 'sass/embedded/channel' require_relative 'sass/embedded/compiler' require_relative 'sass/embedded/dispatcher' require_relative 'sass/embedded/host' require_relative 'sass/embedded/host/function_registry' require_relative 'sass/embedded/host/importer_registry' require_relative 'sass/embedded/host/logger_registry' require_relative 'sass/embedded/host/value_protofier' require_relative 'sass/embedded/protofier' require_relative 'sass/embedded/structifier' require_relative 'sass/embedded/varint' require_relative 'sass/embedded/version' require_relative 'sass/embedded_protocol' require_relative 'sass/logger' require_relative 'sass/logger/source_location' require_relative 'sass/logger/source_span' require_relative 'sass/script_error' require_relative 'sass/value' require_relative 'sass/value/list' require_relative 'sass/value/argument_list' require_relative 'sass/value/boolean' require_relative 'sass/value/color' require_relative 'sass/value/function' require_relative 'sass/value/fuzzy_math' require_relative 'sass/value/map' require_relative 'sass/value/null' require_relative 'sass/value/number' require_relative 'sass/value/number/unit' require_relative 'sass/value/string' # The Sass module. # # This communicates with Embedded Dart Sass using the Embedded Sass protocol. # # @example # Sass.compile('style.scss') # # @example # Sass.compile_string('h1 { font-size: 40px; }') module Sass class << self # @return [CompileResult] # @raise [CompileError] # @see Embedded#compile def compile(path, **kwargs) instance.compile(path, **kwargs) end # @return [CompileResult] # @raise [CompileError] # @see Embedded#compile_string def compile_string(source, **kwargs) instance.compile_string(source, **kwargs) end # @return [String] # @see Embedded#info def info instance.info end private def instance if defined? @instance @instance = Embedded.new if @instance.closed? else @instance = Embedded.new at_exit do @instance.close end end @instance end end end