Method: Sass::Script::Value::String.quote
- Defined in:
- lib/sass/script/value/string.rb
.quote(contents, opts = {})
Returns the quoted string representation of contents.
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/sass/script/value/string.rb', line 40
def self.quote(contents, opts = {})
quote = opts[:quote]
# Short-circuit if there are no characters that need quoting.
unless contents =~ /[\n\\"']|\#\{/
quote ||= '"'
return "#{quote}#{contents}#{quote}"
end
if quote.nil?
if contents.include?('"')
if contents.include?("'")
quote = '"'
else
quote = "'"
end
else
quote = '"'
end
end
# Replace single backslashes with multiples.
contents = contents.gsub("\\", "\\\\\\\\")
# Escape interpolation.
contents = contents.gsub('#{', "\\\#{") if opts[:sass]
if quote == '"'
contents = contents.gsub('"', "\\\"")
else
contents = contents.gsub("'", "\\'")
end
contents = contents.gsub(/\n(?![a-fA-F0-9\s])/, "\\a").gsub("\n", "\\a ")
"#{quote}#{contents}#{quote}"
end
|