summaryrefslogtreecommitdiff
path: root/vendor/bundle/ruby/3.4.0/gems/sass-embedded-1.101.0-arm64-darwin/lib/sass/compiler.rb
diff options
context:
space:
mode:
authorBen Sanders <ben@sanders.life>2026-08-02 09:49:25 -0400
committerBen Sanders <ben@sanders.life>2026-08-02 09:49:25 -0400
commitb41479c91e6685511c1f8ba8586106b322073b62 (patch)
treec9f1345999d754ae0a533849966427e792d9e68d /vendor/bundle/ruby/3.4.0/gems/sass-embedded-1.101.0-arm64-darwin/lib/sass/compiler.rb
parentcfaceeb9a6d1295f5754be211858155cd309acc2 (diff)
added statscounter code
Diffstat (limited to 'vendor/bundle/ruby/3.4.0/gems/sass-embedded-1.101.0-arm64-darwin/lib/sass/compiler.rb')
-rw-r--r--vendor/bundle/ruby/3.4.0/gems/sass-embedded-1.101.0-arm64-darwin/lib/sass/compiler.rb214
1 files changed, 214 insertions, 0 deletions
diff --git a/vendor/bundle/ruby/3.4.0/gems/sass-embedded-1.101.0-arm64-darwin/lib/sass/compiler.rb b/vendor/bundle/ruby/3.4.0/gems/sass-embedded-1.101.0-arm64-darwin/lib/sass/compiler.rb
new file mode 100644
index 0000000..2675d2a
--- /dev/null
+++ b/vendor/bundle/ruby/3.4.0/gems/sass-embedded-1.101.0-arm64-darwin/lib/sass/compiler.rb
@@ -0,0 +1,214 @@
+# frozen_string_literal: true
+
+require_relative 'canonicalize_context'
+require_relative 'compile_result'
+require_relative 'compiler/channel'
+require_relative 'compiler/connection'
+require_relative 'compiler/dispatcher'
+require_relative 'compiler/session'
+require_relative 'compiler/varint'
+require_relative 'embedded/version'
+require_relative 'embedded_protocol'
+require_relative 'exception'
+require_relative 'fork_tracker'
+require_relative 'gem_package_importer'
+require_relative 'logger/silent'
+require_relative 'logger/source_location'
+require_relative 'logger/source_span'
+require_relative 'node_package_importer'
+require_relative 'serializer'
+require_relative 'uri'
+require_relative 'value'
+
+module Sass
+ # A synchronous {Compiler}.
+ # Each compiler instance exposes the {#compile} and {#compile_string} methods within the lifespan of the compiler.
+ #
+ # @example
+ # sass = Sass::Compiler.new
+ # result = sass.compile_string('h1 { font-size: 40px; }')
+ # result = sass.compile('style.scss')
+ # sass.close
+ # @see https://sass-lang.com/documentation/js-api/classes/compiler/
+ class Compiler
+ def initialize
+ @channel = Channel.new
+ end
+
+ # Compiles the Sass file at +path+ to CSS.
+ # @param path [String]
+ # @param load_paths [Array<String>] Paths in which to look for stylesheets loaded by rules like
+ # {@use}[https://sass-lang.com/documentation/at-rules/use/] and {@import}[https://sass-lang.com/documentation/at-rules/import/].
+ # @param charset [Boolean] By default, if the CSS document contains non-ASCII characters, Sass adds a +@charset+
+ # declaration (in expanded output mode) or a byte-order mark (in compressed mode) to indicate its encoding to
+ # browsers or other consumers. If +charset+ is +false+, these annotations are omitted.
+ # @param source_map [Boolean] Whether or not Sass should generate a source map.
+ # @param source_map_include_sources [Boolean] Whether Sass should include the sources in the generated source map.
+ # @param style [Symbol] The OutputStyle of the compiled CSS.
+ # @param functions [Hash<String, Proc>] Additional built-in Sass functions that are available in all stylesheets.
+ # @param importers [Array<Object>] Custom importers that control how Sass resolves loads from rules like
+ # {@use}[https://sass-lang.com/documentation/at-rules/use/] and {@import}[https://sass-lang.com/documentation/at-rules/import/].
+ # @param alert_ascii [Boolean] If this is +true+, the compiler will exclusively use ASCII characters in its error
+ # and warning messages. Otherwise, it may use non-ASCII Unicode characters as well.
+ # @param alert_color [Boolean] If this is +true+, the compiler will use ANSI color escape codes in its error and
+ # warning messages. If it's +false+, it won't use these. If it's +nil+, the compiler will determine whether or
+ # not to use colors depending on whether the user is using an interactive terminal.
+ # @param fatal_deprecations [Array<String>] A set of deprecations to treat as fatal.
+ # @param future_deprecations [Array<String>] A set of future deprecations to opt into early.
+ # @param logger [Object] An object to use to handle warnings and/or debug messages from Sass.
+ # @param quiet_deps [Boolean] If this option is set to +true+, Sass won’t print warnings that are caused by
+ # dependencies. A “dependency” is defined as any file that’s loaded through +load_paths+ or +importer+.
+ # Stylesheets that are imported relative to the entrypoint are not considered dependencies.
+ # @param silence_deprecations [Array<String>] A set of active deprecations to ignore.
+ # @param verbose [Boolean] By default, Dart Sass will print only five instances of the same deprecation warning per
+ # compilation to avoid deluging users in console noise. If you set verbose to +true+, it will instead print every
+ # deprecation warning it encounters.
+ # @return [CompileResult]
+ # @raise [ArgumentError, CompileError, IOError]
+ # @see https://sass-lang.com/documentation/js-api/functions/compile/
+ def compile(path,
+ load_paths: [],
+
+ charset: true,
+ source_map: false,
+ source_map_include_sources: false,
+ style: :expanded,
+
+ functions: {},
+ importers: [],
+
+ alert_ascii: false,
+ alert_color: nil,
+ fatal_deprecations: [],
+ future_deprecations: [],
+ logger: nil,
+ quiet_deps: false,
+ silence_deprecations: [],
+ verbose: false)
+ raise ArgumentError, 'path must be set' if path.nil?
+
+ Session.new(@channel).compile_request(
+ path:,
+ source: nil,
+ importer: nil,
+ load_paths:,
+ syntax: nil,
+ url: nil,
+ charset:,
+ source_map:,
+ source_map_include_sources:,
+ style:,
+ functions:,
+ importers:,
+ alert_color:,
+ alert_ascii:,
+ fatal_deprecations:,
+ future_deprecations:,
+ logger:,
+ quiet_deps:,
+ silence_deprecations:,
+ verbose:
+ )
+ end
+
+ # Compiles a stylesheet whose contents is +source+ to CSS.
+ # @param source [String]
+ # @param importer [Object] The importer to use to handle loads that are relative to the entrypoint stylesheet.
+ # @param load_paths [Array<String>] Paths in which to look for stylesheets loaded by rules like
+ # {@use}[https://sass-lang.com/documentation/at-rules/use/] and {@import}[https://sass-lang.com/documentation/at-rules/import/].
+ # @param syntax [Symbol] The Syntax to use to parse the entrypoint stylesheet.
+ # @param url [String] The canonical URL of the entrypoint stylesheet. If this is passed along with +importer+, it's
+ # used to resolve relative loads in the entrypoint stylesheet.
+ # @param charset [Boolean] By default, if the CSS document contains non-ASCII characters, Sass adds a +@charset+
+ # declaration (in expanded output mode) or a byte-order mark (in compressed mode) to indicate its encoding to
+ # browsers or other consumers. If +charset+ is +false+, these annotations are omitted.
+ # @param source_map [Boolean] Whether or not Sass should generate a source map.
+ # @param source_map_include_sources [Boolean] Whether Sass should include the sources in the generated source map.
+ # @param style [Symbol] The OutputStyle of the compiled CSS.
+ # @param functions [Hash<String, Proc>] Additional built-in Sass functions that are available in all stylesheets.
+ # @param importers [Array<Object>] Custom importers that control how Sass resolves loads from rules like
+ # {@use}[https://sass-lang.com/documentation/at-rules/use/] and {@import}[https://sass-lang.com/documentation/at-rules/import/].
+ # @param alert_ascii [Boolean] If this is +true+, the compiler will exclusively use ASCII characters in its error
+ # and warning messages. Otherwise, it may use non-ASCII Unicode characters as well.
+ # @param alert_color [Boolean] If this is +true+, the compiler will use ANSI color escape codes in its error and
+ # warning messages. If it's +false+, it won't use these. If it's +nil+, the compiler will determine whether or
+ # not to use colors depending on whether the user is using an interactive terminal.
+ # @param fatal_deprecations [Array<String>] A set of deprecations to treat as fatal.
+ # @param future_deprecations [Array<String>] A set of future deprecations to opt into early.
+ # @param logger [Object] An object to use to handle warnings and/or debug messages from Sass.
+ # @param quiet_deps [Boolean] If this option is set to +true+, Sass won’t print warnings that are caused by
+ # dependencies. A “dependency” is defined as any file that’s loaded through +load_paths+ or +importer+.
+ # Stylesheets that are imported relative to the entrypoint are not considered dependencies.
+ # @param silence_deprecations [Array<String>] A set of active deprecations to ignore.
+ # @param verbose [Boolean] By default, Dart Sass will print only five instances of the same deprecation warning per
+ # compilation to avoid deluging users in console noise. If you set verbose to +true+, it will instead print every
+ # deprecation warning it encounters.
+ # @return [CompileResult]
+ # @raise [ArgumentError, CompileError, IOError]
+ # @see https://sass-lang.com/documentation/js-api/functions/compilestring/
+ def compile_string(source,
+ importer: nil,
+ load_paths: [],
+ syntax: :scss,
+ url: nil,
+
+ charset: true,
+ source_map: false,
+ source_map_include_sources: false,
+ style: :expanded,
+
+ functions: {},
+ importers: [],
+
+ alert_ascii: false,
+ alert_color: nil,
+ fatal_deprecations: [],
+ future_deprecations: [],
+ logger: nil,
+ quiet_deps: false,
+ silence_deprecations: [],
+ verbose: false)
+ raise ArgumentError, 'source must be set' if source.nil?
+
+ Session.new(@channel).compile_request(
+ path: nil,
+ source:,
+ importer:,
+ load_paths:,
+ syntax:,
+ url:,
+ charset:,
+ source_map:,
+ source_map_include_sources:,
+ style:,
+ functions:,
+ importers:,
+ alert_color:,
+ alert_ascii:,
+ fatal_deprecations:,
+ future_deprecations:,
+ logger:,
+ quiet_deps:,
+ silence_deprecations:,
+ verbose:
+ )
+ end
+
+ # @return [String] Information about the Sass implementation.
+ # @see https://sass-lang.com/documentation/js-api/variables/info/
+ def info
+ @info ||= [
+ ['sass-embedded', Embedded::VERSION, '(Embedded Host)', '[Ruby]'].join("\t"),
+ Session.new(@channel).version_request.join("\t")
+ ].join("\n").freeze
+ end
+
+ def close
+ @channel.close
+ end
+
+ def closed?
+ @channel.closed?
+ end
+ end
+end