Files
news.gitea.happylizard.me/bin/gems/sass-embedded-1.104.1-x86_64-linux-gnu/lib/sass/value/string.rb
T
pizza2d1 4cee170d66
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 9s
Add bin and edit workflow
2026-09-16 13:11:16 -06:00

62 lines
1.5 KiB
Ruby

# frozen_string_literal: true
module Sass
module Value
# Sass's string type.
#
# @see https://sass-lang.com/documentation/js-api/classes/sassstring/
class String
include Value
include CalculationValue
# @param text [::String]
# @param quoted [::Boolean]
def initialize(text = '', quoted: true)
@text = text.freeze
@quoted = quoted
end
# @return [::String]
attr_reader :text
# @return [::Boolean]
def quoted?
@quoted
end
# @return [::Boolean]
def ==(other)
other.is_a?(Sass::Value::String) && other.text == text
end
# @return [Integer]
def hash
@hash ||= text.hash
end
# @return [String]
def assert_string(_name = nil)
self
end
# @param sass_index [Number]
# @return [Integer]
def sass_index_to_string_index(sass_index, name = nil)
index = sass_index.assert_number(name).assert_integer(name)
raise Sass::ScriptError.new('String index may not be 0', name) if index.zero?
if index.abs > text.length
raise Sass::ScriptError.new("Invalid index #{sass_index} for a string with #{text.length} characters", name)
end
index.negative? ? text.length + index : index - 1
end
# @return [::String]
def to_s
@quoted ? Serializer.serialize_quoted_string(@text) : Serializer.serialize_unquoted_string(@text)
end
end
end
end