summaryrefslogtreecommitdiff
path: root/vendor/bundle/ruby/3.4.0/gems/sass-embedded-1.89.2-arm64-darwin/lib/sass/exception.rb
diff options
context:
space:
mode:
authorBenjamin Sanders <ben@Benjamins-MacBook-Pro.local>2025-10-11 10:34:24 -0400
committerBenjamin Sanders <ben@Benjamins-MacBook-Pro.local>2025-10-11 10:34:24 -0400
commit5571dc766e2143e39762ff0b47c41d1c2e154f4c (patch)
treef4f124d314a7e76c04484515aa0fd1f2e271a601 /vendor/bundle/ruby/3.4.0/gems/sass-embedded-1.89.2-arm64-darwin/lib/sass/exception.rb
parent359f3309c97fc894b63e0a295c76ab298504d635 (diff)
Vendor bundled gems for deployment
Diffstat (limited to 'vendor/bundle/ruby/3.4.0/gems/sass-embedded-1.89.2-arm64-darwin/lib/sass/exception.rb')
-rw-r--r--vendor/bundle/ruby/3.4.0/gems/sass-embedded-1.89.2-arm64-darwin/lib/sass/exception.rb74
1 files changed, 74 insertions, 0 deletions
diff --git a/vendor/bundle/ruby/3.4.0/gems/sass-embedded-1.89.2-arm64-darwin/lib/sass/exception.rb b/vendor/bundle/ruby/3.4.0/gems/sass-embedded-1.89.2-arm64-darwin/lib/sass/exception.rb
new file mode 100644
index 0000000..c165d86
--- /dev/null
+++ b/vendor/bundle/ruby/3.4.0/gems/sass-embedded-1.89.2-arm64-darwin/lib/sass/exception.rb
@@ -0,0 +1,74 @@
+# frozen_string_literal: true
+
+module Sass
+ # An exception thrown because a Sass compilation failed.
+ class CompileError < StandardError
+ # @return [String, nil]
+ attr_reader :sass_stack
+
+ # @return [Logger::SourceSpan, nil]
+ attr_reader :span
+
+ # @return [Array<String>]
+ attr_reader :loaded_urls
+
+ # @!visibility private
+ def initialize(message, full_message, sass_stack, span, loaded_urls)
+ super(message)
+
+ @full_message = full_message
+ @sass_stack = sass_stack
+ @span = span
+ @loaded_urls = loaded_urls
+ end
+
+ # @return [String]
+ def full_message(highlight: nil, order: nil, **)
+ return super if @full_message.nil?
+
+ highlight = Exception.to_tty? if highlight.nil?
+ if highlight
+ @full_message.dup
+ else
+ @full_message.gsub(/\e\[[0-9;]*m/, '')
+ end
+ end
+
+ # @return [String]
+ def to_css
+ content = full_message(highlight: false, order: :top)
+
+ <<~CSS.freeze
+ /* #{content.gsub('*/', "*\u2060/").gsub("\r\n", "\n").split("\n").join("\n * ")} */
+
+ body::before {
+ position: static;
+ display: block;
+ padding: 1em;
+ margin: 0 0 1em;
+ border-width: 0 0 2px;
+ border-bottom-style: solid;
+ font-family: monospace, monospace;
+ white-space: pre;
+ content: #{Serializer.serialize_quoted_string(content).gsub(/[^[:ascii:]][\h\t ]?/) do |match|
+ ordinal = match.ord
+ replacement = "\\#{ordinal.to_s(16)}"
+ if match.length > 1
+ replacement << ' ' if ordinal < 0x100000
+ replacement << match[1]
+ end
+ replacement
+ end};
+ }
+ CSS
+ end
+ end
+
+ # An exception thrown by Sass Script.
+ class ScriptError < StandardError
+ # @!visibility private
+ def initialize(message, name = nil)
+ super(name.nil? ? message : "$#{name}: #{message}")
+ end
+ end
+end