sass-embedded 1.57.1-arm64-darwin → 1.58.0-arm64-darwin

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f86d98787cec3e53533b3726fab6ffd26fb080f7cf2e79e78ae9c5c05b240c30
4
- data.tar.gz: cfba9964b964b5d46d74e935760ce589eade05f6142648d6c5997d6b50b7ed50
3
+ metadata.gz: f36781344863e3fe00ba6a4f976b0f1340eb92957df1b3071ca8017f1643dc75
4
+ data.tar.gz: 4d14ada11b653af947a7cb46716f1449d035d0663d6d5efd42220131733031bb
5
5
  SHA512:
6
- metadata.gz: fd0a0e8de87900900fb13edb3ef8ed2680a1a1703e38985b3c96950ab67816a80fade1af79bb3521e4bd06210d2e0a47d094fe5b4c3874cb4dfa0451d2029b67
7
- data.tar.gz: a7f40fa2839a042aa95da45ade6a1e880fc493dbd91600830769590c2c89cbb2bdb3f83b499e2f2f0c58a34899475e5165c853b3a375da99a0de595940101b1b
6
+ metadata.gz: 11006f2b3b8d2424cbc0c10fd39acaf31d1caf440ab0e0c6e96737611928ffd160de7d026a81f15c08147aa1efff63ae510b254f3e172d63ed655893caad91bd
7
+ data.tar.gz: b7451ba4529945426c1eb005bac3c7dccc9fecb29ff66696b527d1be0481a3107653eb7cb67dd48efbd4d0a439351d7662f7e9d1b8e1eaaea7e90506c253025b
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: arm64-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!