sassc-embedded 1.0.5 → 1.1.1

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: ba4aac10a3cd54af31dbc864abbb46373e7d3e60b70b8de8d29acbf4e3f012c9
4
- data.tar.gz: 4df26b873c9019d0abb12b20c8d2b2c90ad3684cc3748faba6e17518240c8848
3
+ metadata.gz: 94ea23724cbde018da55c68a8fa49ad4ea401b03e3b0e8ffe18ecddbc358845d
4
+ data.tar.gz: b6242dfa84029675f4484704227a881a31f0c6be6f8146c944b0a6100b420b9c
5
5
  SHA512:
6
- metadata.gz: 8bc1d6a6eac3282c5e95e01411a76c639f49e7cf91cb970f33e2a4a5456a924bf3ccb9daba21ec8d2a42cdd04737f773ec1dacb571f23214c6ac64d20bfca778
7
- data.tar.gz: b1a6d3d4c5d8a1a18d75aa0ae451ed900a8f9da0f22edfc4aec2ffe836f9307d4b3e7426744efa6ee73799d347e3e7cb8505305e84cef3906a75cd6b4cd4182d
6
+ metadata.gz: b2d72e3155a69dafeb1967969a1d44aa971f1fda65c00cc221283ed4c6637ebd8e5ec5854622ca01df96bdf2a6e72b901ae664de967e53cf73ffa55e3586cf87
7
+ data.tar.gz: 8c710e8dd44938506fef282b5266af5cfaafd2c8a06f750b2296538102c0e88cf7dfc7dae4a08f01c230a9e638a6a546413adf306ddc2f21360ee241da8c84f9
data/README.md CHANGED
@@ -51,6 +51,6 @@ See [rubydoc.info/gems/sassc](https://rubydoc.info/gems/sassc) for full API docu
51
51
 
52
52
  4. Option `:line_comments` is ignored.
53
53
 
54
- 5. In `Importer#imports(path, parent_path)`, argument `path` is set to absolute path, and argument `parent_path` is set to value of option `:filename`.
54
+ 5. Argument `parent_path` in `Importer#imports(path, parent_path)` is set to value of option `:filename`.
55
55
 
56
56
  See [the dart-sass documentation](https://github.com/sass/dart-sass#behavioral-differences-from-ruby-sass) for other differences.
@@ -2,6 +2,6 @@
2
2
 
3
3
  module SassC
4
4
  module Embedded
5
- VERSION = '1.0.5'
5
+ VERSION = '1.1.1'
6
6
  end
7
7
  end
@@ -38,14 +38,14 @@ module SassC
38
38
 
39
39
  @dependencies = result.loaded_urls
40
40
  .filter { |url| url.start_with?('file:') && url != file_url }
41
- .map { |url| Util.file_url_to_path(url) }
41
+ .map { |url| URL.file_url_to_path(url) }
42
42
  @source_map = post_process_source_map(result.source_map)
43
43
 
44
44
  return post_process_css(result.css) unless quiet?
45
45
  rescue ::Sass::CompileError => e
46
46
  line = e.span&.start&.line
47
47
  line += 1 unless line.nil?
48
- path = Util.file_url_to_path(e.span&.url)
48
+ path = URL.file_url_to_path(e.span&.url)
49
49
  path = relative_path(Dir.pwd, path) unless path.nil?
50
50
  raise SyntaxError.new(e.message, filename: path, line: line)
51
51
  end
@@ -60,7 +60,7 @@ module SassC
60
60
  end
61
61
 
62
62
  def file_url
63
- @file_url ||= Util.path_to_file_url(filename || 'stdin')
63
+ @file_url ||= URL.path_to_file_url(filename || 'stdin')
64
64
  end
65
65
 
66
66
  def syntax
@@ -98,11 +98,11 @@ module SassC
98
98
 
99
99
  source_map_dir = File.dirname(source_map_file || '')
100
100
 
101
- data['file'] = Util::URI_PARSER.escape(relative_path(source_map_dir, output_path)) if output_path
101
+ data['file'] = URL.escape(relative_path(source_map_dir, output_path)) if output_path
102
102
 
103
103
  data['sources'].map! do |source|
104
- if source.start_with? 'file:'
105
- relative_path(source_map_dir, Util.file_url_to_path(source))
104
+ if source.start_with?('file:')
105
+ relative_path(source_map_dir, URL.file_url_to_path(source))
106
106
  else
107
107
  source
108
108
  end
@@ -117,7 +117,7 @@ module SassC
117
117
  url = if source_map_embed?
118
118
  "data:application/json;base64,#{Base64.strict_encode64(@source_map)}"
119
119
  else
120
- Util::URI_PARSER.escape(relative_path(File.dirname(output_path || ''), source_map_file))
120
+ URL.escape(relative_path(File.dirname(output_path || ''), source_map_file))
121
121
  end
122
122
  css += "\n/*# sourceMappingURL=#{url} */"
123
123
  end
@@ -163,8 +163,8 @@ module SassC
163
163
  private
164
164
 
165
165
  def arguments_from_native_list(native_argument_list)
166
- native_argument_list.map do |embedded_value|
167
- Script::ValueConversion.from_native embedded_value, @options
166
+ native_argument_list.map do |native_value|
167
+ Script::ValueConversion.from_native(native_value, @options)
168
168
  end.compact
169
169
  end
170
170
 
@@ -175,7 +175,7 @@ module SassC
175
175
  raise ::Sass::ScriptError
176
176
  end
177
177
  rescue StandardError => e
178
- unless e.full_message.include? e.cause.full_message
178
+ unless e.full_message.include?(e.cause.full_message)
179
179
  ::Sass::ScriptError.class_eval do
180
180
  def full_message(*args, **kwargs)
181
181
  full_message = super(*args, **kwargs)
@@ -200,7 +200,7 @@ module SassC
200
200
  end
201
201
 
202
202
  class FileImporter
203
- def find_file_url(url, **_kwargs)
203
+ def find_file_url(url, **)
204
204
  return url if url.start_with?('file:')
205
205
  end
206
206
  end
@@ -214,8 +214,12 @@ module SassC
214
214
  end
215
215
 
216
216
  def canonicalize(url, **)
217
- path = Util.file_url_to_path(url)
218
- canonical_url = Util.path_to_file_url(File.absolute_path(path))
217
+ path = if url.start_with?('file:')
218
+ URL.file_url_to_path(url)
219
+ else
220
+ URL.unescape(url)
221
+ end
222
+ canonical_url = URL.path_to_file_url(File.absolute_path(path))
219
223
 
220
224
  if @importer_results.key?(canonical_url)
221
225
  return if @importer_results[canonical_url].nil?
@@ -225,8 +229,8 @@ module SassC
225
229
 
226
230
  canonical_url = "sassc-embedded:#{canonical_url}"
227
231
 
228
- imports = @importer.imports path, @importer.options[:filename]
229
- unless imports.is_a? Array
232
+ imports = @importer.imports(path, @importer.options[:filename])
233
+ unless imports.is_a?(Array)
230
234
  return if imports.path == path
231
235
 
232
236
  imports = [imports]
@@ -234,7 +238,7 @@ module SassC
234
238
 
235
239
  dirname = File.dirname(@importer.options.fetch(:filename, 'stdin'))
236
240
  contents = imports.map do |import|
237
- import_url = Util.path_to_file_url(File.absolute_path(import.path, dirname))
241
+ import_url = URL.path_to_file_url(File.absolute_path(import.path, dirname))
238
242
  @importer_results[import_url] = if import.source
239
243
  {
240
244
  contents: import.source,
@@ -247,7 +251,7 @@ module SassC
247
251
  :scss
248
252
  end,
249
253
  source_map_url: if import.source_map_path
250
- Util.path_to_file_url(
254
+ URL.path_to_file_url(
251
255
  File.absolute_path(
252
256
  import.source_map_path, dirname
253
257
  )
@@ -391,15 +395,25 @@ module SassC
391
395
  end
392
396
  end
393
397
 
394
- module Util
398
+ module URL
399
+ PARSER = URI::Parser.new({ RESERVED: ';/?:@&=+$,' })
400
+
401
+ private_constant :PARSER
402
+
395
403
  module_function
396
404
 
397
- URI_PARSER = URI::Parser.new({ RESERVED: ';/?:@&=+$,' })
405
+ def escape(str)
406
+ PARSER.escape(str)
407
+ end
408
+
409
+ def unescape(str)
410
+ PARSER.unescape(str)
411
+ end
398
412
 
399
413
  def file_url_to_path(url)
400
414
  return if url.nil?
401
415
 
402
- path = URI_PARSER.unescape(URI.parse(url).path)
416
+ path = unescape(URI.parse(url).path)
403
417
  path = path[1..] if Gem.win_platform? && path[0].chr == '/' && path[1].chr =~ /[a-z]/i && path[2].chr == ':'
404
418
  path
405
419
  end
@@ -408,8 +422,8 @@ module SassC
408
422
  return if path.nil?
409
423
 
410
424
  path = File.absolute_path(path)
411
- path = "/#{path}" unless path.start_with? '/'
412
- URI::File.build([nil, URI_PARSER.escape(path)]).to_s
425
+ path = "/#{path}" unless path.start_with?('/')
426
+ URI::File.build([nil, escape(path)]).to_s
413
427
  end
414
428
  end
415
429
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sassc-embedded
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.5
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - なつき
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-03-22 00:00:00.000000000 Z
11
+ date: 2022-03-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sassc
@@ -138,8 +138,8 @@ homepage: https://github.com/ntkme/sassc-embedded-polyfill-ruby
138
138
  licenses:
139
139
  - MIT
140
140
  metadata:
141
- documentation_uri: https://rubydoc.info/gems/sassc-embedded/1.0.5
142
- source_code_uri: https://github.com/ntkme/sassc-embedded-polyfill-ruby/tree/v1.0.5
141
+ documentation_uri: https://rubydoc.info/gems/sassc-embedded/1.1.1
142
+ source_code_uri: https://github.com/ntkme/sassc-embedded-polyfill-ruby/tree/v1.1.1
143
143
  funding_uri: https://github.com/sponsors/ntkme
144
144
  post_install_message:
145
145
  rdoc_options: []