sass-embedded 1.57.1-x86_64-darwin → 1.58.0-x86_64-darwin

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b23f54320ebed129af00858817c393da289e8fbca242a26d1b7fadc19b6cebbf
4
- data.tar.gz: 17538e8135f2f7209d8f5f7d24cb47066d3596f95488acb9df46e1a4e5e5b135
3
+ metadata.gz: d728a7ba1234d1b4da34c7174a2a803f21b4b3bab66094e1fad702c91f9ac6ac
4
+ data.tar.gz: d96905cffad2acb450fc684cefa0539e3aae416fc624c6930b7597341fe2a2e8
5
5
  SHA512:
6
- metadata.gz: 63f7e092556ff9812860a107c0bde6bf87c54e075cab887eb6040955b876a9bdce48041e09b28334ef1de798e5a6279312d1a6db6243bfe79b67cf24f23ccd97
7
- data.tar.gz: 117a7622826bc6517b40a312bfdfa55527a211f166f435824618ef8ded9ecf1f7aac96b6ea847616f4029ea83e6f46fc7a622e87fb0c44f92004aa975a20e1ba
6
+ metadata.gz: 9b44d884d7bbe4666ca84bde5a27aa816f1c14d68be95a07d08123288e79f9b8b3c345ed77693ef4dda80de454a0c4bcbbebcd5c932c2bf7f3fc1fa5eb27de63
7
+ data.tar.gz: 7058df8d3f2bd0ab4e396d5e31b4d5a002fba53279d155e888b2685765cfd3c1ab1d46d3548ab52263f9b40639dce14e98c2ae7805cc4595c527b01dc6549bce
data/ext/sass/embedded.rb CHANGED
@@ -3,7 +3,10 @@
3
3
  module Sass
4
4
  class Embedded
5
5
  class Compiler
6
- PATH = File.absolute_path('sass_embedded/dart-sass-embedded', __dir__)
6
+ COMMAND = [
7
+ File.absolute_path('sass_embedded/src/dart', __dir__),
8
+ File.absolute_path('sass_embedded/src/dart-sass-embedded.snapshot', __dir__)
9
+ ].freeze
7
10
  end
8
11
  end
9
12
  end
Binary file
@@ -9,7 +9,7 @@ module Sass
9
9
  # It runs the `dart-sass-embedded` process.
10
10
  class Compiler
11
11
  def initialize
12
- @stdin, @stdout, @stderr, @wait_thread = Open3.popen3(PATH, chdir: __dir__)
12
+ @stdin, @stdout, @stderr, @wait_thread = Open3.popen3(*COMMAND, chdir: __dir__)
13
13
  @stdin.binmode
14
14
  @stdout.binmode
15
15
  @stdin_mutex = Mutex.new
@@ -44,7 +44,13 @@ module Sass
44
44
  @mutex.synchronize do
45
45
  @observers.delete(id)
46
46
 
47
- close if @id == PROTOCOL_ERROR_ID && @observers.empty?
47
+ return unless @observers.empty?
48
+
49
+ if @id == PROTOCOL_ERROR_ID
50
+ close
51
+ else
52
+ @id = 0
53
+ end
48
54
  end
49
55
  end
50
56
 
@@ -57,7 +63,8 @@ module Sass
57
63
  end
58
64
 
59
65
  def send_message(**kwargs)
60
- @compiler.write(EmbeddedProtocol::InboundMessage.new(**kwargs).to_proto)
66
+ inbound_message = EmbeddedProtocol::InboundMessage.new(**kwargs)
67
+ @compiler.write(inbound_message.to_proto)
61
68
  end
62
69
 
63
70
  private
@@ -32,7 +32,7 @@ module Sass
32
32
  logger:,
33
33
  quiet_deps:,
34
34
  verbose:)
35
- await do
35
+ compile_response = await do
36
36
  alert_color = $stderr.tty? if alert_color.nil?
37
37
 
38
38
  @function_registry = FunctionRegistry.new(functions, alert_color: alert_color)
@@ -62,14 +62,18 @@ module Sass
62
62
  verbose: verbose
63
63
  ))
64
64
  end
65
+
66
+ Protofier.from_proto_compile_response(compile_response)
65
67
  end
66
68
 
67
69
  def version_request
68
- await do
70
+ version_response = await do
69
71
  send_message(version_request: EmbeddedProtocol::InboundMessage::VersionRequest.new(
70
72
  id: id
71
73
  ))
72
74
  end
75
+
76
+ "sass-embedded\t#{version_response.implementation_version}"
73
77
  end
74
78
 
75
79
  def log_event(message)
@@ -22,7 +22,7 @@ module Sass
22
22
  def write(writeable, value)
23
23
  bytes = []
24
24
  until value < 0x80
25
- bytes << (0x80 | (value & 0x7f))
25
+ bytes << ((value & 0x7f) | 0x80)
26
26
  value >>= 7
27
27
  end
28
28
  bytes << value
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Sass
4
4
  class Embedded
5
- VERSION = '1.57.1'
5
+ VERSION = '1.58.0'
6
6
  end
7
7
  end
data/lib/sass/embedded.rb CHANGED
@@ -28,8 +28,13 @@ require_relative 'value'
28
28
  # @example
29
29
  # Sass.compile_string('h1 { font-size: 40px; }')
30
30
  module Sass
31
+ @instance = nil
32
+ @mutex = Mutex.new
33
+
34
+ # rubocop:disable Layout/LineLength
31
35
  class << self
32
36
  # Compiles the Sass file at +path+ to CSS.
37
+ # @overload compile(path, load_paths: [], charset: true, source_map: false, source_map_include_sources: false, style: :expanded, functions: {}, importers: [], alert_ascii: false, alert_color: nil, logger: nil, quiet_deps: false, verbose: false)
33
38
  # @param (see Embedded#compile)
34
39
  # @return (see Embedded#compile)
35
40
  # @raise (see Embedded#compile)
@@ -39,6 +44,7 @@ module Sass
39
44
  end
40
45
 
41
46
  # Compiles a stylesheet whose contents is +source+ to CSS.
47
+ # @overload compile_string(source, importer: nil, load_paths: [], syntax: :scss, url: nil, charset: true, source_map: false, source_map_include_sources: false, style: :expanded, functions: {}, importers: [], alert_ascii: false, alert_color: nil, logger: nil, quiet_deps: false, verbose: false)
42
48
  # @param (see Embedded#compile_string)
43
49
  # @return (see Embedded#compile_string)
44
50
  # @raise (see Embedded#compile_string)
@@ -58,17 +64,21 @@ module Sass
58
64
  private
59
65
 
60
66
  def instance
61
- if defined? @instance
62
- @instance = Embedded.new if @instance.closed?
63
- else
67
+ return @instance if @instance
68
+
69
+ @mutex.synchronize do
70
+ return @instance if @instance
71
+
64
72
  @instance = Embedded.new
65
73
  at_exit do
66
74
  @instance.close
67
75
  end
68
76
  end
77
+
69
78
  @instance
70
79
  end
71
80
  end
81
+ # rubocop:enable Layout/LineLength
72
82
 
73
83
  # The {Embedded} host for using dart-sass-embedded. Each instance creates
74
84
  # its own communication {Channel} with a dedicated compiler process.
@@ -129,26 +139,24 @@ module Sass
129
139
  verbose: false)
130
140
  raise ArgumentError, 'path must be set' if path.nil?
131
141
 
132
- Protofier.from_proto_compile_response(
133
- Host.new(@channel).compile_request(
134
- path: path,
135
- source: nil,
136
- importer: nil,
137
- load_paths: load_paths,
138
- syntax: nil,
139
- url: nil,
140
- charset: charset,
141
- source_map: source_map,
142
- source_map_include_sources: source_map_include_sources,
143
- style: style,
144
- functions: functions,
145
- importers: importers,
146
- alert_color: alert_color,
147
- alert_ascii: alert_ascii,
148
- logger: logger,
149
- quiet_deps: quiet_deps,
150
- verbose: verbose
151
- )
142
+ Host.new(@channel).compile_request(
143
+ path: path,
144
+ source: nil,
145
+ importer: nil,
146
+ load_paths: load_paths,
147
+ syntax: nil,
148
+ url: nil,
149
+ charset: charset,
150
+ source_map: source_map,
151
+ source_map_include_sources: source_map_include_sources,
152
+ style: style,
153
+ functions: functions,
154
+ importers: importers,
155
+ alert_color: alert_color,
156
+ alert_ascii: alert_ascii,
157
+ logger: logger,
158
+ quiet_deps: quiet_deps,
159
+ verbose: verbose
152
160
  )
153
161
  end
154
162
 
@@ -205,33 +213,31 @@ module Sass
205
213
  verbose: false)
206
214
  raise ArgumentError, 'source must be set' if source.nil?
207
215
 
208
- Protofier.from_proto_compile_response(
209
- Host.new(@channel).compile_request(
210
- path: nil,
211
- source: source,
212
- importer: importer,
213
- load_paths: load_paths,
214
- syntax: syntax,
215
- url: url,
216
- charset: charset,
217
- source_map: source_map,
218
- source_map_include_sources: source_map_include_sources,
219
- style: style,
220
- functions: functions,
221
- importers: importers,
222
- alert_color: alert_color,
223
- alert_ascii: alert_ascii,
224
- logger: logger,
225
- quiet_deps: quiet_deps,
226
- verbose: verbose
227
- )
216
+ Host.new(@channel).compile_request(
217
+ path: nil,
218
+ source: source,
219
+ importer: importer,
220
+ load_paths: load_paths,
221
+ syntax: syntax,
222
+ url: url,
223
+ charset: charset,
224
+ source_map: source_map,
225
+ source_map_include_sources: source_map_include_sources,
226
+ style: style,
227
+ functions: functions,
228
+ importers: importers,
229
+ alert_color: alert_color,
230
+ alert_ascii: alert_ascii,
231
+ logger: logger,
232
+ quiet_deps: quiet_deps,
233
+ verbose: verbose
228
234
  )
229
235
  end
230
236
 
231
237
  # @return [String] Information about the Sass implementation.
232
238
  # @see https://sass-lang.com/documentation/js-api/modules#info
233
239
  def info
234
- @info ||= "sass-embedded\t#{Host.new(@channel).version_request.implementation_version}"
240
+ @info ||= Host.new(@channel).version_request
235
241
  end
236
242
 
237
243
  def close
@@ -25,6 +25,13 @@ module Sass
25
25
  @keywords_accessed = true
26
26
  @keywords
27
27
  end
28
+
29
+ private
30
+
31
+ def initialize_copy(orig)
32
+ super
33
+ @id = 0
34
+ end
28
35
  end
29
36
  end
30
37
  end
@@ -178,21 +178,21 @@ module Sass
178
178
  if max == min
179
179
  @hue = 0
180
180
  elsif max == scaled_red
181
- @hue = (60 * (scaled_green - scaled_blue) / delta) % 360
181
+ @hue = ((scaled_green - scaled_blue) * 60 / delta) % 360
182
182
  elsif max == scaled_green
183
- @hue = (120 + (60 * (scaled_blue - scaled_red) / delta)) % 360
183
+ @hue = (((scaled_blue - scaled_red) * 60 / delta) + 120) % 360
184
184
  elsif max == scaled_blue
185
- @hue = (240 + (60 * (scaled_red - scaled_green) / delta)) % 360
185
+ @hue = (((scaled_red - scaled_green) * 60 / delta) + 240) % 360
186
186
  end
187
187
 
188
- lightness = @lightness = 50 * (max + min)
188
+ lightness = @lightness = (max + min) * 50
189
189
 
190
190
  @saturation = if max == min
191
191
  0
192
192
  elsif lightness < 50
193
- 100 * delta / (max + min)
193
+ delta * 100 / (max + min)
194
194
  else
195
- 100 * delta / (2 - max - min)
195
+ delta * 100 / (2 - max - min)
196
196
  end
197
197
  end
198
198
 
@@ -88,12 +88,12 @@ module Sass
88
88
  'deg' => Rational(Math::PI, 180),
89
89
  'grad' => Rational(Math::PI, 200),
90
90
  'rad' => Rational(1),
91
- 'turn' => Rational(2 * Math::PI)
91
+ 'turn' => Rational(Math::PI * 2)
92
92
  },
93
93
  'turn' => {
94
94
  'deg' => Rational(1, 360),
95
95
  'grad' => Rational(1, 400),
96
- 'rad' => Rational(1, 2 * Math::PI),
96
+ 'rad' => Rational(1, Math::PI * 2),
97
97
  'turn' => Rational(1)
98
98
  },
99
99
 
@@ -253,7 +253,7 @@ module Sass
253
253
  self
254
254
  end
255
255
 
256
- protected
256
+ private
257
257
 
258
258
  def single_unit?
259
259
  numerator_units.length == 1 && denominator_units.empty?
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.57.1
4
+ version: 1.58.0
5
5
  platform: x86_64-darwin
6
6
  authors:
7
7
  - なつき
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-12-20 00:00:00.000000000 Z
11
+ date: 2023-02-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: google-protobuf
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 1.40.0
61
+ version: 1.44.0
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 1.40.0
68
+ version: 1.44.0
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rubocop-performance
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -100,14 +100,14 @@ dependencies:
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: 2.16.0
103
+ version: 2.18.0
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: 2.16.0
110
+ version: 2.18.0
111
111
  description: A Ruby library that will communicate with Embedded Dart Sass using the
112
112
  Embedded Sass protocol.
113
113
  email:
@@ -161,8 +161,8 @@ homepage: https://github.com/ntkme/sass-embedded-host-ruby
161
161
  licenses:
162
162
  - MIT
163
163
  metadata:
164
- documentation_uri: https://rubydoc.info/gems/sass-embedded/1.57.1
165
- source_code_uri: https://github.com/ntkme/sass-embedded-host-ruby/tree/v1.57.1
164
+ documentation_uri: https://rubydoc.info/gems/sass-embedded/1.58.0
165
+ source_code_uri: https://github.com/ntkme/sass-embedded-host-ruby/tree/v1.58.0
166
166
  funding_uri: https://github.com/sponsors/ntkme
167
167
  post_install_message:
168
168
  rdoc_options: []
@@ -179,7 +179,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
179
179
  - !ruby/object:Gem::Version
180
180
  version: '0'
181
181
  requirements: []
182
- rubygems_version: 3.3.26
182
+ rubygems_version: 3.4.6
183
183
  signing_key:
184
184
  specification_version: 4
185
185
  summary: Use dart-sass with Ruby!