diff options
| author | Benjamin Sanders <ben@Benjamins-MacBook-Pro.local> | 2025-10-11 10:34:24 -0400 |
|---|---|---|
| committer | Benjamin Sanders <ben@Benjamins-MacBook-Pro.local> | 2025-10-11 10:34:24 -0400 |
| commit | 5571dc766e2143e39762ff0b47c41d1c2e154f4c (patch) | |
| tree | f4f124d314a7e76c04484515aa0fd1f2e271a601 /vendor/bundle/ruby/3.4.0/gems/sass-embedded-1.89.2-arm64-darwin/lib/sass/exception.rb | |
| parent | 359f3309c97fc894b63e0a295c76ab298504d635 (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.rb | 74 |
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 |
