sass-embedded 1.69.7-arm-linux-gnueabihf → 1.70.0-arm-linux-gnueabihf

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,31 +5,26 @@ module Sass
5
5
  module Serializer
6
6
  module_function
7
7
 
8
- def serialize_quoted_string(string, ascii_only: false)
9
- buffer = [0x22]
10
- string.each_codepoint do |codepoint|
11
- if codepoint.zero?
12
- # If the character is NULL (U+0000), then the REPLACEMENT CHARACTER (U+FFFD).
13
- buffer << 0xFFFD
14
- elsif codepoint == 0x22
15
- # If the character is '"' (U+0022) or "\" (U+005C), then the escaped character.
16
- buffer << 0x5C << 0x22
17
- elsif codepoint == 0x5C
18
- # If the character is '"' (U+0022) or "\" (U+005C), then the escaped character.
19
- buffer << 0x5C << 0x5C
20
- elsif codepoint < 0x20 || (ascii_only ? codepoint >= 0x7F : codepoint == 0x7F)
21
- # If the character is in the range [\1-\1f] (U+0001 to U+001F) or is U+007F,
22
- # then the character escaped as code point.
23
- buffer << 0x5C
24
- buffer.concat(codepoint.to_s(16).codepoints)
25
- buffer << 0x20
26
- else
27
- # Otherwise, the character itself.
28
- buffer << codepoint
29
- end
8
+ CSS_ESCAPE = {
9
+ "\0" => "\uFFFD",
10
+ '\\' => '\\\\',
11
+ '"' => '\\"',
12
+ "'" => "\\'",
13
+ **[*"\x01".."\x08", *"\x0A".."\x1F", "\x7F"].product(
14
+ [*'0'..'9', *'a'..'f', *'A'..'F', "\t", ' ', nil]
15
+ ).to_h do |c, x|
16
+ ["#{c}#{x}".freeze, "\\#{c.ord.to_s(16)}#{" #{x}" if x}".freeze]
17
+ end
18
+ }.freeze
19
+
20
+ private_constant :CSS_ESCAPE
21
+
22
+ def serialize_quoted_string(string)
23
+ if !string.include?('"') || string.include?("'")
24
+ %("#{string.gsub(/[\0\\"]|[\x01-\x08\x0A-\x1F\x7F][\h\t ]?/, CSS_ESCAPE)}")
25
+ else
26
+ %('#{string.gsub(/[\0\\']|[\x01-\x08\x0A-\x1F\x7F][\h\t ]?/, CSS_ESCAPE)}')
30
27
  end
31
- buffer << 0x22
32
- buffer.pack('U*')
33
28
  end
34
29
 
35
30
  def serialize_unquoted_string(string)
@@ -10,17 +10,17 @@ module Sass
10
10
  # @see https://sass-lang.com/documentation/js-api/classes/sassargumentlist/
11
11
  class ArgumentList < List
12
12
  # @param contents [Array<Value>]
13
- # @param keywords [Hash<::String, Value>]
13
+ # @param keywords [Hash<Symbol, Value>]
14
14
  # @param separator [::String]
15
15
  def initialize(contents = [], keywords = {}, separator = ',')
16
16
  super(contents, separator:)
17
17
 
18
18
  @id = 0
19
19
  @keywords_accessed = false
20
- @keywords = keywords.transform_keys(&:to_s).freeze
20
+ @keywords = keywords.freeze
21
21
  end
22
22
 
23
- # @return [Hash<::String, Value>]
23
+ # @return [Hash<Symbol, Value>]
24
24
  def keywords
25
25
  @keywords_accessed = true
26
26
  @keywords
@@ -21,9 +21,6 @@ module Sass
21
21
  @bracketed = bracketed.freeze
22
22
  end
23
23
 
24
- # @return [Array<Value>]
25
- attr_reader :contents
26
-
27
24
  # @return [::String, nil]
28
25
  attr_reader :separator
29
26
 
@@ -35,7 +32,7 @@ module Sass
35
32
  # @return [::Boolean]
36
33
  def ==(other)
37
34
  (other.is_a?(Sass::Value::List) &&
38
- other.contents == contents &&
35
+ other.to_a == to_a &&
39
36
  other.separator == separator &&
40
37
  other.bracketed? == bracketed?) ||
41
38
  (to_a.empty? && other.is_a?(Sass::Value::Map) && other.to_a.empty?)
@@ -56,7 +53,10 @@ module Sass
56
53
  @hash ||= contents.hash
57
54
  end
58
55
 
59
- alias to_a contents
56
+ # @return [Array<Value>]
57
+ def to_a
58
+ @contents
59
+ end
60
60
 
61
61
  # @return [Map, nil]
62
62
  def to_map
@@ -63,8 +63,8 @@ module Sass
63
63
  end
64
64
 
65
65
  @value = value.freeze
66
- @numerator_units = numerator_units.freeze
67
- @denominator_units = denominator_units.freeze
66
+ @numerator_units = numerator_units.each(&:freeze).freeze
67
+ @denominator_units = denominator_units.each(&:freeze).freeze
68
68
  end
69
69
 
70
70
  # @return [Numeric]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sass-embedded
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.69.7
4
+ version: 1.70.0
5
5
  platform: arm-linux-gnueabihf
6
6
  authors:
7
7
  - なつき
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-01-02 00:00:00.000000000 Z
11
+ date: 2024-01-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: google-protobuf
@@ -57,7 +57,6 @@ files:
57
57
  - lib/sass/compiler/host/logger_registry.rb
58
58
  - lib/sass/compiler/host/protofier.rb
59
59
  - lib/sass/compiler/host/structifier.rb
60
- - lib/sass/compiler/host/value_protofier.rb
61
60
  - lib/sass/compiler/varint.rb
62
61
  - lib/sass/elf.rb
63
62
  - lib/sass/embedded.rb
@@ -87,8 +86,9 @@ homepage: https://github.com/sass-contrib/sass-embedded-host-ruby
87
86
  licenses:
88
87
  - MIT
89
88
  metadata:
90
- documentation_uri: https://rubydoc.info/gems/sass-embedded/1.69.7
91
- source_code_uri: https://github.com/sass-contrib/sass-embedded-host-ruby/tree/v1.69.7
89
+ bug_tracker_uri: https://github.com/sass-contrib/sass-embedded-host-ruby/issues
90
+ documentation_uri: https://rubydoc.info/gems/sass-embedded/1.70.0
91
+ source_code_uri: https://github.com/sass-contrib/sass-embedded-host-ruby/tree/v1.70.0
92
92
  funding_uri: https://github.com/sponsors/ntkme
93
93
  rubygems_mfa_required: 'true'
94
94
  post_install_message:
@@ -99,14 +99,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
99
99
  requirements:
100
100
  - - ">="
101
101
  - !ruby/object:Gem::Version
102
- version: 3.1.3
102
+ version: 3.1.0
103
103
  required_rubygems_version: !ruby/object:Gem::Requirement
104
104
  requirements:
105
105
  - - ">="
106
106
  - !ruby/object:Gem::Version
107
107
  version: '0'
108
108
  requirements: []
109
- rubygems_version: 3.5.3
109
+ rubygems_version: 3.5.4
110
110
  signing_key:
111
111
  specification_version: 4
112
112
  summary: Use dart-sass with Ruby!
@@ -1,390 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Sass
4
- class Compiler
5
- class Host
6
- # The {ValueProtofier} class.
7
- #
8
- # It converts Pure Ruby types and Protobuf Ruby types.
9
- class ValueProtofier
10
- def initialize(function_registry)
11
- @function_registry = function_registry
12
- end
13
-
14
- def to_proto(obj)
15
- case obj
16
- when Sass::Value::String
17
- EmbeddedProtocol::Value.new(
18
- string: EmbeddedProtocol::Value::String.new(
19
- text: obj.text.to_str,
20
- quoted: obj.quoted?
21
- )
22
- )
23
- when Sass::Value::Number
24
- EmbeddedProtocol::Value.new(
25
- number: Number.to_proto(obj)
26
- )
27
- when Sass::Value::Color
28
- if obj.instance_eval { !defined?(@hue) }
29
- EmbeddedProtocol::Value.new(
30
- rgb_color: EmbeddedProtocol::Value::RgbColor.new(
31
- red: obj.red,
32
- green: obj.green,
33
- blue: obj.blue,
34
- alpha: obj.alpha.to_f
35
- )
36
- )
37
- elsif obj.instance_eval { !defined?(@saturation) }
38
- EmbeddedProtocol::Value.new(
39
- hwb_color: EmbeddedProtocol::Value::HwbColor.new(
40
- hue: obj.hue.to_f,
41
- whiteness: obj.whiteness.to_f,
42
- blackness: obj.blackness.to_f,
43
- alpha: obj.alpha.to_f
44
- )
45
- )
46
- else
47
- EmbeddedProtocol::Value.new(
48
- hsl_color: EmbeddedProtocol::Value::HslColor.new(
49
- hue: obj.hue.to_f,
50
- saturation: obj.saturation.to_f,
51
- lightness: obj.lightness.to_f,
52
- alpha: obj.alpha.to_f
53
- )
54
- )
55
- end
56
- when Sass::Value::ArgumentList
57
- EmbeddedProtocol::Value.new(
58
- argument_list: EmbeddedProtocol::Value::ArgumentList.new(
59
- id: obj.instance_eval { @id },
60
- contents: obj.contents.map { |element| to_proto(element) },
61
- keywords: obj.keywords.transform_values { |value| to_proto(value) },
62
- separator: ListSeparator.to_proto(obj.separator)
63
- )
64
- )
65
- when Sass::Value::List
66
- EmbeddedProtocol::Value.new(
67
- list: EmbeddedProtocol::Value::List.new(
68
- contents: obj.contents.map { |element| to_proto(element) },
69
- separator: ListSeparator.to_proto(obj.separator),
70
- has_brackets: obj.bracketed?
71
- )
72
- )
73
- when Sass::Value::Map
74
- EmbeddedProtocol::Value.new(
75
- map: EmbeddedProtocol::Value::Map.new(
76
- entries: obj.contents.map do |key, value|
77
- EmbeddedProtocol::Value::Map::Entry.new(
78
- key: to_proto(key),
79
- value: to_proto(value)
80
- )
81
- end
82
- )
83
- )
84
- when Sass::Value::Function
85
- if obj.instance_eval { @id }
86
- EmbeddedProtocol::Value.new(
87
- compiler_function: EmbeddedProtocol::Value::CompilerFunction.new(
88
- id: obj.instance_eval { @id }
89
- )
90
- )
91
- else
92
- EmbeddedProtocol::Value.new(
93
- host_function: EmbeddedProtocol::Value::HostFunction.new(
94
- id: @function_registry.register(obj.callback),
95
- signature: obj.signature
96
- )
97
- )
98
- end
99
- when Sass::Value::Mixin
100
- EmbeddedProtocol::Value.new(
101
- compiler_mixin: EmbeddedProtocol::Value::CompilerMixin.new(
102
- id: obj.instance_eval { @id }
103
- )
104
- )
105
- when Sass::Value::Calculation
106
- EmbeddedProtocol::Value.new(
107
- calculation: Calculation.to_proto(obj)
108
- )
109
- when Sass::Value::Boolean
110
- EmbeddedProtocol::Value.new(
111
- singleton: obj.value ? :TRUE : :FALSE
112
- )
113
- when Sass::Value::Null
114
- EmbeddedProtocol::Value.new(
115
- singleton: :NULL
116
- )
117
- else
118
- raise Sass::ScriptError, "Unknown Sass::Value #{obj}"
119
- end
120
- end
121
-
122
- def from_proto(proto)
123
- oneof = proto.value
124
- obj = proto.public_send(oneof)
125
- case oneof
126
- when :string
127
- Sass::Value::String.new(
128
- obj.text,
129
- quoted: obj.quoted
130
- )
131
- when :number
132
- Number.from_proto(obj)
133
- when :rgb_color
134
- Sass::Value::Color.new(
135
- red: obj.red,
136
- green: obj.green,
137
- blue: obj.blue,
138
- alpha: obj.alpha
139
- )
140
- when :hsl_color
141
- Sass::Value::Color.new(
142
- hue: obj.hue,
143
- saturation: obj.saturation,
144
- lightness: obj.lightness,
145
- alpha: obj.alpha
146
- )
147
- when :hwb_color
148
- Sass::Value::Color.new(
149
- hue: obj.hue,
150
- whiteness: obj.whiteness,
151
- blackness: obj.blackness,
152
- alpha: obj.alpha
153
- )
154
- when :argument_list
155
- Sass::Value::ArgumentList.new(
156
- obj.contents.map do |element|
157
- from_proto(element)
158
- end,
159
- obj.keywords.entries.to_h.transform_values! do |value|
160
- from_proto(value)
161
- end,
162
- ListSeparator.from_proto(obj.separator)
163
- ).instance_eval do
164
- @id = obj.id
165
- self
166
- end
167
- when :list
168
- Sass::Value::List.new(
169
- obj.contents.map do |element|
170
- from_proto(element)
171
- end,
172
- separator: ListSeparator.from_proto(obj.separator),
173
- bracketed: obj.has_brackets
174
- )
175
- when :map
176
- Sass::Value::Map.new(
177
- obj.entries.to_h do |entry|
178
- [from_proto(entry.key), from_proto(entry.value)]
179
- end
180
- )
181
- when :compiler_function
182
- Sass::Value::Function.new(nil).instance_eval do
183
- @id = obj.id
184
- self
185
- end
186
- when :host_function
187
- raise Sass::ScriptError, 'The compiler may not send Value.host_function to host'
188
- when :compiler_mixin
189
- Sass::Value::Mixin.send(:new).instance_eval do
190
- @id = obj.id
191
- self
192
- end
193
- when :calculation
194
- Calculation.from_proto(obj)
195
- when :singleton
196
- case obj
197
- when :TRUE
198
- Sass::Value::Boolean::TRUE
199
- when :FALSE
200
- Sass::Value::Boolean::FALSE
201
- when :NULL
202
- Sass::Value::Null::NULL
203
- else
204
- raise Sass::ScriptError, "Unknown Value.singleton #{obj}"
205
- end
206
- else
207
- raise Sass::ScriptError, "Unknown Value.value #{obj}"
208
- end
209
- end
210
-
211
- # The {Number} Protofier.
212
- module Number
213
- module_function
214
-
215
- def to_proto(obj)
216
- EmbeddedProtocol::Value::Number.new(
217
- value: obj.value.to_f,
218
- numerators: obj.numerator_units,
219
- denominators: obj.denominator_units
220
- )
221
- end
222
-
223
- def from_proto(obj)
224
- Sass::Value::Number.new(
225
- obj.value, {
226
- numerator_units: obj.numerators.to_a,
227
- denominator_units: obj.denominators.to_a
228
- }
229
- )
230
- end
231
- end
232
-
233
- private_constant :Number
234
-
235
- # The {Calculation} Protofier.
236
- module Calculation
237
- module_function
238
-
239
- def to_proto(obj)
240
- EmbeddedProtocol::Value::Calculation.new(
241
- name: obj.name,
242
- arguments: obj.arguments.map { |argument| CalculationValue.to_proto(argument) }
243
- )
244
- end
245
-
246
- def from_proto(obj)
247
- Sass::Value::Calculation.send(
248
- :new,
249
- obj.name,
250
- obj.arguments.map { |argument| CalculationValue.from_proto(argument) }
251
- )
252
- end
253
- end
254
-
255
- private_constant :Calculation
256
-
257
- # The {CalculationValue} Protofier.
258
- module CalculationValue
259
- module_function
260
-
261
- def to_proto(value)
262
- case value
263
- when Sass::Value::Number
264
- EmbeddedProtocol::Value::Calculation::CalculationValue.new(
265
- number: Number.to_proto(value)
266
- )
267
- when Sass::Value::Calculation
268
- EmbeddedProtocol::Value::Calculation::CalculationValue.new(
269
- calculation: Calculation.to_proto(value)
270
- )
271
- when Sass::Value::String
272
- EmbeddedProtocol::Value::Calculation::CalculationValue.new(
273
- string: value.text
274
- )
275
- when Sass::CalculationValue::CalculationOperation
276
- EmbeddedProtocol::Value::Calculation::CalculationValue.new(
277
- operation: EmbeddedProtocol::Value::Calculation::CalculationOperation.new(
278
- operator: CalculationOperator.to_proto(value.operator),
279
- left: to_proto(value.left),
280
- right: to_proto(value.right)
281
- )
282
- )
283
- else
284
- raise Sass::ScriptError, "Unknown CalculationValue #{value}"
285
- end
286
- end
287
-
288
- def from_proto(value)
289
- oneof = value.value
290
- obj = value.public_send(oneof)
291
- case oneof
292
- when :number
293
- Number.from_proto(obj)
294
- when :calculation
295
- Calculation.from_proto(obj)
296
- when :string
297
- Sass::Value::String.new(obj, quoted: false)
298
- when :operation
299
- Sass::CalculationValue::CalculationOperation.new(
300
- CalculationOperator.from_proto(obj.operator),
301
- from_proto(obj.left),
302
- from_proto(obj.right)
303
- )
304
- else
305
- raise Sass::ScriptError, "Unknown CalculationValue #{value}"
306
- end
307
- end
308
- end
309
-
310
- private_constant :CalculationValue
311
-
312
- # The {CalculationOperator} Protofier.
313
- module CalculationOperator
314
- module_function
315
-
316
- def to_proto(operator)
317
- case operator
318
- when '+'
319
- :PLUS
320
- when '-'
321
- :MINUS
322
- when '*'
323
- :TIMES
324
- when '/'
325
- :DIVIDE
326
- else
327
- raise Sass::ScriptError, "Unknown CalculationOperator #{separator}"
328
- end
329
- end
330
-
331
- def from_proto(operator)
332
- case operator
333
- when :PLUS
334
- '+'
335
- when :MINUS
336
- '-'
337
- when :TIMES
338
- '*'
339
- when :DIVIDE
340
- '/'
341
- else
342
- raise Sass::ScriptError, "Unknown CalculationOperator #{separator}"
343
- end
344
- end
345
- end
346
-
347
- private_constant :CalculationOperator
348
-
349
- # The {ListSeparator} Protofier.
350
- module ListSeparator
351
- module_function
352
-
353
- def to_proto(separator)
354
- case separator
355
- when ','
356
- :COMMA
357
- when ' '
358
- :SPACE
359
- when '/'
360
- :SLASH
361
- when nil
362
- :UNDECIDED
363
- else
364
- raise Sass::ScriptError, "Unknown ListSeparator #{separator}"
365
- end
366
- end
367
-
368
- def from_proto(separator)
369
- case separator
370
- when :COMMA
371
- ','
372
- when :SPACE
373
- ' '
374
- when :SLASH
375
- '/'
376
- when :UNDECIDED
377
- nil
378
- else
379
- raise Sass::ScriptError, "Unknown ListSeparator #{separator}"
380
- end
381
- end
382
- end
383
-
384
- private_constant :ListSeparator
385
- end
386
-
387
- private_constant :ValueProtofier
388
- end
389
- end
390
- end