sass-embedded 0.14.0 → 0.15.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.
- checksums.yaml +4 -4
- data/lib/sass/embedded/compile_context.rb +4 -6
- data/lib/sass/embedded/render.rb +38 -3
- data/lib/sass/embedded/version.rb +1 -1
- data/lib/sass/embedded.rb +1 -3
- metadata +3 -7
- data/lib/sass/embedded/url.rb +0 -35
- data/lib/sass/file_importer.rb +0 -10
- data/lib/sass/importer.rb +0 -14
- data/lib/sass/importer_result.rb +0 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8b1ad905f18295ab48835d21b1e6a9c644a860154b37531eeaae2f50f16f70e9
|
4
|
+
data.tar.gz: 229fe63046318d8ce512683d11e3868e8c70d6b28897badeb74be7757ff63e7e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 20bc3d260f0ac7bd9473351b7f59a08ccd1de7720afc56c027c83025924b7c986335994a4b257344e8c8435c11b5248de2d1dd512cf5e499d85eeddd1166f260
|
7
|
+
data.tar.gz: 5cd706afea71314dc85b47d58f3d4cb9f7ecc82a0a1ed72fc8afc5f772bd98022a8026b62eb490b7c2d9c74c1045d7edb945736078e5195f8c93f858d3f6cc7f
|
@@ -145,7 +145,7 @@ module Sass
|
|
145
145
|
string: unless @source.nil?
|
146
146
|
EmbeddedProtocol::InboundMessage::CompileRequest::StringInput.new(
|
147
147
|
source: @source,
|
148
|
-
url: @url,
|
148
|
+
url: @url&.to_s,
|
149
149
|
syntax: to_proto_syntax(@syntax),
|
150
150
|
importer: @importer.nil? ? nil : to_proto_importer(@importer, @importers.length)
|
151
151
|
)
|
@@ -163,8 +163,7 @@ module Sass
|
|
163
163
|
|
164
164
|
def canonicalize_response(canonicalize_request)
|
165
165
|
importer = importer_of_id canonicalize_request.importer_id
|
166
|
-
url = importer.canonicalize
|
167
|
-
from_import: canonicalize_request.from_import
|
166
|
+
url = importer.canonicalize(canonicalize_request.url, from_import: canonicalize_request.from_import)&.to_s
|
168
167
|
|
169
168
|
EmbeddedProtocol::InboundMessage::CanonicalizeResponse.new(
|
170
169
|
id: canonicalize_request.id,
|
@@ -186,7 +185,7 @@ module Sass
|
|
186
185
|
success: EmbeddedProtocol::InboundMessage::ImportResponse::ImportSuccess.new(
|
187
186
|
contents: importer_result.contents,
|
188
187
|
syntax: to_proto_syntax(importer_result.syntax),
|
189
|
-
source_map_url: importer_result.respond_to?(:source_map_url) ? importer_result.source_map_url : nil
|
188
|
+
source_map_url: importer_result.respond_to?(:source_map_url) ? importer_result.source_map_url&.to_s : nil
|
190
189
|
)
|
191
190
|
)
|
192
191
|
rescue StandardError => e
|
@@ -198,8 +197,7 @@ module Sass
|
|
198
197
|
|
199
198
|
def file_import_response(file_import_request)
|
200
199
|
importer = importer_of_id file_import_request.importer_id
|
201
|
-
file_url = importer.find_file_url
|
202
|
-
from_import: file_import_request.from_import
|
200
|
+
file_url = importer.find_file_url(file_import_request.url, from_import: file_import_request.from_import)&.to_s
|
203
201
|
|
204
202
|
raise "file_url must be a file: URL, was \"#{file_url}\"" if !file_url.nil? && !file_url.start_with?('file:')
|
205
203
|
|
data/lib/sass/embedded/render.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
require 'base64'
|
4
4
|
require 'json'
|
5
5
|
require 'pathname'
|
6
|
-
|
6
|
+
require 'uri'
|
7
7
|
|
8
8
|
module Sass
|
9
9
|
# The {Embedded} host for using dart-sass-embedded. Each instance creates
|
@@ -309,11 +309,17 @@ module Sass
|
|
309
309
|
raise result if result.is_a? StandardError
|
310
310
|
|
311
311
|
if result&.key? :contents
|
312
|
-
@importer_results[canonical_url] =
|
312
|
+
@importer_results[canonical_url] = {
|
313
|
+
contents: result[:contents],
|
314
|
+
syntax: :scss
|
315
|
+
}
|
313
316
|
canonical_url
|
314
317
|
elsif result&.key? :file
|
315
318
|
canonical_url = Url.path_to_file_url(File.absolute_path(result[:file]))
|
316
|
-
@importer_results[canonical_url] =
|
319
|
+
@importer_results[canonical_url] = {
|
320
|
+
contents: File.read(result[:file]),
|
321
|
+
syntax: :scss
|
322
|
+
}
|
317
323
|
canonical_url
|
318
324
|
end
|
319
325
|
end
|
@@ -323,6 +329,35 @@ module Sass
|
|
323
329
|
end
|
324
330
|
end
|
325
331
|
|
332
|
+
# @deprecated
|
333
|
+
# The {Url} module.
|
334
|
+
module Url
|
335
|
+
# The {::URI::Parser} that is in consistent with RFC 2396 (URI Generic Syntax) and dart:core library.
|
336
|
+
URI_PARSER = URI::Parser.new({ RESERVED: ';/?:@&=+$,' })
|
337
|
+
|
338
|
+
FILE_SCHEME = 'file://'
|
339
|
+
|
340
|
+
private_constant :URI_PARSER, :FILE_SCHEME
|
341
|
+
|
342
|
+
module_function
|
343
|
+
|
344
|
+
def path_to_file_url(path)
|
345
|
+
if File.absolute_path? path
|
346
|
+
URI_PARSER.escape "#{FILE_SCHEME}#{Gem.win_platform? ? '/' : ''}#{path}"
|
347
|
+
else
|
348
|
+
URI_PARSER.escape path
|
349
|
+
end
|
350
|
+
end
|
351
|
+
|
352
|
+
def file_url_to_path(url)
|
353
|
+
if url.start_with? FILE_SCHEME
|
354
|
+
URI_PARSER.unescape url[(FILE_SCHEME.length + (Gem.win_platform? ? 1 : 0))..]
|
355
|
+
else
|
356
|
+
URI_PARSER.unescape url
|
357
|
+
end
|
358
|
+
end
|
359
|
+
end
|
360
|
+
|
326
361
|
private_constant :LegacyImporter
|
327
362
|
end
|
328
363
|
end
|
data/lib/sass/embedded.rb
CHANGED
@@ -4,11 +4,9 @@ require_relative 'compile_error'
|
|
4
4
|
require_relative 'compile_result'
|
5
5
|
require_relative 'embedded/channel'
|
6
6
|
require_relative 'embedded/compile_context'
|
7
|
-
require_relative 'embedded/render'
|
8
|
-
require_relative 'embedded/url'
|
7
|
+
require_relative 'embedded/render' # deprecated
|
9
8
|
require_relative 'embedded/version'
|
10
9
|
require_relative 'embedded/version_context'
|
11
|
-
require_relative 'importer_result'
|
12
10
|
require_relative 'logger'
|
13
11
|
|
14
12
|
module Sass
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sass-embedded
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.15.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- なつき
|
@@ -177,13 +177,9 @@ files:
|
|
177
177
|
- lib/sass/embedded/observer.rb
|
178
178
|
- lib/sass/embedded/protocol_error.rb
|
179
179
|
- lib/sass/embedded/render.rb
|
180
|
-
- lib/sass/embedded/url.rb
|
181
180
|
- lib/sass/embedded/version.rb
|
182
181
|
- lib/sass/embedded/version_context.rb
|
183
182
|
- lib/sass/embedded_protocol.rb
|
184
|
-
- lib/sass/file_importer.rb
|
185
|
-
- lib/sass/importer.rb
|
186
|
-
- lib/sass/importer_result.rb
|
187
183
|
- lib/sass/logger.rb
|
188
184
|
- lib/sass/logger/source_location.rb
|
189
185
|
- lib/sass/logger/source_span.rb
|
@@ -191,8 +187,8 @@ homepage: https://github.com/ntkme/sass-embedded-host-ruby
|
|
191
187
|
licenses:
|
192
188
|
- MIT
|
193
189
|
metadata:
|
194
|
-
documentation_uri: https://www.rubydoc.info/gems/sass-embedded/0.
|
195
|
-
source_code_uri: https://github.com/ntkme/sass-embedded-host-ruby/tree/v0.
|
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
|
196
192
|
funding_uri: https://github.com/sponsors/ntkme
|
197
193
|
post_install_message:
|
198
194
|
rdoc_options: []
|
data/lib/sass/embedded/url.rb
DELETED
@@ -1,35 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'uri'
|
4
|
-
|
5
|
-
module Sass
|
6
|
-
class Embedded
|
7
|
-
# The {Url} module.
|
8
|
-
module Url
|
9
|
-
# The {::URI::Parser} that is in consistent with RFC 2396 (URI Generic Syntax) and dart:core library.
|
10
|
-
URI_PARSER = URI::Parser.new({ RESERVED: ';/?:@&=+$,' })
|
11
|
-
|
12
|
-
FILE_SCHEME = 'file://'
|
13
|
-
|
14
|
-
private_constant :URI_PARSER, :FILE_SCHEME
|
15
|
-
|
16
|
-
module_function
|
17
|
-
|
18
|
-
def path_to_file_url(path)
|
19
|
-
if File.absolute_path? path
|
20
|
-
URI_PARSER.escape "#{FILE_SCHEME}#{Gem.win_platform? ? File::SEPARATOR : ''}#{path}"
|
21
|
-
else
|
22
|
-
URI_PARSER.escape path
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
def file_url_to_path(url)
|
27
|
-
if url.start_with? FILE_SCHEME
|
28
|
-
URI_PARSER.unescape url[(FILE_SCHEME.length + (Gem.win_platform? ? 1 : 0))..]
|
29
|
-
else
|
30
|
-
URI_PARSER.unescape url
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
data/lib/sass/file_importer.rb
DELETED
@@ -1,10 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Sass
|
4
|
-
# The {FileImporter} interface.
|
5
|
-
class FileImporter
|
6
|
-
def find_file_url(url, from_import:) # rubocop:disable Lint/UnusedMethodArgument
|
7
|
-
raise NotImplementedError, 'FileImporter#find_file_url must be implemented'
|
8
|
-
end
|
9
|
-
end
|
10
|
-
end
|
data/lib/sass/importer.rb
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Sass
|
4
|
-
# The {Importer} interface.
|
5
|
-
class Importer
|
6
|
-
def canonicalize(url) # rubocop:disable Lint/UnusedMethodArgument
|
7
|
-
raise NotImplementedError, 'Importer#canonicalize must be implemented'
|
8
|
-
end
|
9
|
-
|
10
|
-
def load(canonical_url) # rubocop:disable Lint/UnusedMethodArgument
|
11
|
-
raise NotImplementedError, 'Importer#load must be implemented'
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
data/lib/sass/importer_result.rb
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Sass
|
4
|
-
# The {ImporterResult} of {Importer#load}.
|
5
|
-
class ImporterResult
|
6
|
-
attr_reader :contents, :syntax, :source_map_url
|
7
|
-
|
8
|
-
def initialize(contents, syntax, source_map_url = nil)
|
9
|
-
@contents = contents
|
10
|
-
@syntax = syntax
|
11
|
-
@source_map_url = source_map_url
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|