sass-embedded 0.15.0 → 0.16.0

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.
@@ -0,0 +1,272 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sass
4
+ class Value
5
+ # Sass's number type.
6
+ class Number < Sass::Value
7
+ def initialize(value, numerator_units = [], denominator_units = []) # rubocop:disable Lint/MissingSuper
8
+ numerator_units = [numerator_units] if numerator_units.is_a?(::String)
9
+ denominator_units = [denominator_units] if denominator_units.is_a?(::String)
10
+
11
+ unless denominator_units.empty? && numerator_units.empty?
12
+ value = value.dup
13
+ numerator_units = numerator_units.dup
14
+ new_denominator_units = []
15
+
16
+ denominator_units.each do |denominator_unit|
17
+ index = numerator_units.find_index do |numerator_unit|
18
+ factor = Unit.conversion_factor(denominator_unit, numerator_unit)
19
+ if factor.nil?
20
+ false
21
+ else
22
+ value *= factor
23
+ true
24
+ end
25
+ end
26
+ if index.nil?
27
+ new_denominator_units.push(denominator_unit)
28
+ else
29
+ numerator_units.delete_at(index)
30
+ end
31
+ end
32
+
33
+ denominator_units = new_denominator_units
34
+ end
35
+
36
+ @value = value.freeze
37
+ @numerator_units = numerator_units.freeze
38
+ @denominator_units = denominator_units.freeze
39
+ end
40
+
41
+ attr_reader :value, :numerator_units, :denominator_units
42
+
43
+ def unitless?
44
+ numerator_units.empty? && denominator_units.empty?
45
+ end
46
+
47
+ def assert_unitless(name = nil)
48
+ raise error "Expected #{self} to have no units", name unless unitless?
49
+ end
50
+
51
+ def units?
52
+ !unitless?
53
+ end
54
+
55
+ def unit?(unit)
56
+ single_unit? && numerator_units.first == unit
57
+ end
58
+
59
+ def assert_unit(unit, name = nil)
60
+ raise error "Expected #{self} to have no unit \"#{unit}\"", name unless unit?(unit)
61
+ end
62
+
63
+ def integer?
64
+ FuzzyMath.integer?(value)
65
+ end
66
+
67
+ def assert_integer(name = nil)
68
+ raise error "#{self} is not an integer", name unless integer?
69
+
70
+ to_i
71
+ end
72
+
73
+ def to_i
74
+ FuzzyMath.to_i(value)
75
+ end
76
+
77
+ def assert_between(min, max, name = nil)
78
+ FuzzyMath.assert_between(value, min, max, name)
79
+ end
80
+
81
+ def compatible_with_unit?(unit)
82
+ single_unit? && !Unit.conversion_factor(numerator_units.first, unit).nil?
83
+ end
84
+
85
+ def convert(new_numerator_units, new_denominator_units, name = nil)
86
+ Number.new(convert_value(new_numerator_units, new_denominator_units, name), new_numerator_units,
87
+ new_denominator_units)
88
+ end
89
+
90
+ def convert_value(new_numerator_units, new_denominator_units, name = nil)
91
+ coerce_or_convert_value(new_numerator_units, new_denominator_units,
92
+ coerce_unitless: false,
93
+ name: name)
94
+ end
95
+
96
+ def convert_to_match(other, name = nil, other_name = nil)
97
+ Number.new(convert_value_to_match(other, name, other_name), other.numerator_units, other.denominator_units)
98
+ end
99
+
100
+ def convert_value_to_match(other, name = nil, other_name = nil)
101
+ coerce_or_convert_value(other.numerator_units, other.denominator_units,
102
+ coerce_unitless: false,
103
+ name: name,
104
+ other: other,
105
+ other_name: other_name)
106
+ end
107
+
108
+ def coerce(new_numerator_units, new_denominator_units, name = nil)
109
+ Number.new(coerce_value(new_numerator_units, new_denominator_units, name), new_numerator_units,
110
+ new_denominator_units)
111
+ end
112
+
113
+ def coerce_value(new_numerator_units, new_denominator_units, name = nil)
114
+ coerce_or_convert_value(new_numerator_units, new_denominator_units,
115
+ coerce_unitless: true,
116
+ name: name)
117
+ end
118
+
119
+ def coerce_value_to_unit(unit, name = nil)
120
+ coerce_value([unit], [], name)
121
+ end
122
+
123
+ def coerce_to_match(other, name = nil, other_name = nil)
124
+ Number.new(coerce_value_to_match(other, name, other_name), other.numerator_units, other.denominator_units)
125
+ end
126
+
127
+ def coerce_value_to_match(other, name = nil, other_name = nil)
128
+ coerce_or_convert_value(other.numerator_units, other.denominator_units,
129
+ coerce_unitless: true,
130
+ name: name,
131
+ other: other,
132
+ other_name: other_name)
133
+ end
134
+
135
+ def assert_number(_name = nil)
136
+ self
137
+ end
138
+
139
+ def ==(other)
140
+ return false unless other.is_a? Sass::Value::Number
141
+
142
+ return false if numerator_units.length != other.numerator_units.length ||
143
+ denominator_units.length != other.denominator_units.length
144
+
145
+ return FuzzyMath.equals(value, other.value) if unitless?
146
+
147
+ if Unit.canonicalize_units(numerator_units) != Unit.canonicalize_units(other.numerator_units) &&
148
+ Unit.canonicalize_units(denominator_units) != Unit.canonicalize_units(other.denominator_units)
149
+ return false
150
+ end
151
+
152
+ FuzzyMath.equals(
153
+ (value *
154
+ Unit.canonical_multiplier(numerator_units) /
155
+ Unit.canonical_multiplier(denominator_units)),
156
+ (other.value *
157
+ Unit.canonical_multiplier(other.numerator_units) /
158
+ Unit.canonical_multiplier(other.denominator_units))
159
+ )
160
+ end
161
+
162
+ def hash
163
+ @hash ||= if unitless?
164
+ FuzzyMath.hash(value)
165
+ elsif single_unit?
166
+ FuzzyMath.hash(
167
+ value * Unit.canonical_multiplier_for_unit(numerator_units.first)
168
+ )
169
+ else
170
+ FuzzyMath.hash(
171
+ value * Unit.canonical_multiplier(numerator_units) / Unit.canonical_multiplier(denominator_units)
172
+ )
173
+ end
174
+ end
175
+
176
+ protected
177
+
178
+ def single_unit?
179
+ numerator_units.length == 1 && denominator_units.empty?
180
+ end
181
+
182
+ def coerce_or_convert_value(new_numerator_units, new_denominator_units,
183
+ coerce_unitless:,
184
+ name: nil,
185
+ other: nil,
186
+ other_name: nil)
187
+ if other && (other.numerator_units != new_denominator_units && other.denominator_units != new_denominator_units)
188
+ raise error "Expect #{other} to have units #{unit_string(new_numerator_units, new_denominator_units)}"
189
+ end
190
+
191
+ return value if numerator_units == new_numerator_units && denominator_units == new_denominator_units
192
+
193
+ return value if numerator_units == new_numerator_units && denominator_units == new_denominator_units
194
+
195
+ other_unitless = new_numerator_units.empty? && new_denominator_units.empty?
196
+
197
+ return value if coerce_unitless && (unitless? || other_unitless)
198
+
199
+ compatibility_error = lambda {
200
+ unless other.nil?
201
+ message = +"#{self} and"
202
+ message << " $#{other_name}:" unless other_name.nil?
203
+ message << " #{other} have incompatible units"
204
+ message << " (one has units and the other doesn't)" if unitless? || other_unitless
205
+ return error message, name
206
+ end
207
+
208
+ return error "Expected #{self} to have no units", name unless other_unitless
209
+
210
+ if new_numerator_units.length == 1 && new_denominator_units.empty?
211
+ type = Unit::TYPES_BY_UNIT[new_numerator_units.first]
212
+ return error "Expected #{self} to have a #{type} unit (#{Unit::UNITS_BY_TYPE[type].join(', ')})", name
213
+ end
214
+
215
+ unit_length = new_numerator_units.length + new_denominator_units.length
216
+ units = unit_string(new_numerator_units, new_denominator_units)
217
+ error "Expected #{self} to have unit#{unit_length > 1 ? 's' : ''} #{units}", name
218
+ }
219
+
220
+ result = value
221
+
222
+ old_numerator_units = numerator_units.dup
223
+ new_numerator_units.each do |new_numerator_unit|
224
+ index = old_numerator_units.find_index do |old_numerator_unit|
225
+ factor = Unit.conversion_factor(new_numerator_unit, old_numerator_unit)
226
+ if factor.nil?
227
+ false
228
+ else
229
+ result *= factor
230
+ true
231
+ end
232
+ end
233
+ raise compatibility_error.call if index.nil?
234
+
235
+ old_numerator_units.delete_at(index)
236
+ end
237
+
238
+ old_denominator_units = denominator_units.dup
239
+ new_denominator_units.each do |new_denominator_unit|
240
+ index = old_denominator_units.find_index do |old_denominator_unit|
241
+ factor = Unit.conversion_factor(new_denominator_unit, old_denominator_unit)
242
+ if factor.nil?
243
+ false
244
+ else
245
+ result /= factor
246
+ true
247
+ end
248
+ end
249
+ raise compatibility_error.call if index.nil?
250
+
251
+ old_denominator_units.delete_at(index)
252
+ end
253
+
254
+ raise compatibility_error.call unless old_numerator_units.empty? && old_denominator_units.empty?
255
+
256
+ result
257
+ end
258
+
259
+ def unit_string(numerator_units, denominator_units)
260
+ if numerator_units.empty?
261
+ return 'no units' if denominator_units.empty?
262
+
263
+ return denominator_units.length == 1 ? "#{denominator_units.first}^-1" : "(#{denominator_units.join('*')})^-1"
264
+ end
265
+
266
+ return numerator_units.join('*') if denominator_units.empty?
267
+
268
+ "#{numerator_units.join('*')}/#{denominator_units.join('*')}"
269
+ end
270
+ end
271
+ end
272
+ end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sass
4
+ class Value
5
+ # Sass's string type.
6
+ class String < Sass::Value
7
+ def initialize(text = '', quoted: true) # rubocop:disable Lint/MissingSuper
8
+ @text = text.freeze
9
+ @quoted = quoted
10
+ end
11
+
12
+ attr_reader :text
13
+
14
+ def quoted?
15
+ @quoted
16
+ end
17
+
18
+ def sass_index_to_string_index(sass_index, name = nil)
19
+ index = sass_index.assert_number(name).assert_integer(name)
20
+ raise error('String index may not be 0', name) if index.zero?
21
+
22
+ if index.abs > text.length
23
+ raise error("Invalid index #{sass_index} for a string with #{text.length} characters",
24
+ name)
25
+ end
26
+
27
+ index.negative? ? text.length + index : index - 1
28
+ end
29
+
30
+ def ==(other)
31
+ other.is_a?(Sass::Value::String) && other.text == text
32
+ end
33
+
34
+ def hash
35
+ @hash ||= text.hash
36
+ end
37
+
38
+ def assert_string(_name = nil)
39
+ self
40
+ end
41
+ end
42
+ end
43
+ end
data/lib/sass/value.rb ADDED
@@ -0,0 +1,92 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sass
4
+ # The abstract base class of Sass's value types.
5
+ class Value
6
+ def to_a
7
+ [self]
8
+ end
9
+
10
+ def to_bool
11
+ true
12
+ end
13
+
14
+ def to_map
15
+ nil
16
+ end
17
+
18
+ def to_nil
19
+ self
20
+ end
21
+
22
+ def separator
23
+ nil
24
+ end
25
+
26
+ def bracketed?
27
+ false
28
+ end
29
+
30
+ def sass_index_to_list_index(sass_index, name = nil)
31
+ index = sass_index.assert_number(name).assert_integer(name)
32
+ raise error('List index may not be 0', name) if index.zero?
33
+
34
+ if index.abs > to_a_length
35
+ raise error("Invalid index #{sass_index} for a list with #{to_a_length} elements",
36
+ name)
37
+ end
38
+
39
+ index.negative? ? to_a_length + index : index - 1
40
+ end
41
+
42
+ def at(index)
43
+ index < 1 && index >= -1 ? self : nil
44
+ end
45
+
46
+ def [](index)
47
+ at(index)
48
+ end
49
+
50
+ def assert_boolean(name = nil)
51
+ raise error("#{self} is not a boolean", name)
52
+ end
53
+
54
+ def assert_calculation(name = nil)
55
+ raise error("#{self} is not a calculation", name)
56
+ end
57
+
58
+ def assert_color(name = nil)
59
+ raise error("#{self} is not a color", name)
60
+ end
61
+
62
+ def assert_function(name = nil)
63
+ raise error("#{self} is not a function", name)
64
+ end
65
+
66
+ def assert_map(name = nil)
67
+ raise error("#{self} is not a map", name)
68
+ end
69
+
70
+ def assert_number(name = nil)
71
+ raise error("#{self} is not a number", name)
72
+ end
73
+
74
+ def assert_string(name = nil)
75
+ raise error("#{self} is not a string", name)
76
+ end
77
+
78
+ def eql?(other)
79
+ self == other
80
+ end
81
+
82
+ private
83
+
84
+ def to_a_length
85
+ 1
86
+ end
87
+
88
+ def error(message, name = nil)
89
+ Sass::ScriptError.new name.nil? ? message : "$#{name}: #{message}"
90
+ end
91
+ end
92
+ end
data/lib/sass.rb CHANGED
@@ -1,83 +1,82 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative 'sass/compile_error'
4
+ require_relative 'sass/compile_result'
3
5
  require_relative 'sass/embedded'
6
+ require_relative 'sass/embedded/channel'
7
+ require_relative 'sass/embedded/observer'
8
+ require_relative 'sass/embedded/compile_context'
9
+ require_relative 'sass/embedded/compile_context/function_registry'
10
+ require_relative 'sass/embedded/compile_context/importer_registry'
11
+ require_relative 'sass/embedded/compiler'
12
+ require_relative 'sass/embedded/compiler/path'
13
+ require_relative 'sass/embedded_protocol'
14
+ require_relative 'sass/embedded/legacy'
15
+ require_relative 'sass/embedded/protocol_error'
16
+ require_relative 'sass/embedded/protofier'
17
+ require_relative 'sass/embedded/version'
18
+ require_relative 'sass/embedded/version_context'
19
+ require_relative 'sass/logger'
20
+ require_relative 'sass/logger/source_location'
21
+ require_relative 'sass/logger/source_span'
22
+ require_relative 'sass/script_error'
23
+ require_relative 'sass/value'
24
+ require_relative 'sass/value/list'
25
+ require_relative 'sass/value/argument_list'
26
+ require_relative 'sass/value/boolean'
27
+ require_relative 'sass/value/color'
28
+ require_relative 'sass/value/function'
29
+ require_relative 'sass/value/fuzzy_math'
30
+ require_relative 'sass/value/map'
31
+ require_relative 'sass/value/null'
32
+ require_relative 'sass/value/number'
33
+ require_relative 'sass/value/number/unit'
34
+ require_relative 'sass/value/string'
4
35
 
5
- # The Sass module. This communicates with Embedded Dart Sass using
6
- # the Embedded Sass protocol.
36
+ # The Sass module.
37
+ #
38
+ # This communicates with Embedded Dart Sass using the Embedded Sass protocol.
7
39
  module Sass
8
40
  class << self
9
- # The global {.compile} method. This instantiates a global {Embedded} instance
10
- # and calls {Embedded#compile}.
41
+ # The global {.compile} method.
11
42
  #
12
- # See {Embedded#compile} for supported options.
43
+ # This instantiates a global {Embedded} instance and calls {Embedded#compile}.
44
+ #
45
+ # See {Embedded#compile} for keyword arguments.
13
46
  #
14
47
  # @example
15
48
  # Sass.compile('style.scss')
16
49
  # @return [CompileResult]
17
50
  # @raise [CompileError]
18
- # @raise [ProtocolError]
51
+ # @raise [Embedded::ProtocolError]
19
52
  def compile(path, **kwargs)
20
53
  instance.compile(path, **kwargs)
21
54
  end
22
55
 
23
- # The global {.compile_string} method. This instantiates a global {Embedded} instance
24
- # and calls {Embedded#compile_string}.
56
+ # The global {.compile_string} method.
57
+ #
58
+ # This instantiates a global {Embedded} instance and calls {Embedded#compile_string}.
25
59
  #
26
- # See {Embedded#compile_string} for supported options.
60
+ # See {Embedded#compile_string} for keyword arguments.
27
61
  #
28
62
  # @example
29
63
  # Sass.compile_string('h1 { font-size: 40px; }')
30
64
  # @return [CompileResult]
31
65
  # @raise [CompileError]
32
- # @raise [ProtocolError]
66
+ # @raise [Embedded::ProtocolError]
33
67
  def compile_string(source, **kwargs)
34
68
  instance.compile_string(source, **kwargs)
35
69
  end
36
70
 
37
- # @deprecated
38
- # The global {.include_paths} for Sass files. This is meant for plugins and
39
- # libraries to register the paths to their Sass stylesheets to that they may
40
- # be included via `@import` or `@use`. This include path is used by every
41
- # instance of {Sass::Embedded}. They are lower-precedence than any include
42
- # paths passed in via the `include_paths` option.
43
- #
44
- # If the `SASS_PATH` environment variable is set,
45
- # the initial value of `include_paths` will be initialized based on that.
46
- # The variable should be a colon-separated list of path names
47
- # (semicolon-separated on Windows).
71
+ # The global {.info} method.
48
72
  #
49
- # @example
50
- # Sass.include_paths << File.dirname(__FILE__) + '/sass'
51
- # @return [Array]
52
- def include_paths
53
- Embedded.include_paths
54
- end
55
-
56
- # The global {.info} method. This instantiates a global {Embedded} instance
57
- # and calls {Embedded#info}.
73
+ # This instantiates a global {Embedded} instance and calls {Embedded#info}.
58
74
  #
59
- # @raise [ProtocolError]
75
+ # @raise [Embedded::ProtocolError]
60
76
  def info
61
77
  instance.info
62
78
  end
63
79
 
64
- # @deprecated
65
- # The global {.render} method. This instantiates a global {Embedded} instance
66
- # and calls {Embedded#render}.
67
- #
68
- # See {Embedded#render} for supported options.
69
- #
70
- # @example
71
- # Sass.render(data: 'h1 { font-size: 40px; }')
72
- # @example
73
- # Sass.render(file: 'style.css')
74
- # @return [Result]
75
- # @raise [ProtocolError]
76
- # @raise [RenderError]
77
- def render(**kwargs)
78
- instance.render(**kwargs)
79
- end
80
-
81
80
  private
82
81
 
83
82
  def instance
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: 0.15.0
4
+ version: 0.16.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - なつき
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-02-09 00:00:00.000000000 Z
11
+ date: 2022-02-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: google-protobuf
@@ -24,62 +24,34 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: 3.19.0
27
- - !ruby/object:Gem::Dependency
28
- name: minitest
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: 5.15.0
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: 5.15.0
41
- - !ruby/object:Gem::Dependency
42
- name: minitest-around
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: 0.5.0
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: 0.5.0
55
27
  - !ruby/object:Gem::Dependency
56
28
  name: rake
57
29
  requirement: !ruby/object:Gem::Requirement
58
30
  requirements:
59
31
  - - "~>"
60
32
  - !ruby/object:Gem::Version
61
- version: 13.0.6
33
+ version: 13.0.0
62
34
  type: :development
63
35
  prerelease: false
64
36
  version_requirements: !ruby/object:Gem::Requirement
65
37
  requirements:
66
38
  - - "~>"
67
39
  - !ruby/object:Gem::Version
68
- version: 13.0.6
40
+ version: 13.0.0
69
41
  - !ruby/object:Gem::Dependency
70
42
  name: rspec
71
43
  requirement: !ruby/object:Gem::Requirement
72
44
  requirements:
73
45
  - - "~>"
74
46
  - !ruby/object:Gem::Version
75
- version: 3.10.0
47
+ version: 3.11.0
76
48
  type: :development
77
49
  prerelease: false
78
50
  version_requirements: !ruby/object:Gem::Requirement
79
51
  requirements:
80
52
  - - "~>"
81
53
  - !ruby/object:Gem::Version
82
- version: 3.10.0
54
+ version: 3.11.0
83
55
  - !ruby/object:Gem::Dependency
84
56
  name: rubocop
85
57
  requirement: !ruby/object:Gem::Requirement
@@ -94,20 +66,6 @@ dependencies:
94
66
  - - "~>"
95
67
  - !ruby/object:Gem::Version
96
68
  version: 1.25.0
97
- - !ruby/object:Gem::Dependency
98
- name: rubocop-minitest
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - "~>"
102
- - !ruby/object:Gem::Version
103
- version: 0.17.0
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - "~>"
109
- - !ruby/object:Gem::Version
110
- version: 0.17.0
111
69
  - !ruby/object:Gem::Dependency
112
70
  name: rubocop-performance
113
71
  requirement: !ruby/object:Gem::Requirement
@@ -171,24 +129,40 @@ files:
171
129
  - lib/sass/embedded.rb
172
130
  - lib/sass/embedded/channel.rb
173
131
  - lib/sass/embedded/compile_context.rb
132
+ - lib/sass/embedded/compile_context/function_registry.rb
133
+ - lib/sass/embedded/compile_context/importer_registry.rb
174
134
  - lib/sass/embedded/compiler.rb
175
135
  - lib/sass/embedded/compiler/path.rb
176
136
  - lib/sass/embedded/compiler/requirements.rb
137
+ - lib/sass/embedded/legacy.rb
177
138
  - lib/sass/embedded/observer.rb
178
139
  - lib/sass/embedded/protocol_error.rb
179
- - lib/sass/embedded/render.rb
140
+ - lib/sass/embedded/protofier.rb
180
141
  - lib/sass/embedded/version.rb
181
142
  - lib/sass/embedded/version_context.rb
182
143
  - lib/sass/embedded_protocol.rb
183
144
  - lib/sass/logger.rb
184
145
  - lib/sass/logger/source_location.rb
185
146
  - lib/sass/logger/source_span.rb
147
+ - lib/sass/script_error.rb
148
+ - lib/sass/value.rb
149
+ - lib/sass/value/argument_list.rb
150
+ - lib/sass/value/boolean.rb
151
+ - lib/sass/value/color.rb
152
+ - lib/sass/value/function.rb
153
+ - lib/sass/value/fuzzy_math.rb
154
+ - lib/sass/value/list.rb
155
+ - lib/sass/value/map.rb
156
+ - lib/sass/value/null.rb
157
+ - lib/sass/value/number.rb
158
+ - lib/sass/value/number/unit.rb
159
+ - lib/sass/value/string.rb
186
160
  homepage: https://github.com/ntkme/sass-embedded-host-ruby
187
161
  licenses:
188
162
  - MIT
189
163
  metadata:
190
- documentation_uri: https://www.rubydoc.info/gems/sass-embedded/0.15.0
191
- source_code_uri: https://github.com/ntkme/sass-embedded-host-ruby/tree/v0.15.0
164
+ documentation_uri: https://www.rubydoc.info/gems/sass-embedded/0.16.0
165
+ source_code_uri: https://github.com/ntkme/sass-embedded-host-ruby/tree/v0.16.0
192
166
  funding_uri: https://github.com/sponsors/ntkme
193
167
  post_install_message:
194
168
  rdoc_options: []
@@ -205,7 +179,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
205
179
  - !ruby/object:Gem::Version
206
180
  version: '0'
207
181
  requirements: []
208
- rubygems_version: 3.3.3
182
+ rubygems_version: 3.3.7
209
183
  signing_key:
210
184
  specification_version: 4
211
185
  summary: Use dart-sass with Ruby!