sassc-embedded 1.59.0 → 1.64.0

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: 23342013f10e27ce1e45eb7617216fdbe715e13a9e2154d1f7d91119a8665498
4
- data.tar.gz: c24f3258ac5a728c78bd79e99978ac37cd5e5eec37755d0b56c79c44cf167889
3
+ metadata.gz: a17b1cef768356ef3f6e43a55502adbba7ebd45da75563fc5490289262eced91
4
+ data.tar.gz: d09b3fcfa43e8f7a7a78bc188d19a5a970e9b7b468e533b0f58d49909b303182
5
5
  SHA512:
6
- metadata.gz: de7d1ffa2fdadb1ccd39c81b7004ae95a137ae1c34d01e215459198bc031de862092ebb05aa69cc2bf117c40b0120d3c9334048ed334d98633e1169a032cf4e7
7
- data.tar.gz: 50a7bda87697771c638c8d3325c89a71e3f6d9ff96be1763a75f5565560259358468149f827a448f6fb308e1fcbe160dcc1ba9bd9e902d04a3df0d62bb99f52d
6
+ metadata.gz: bfeb102dc0496cead90ca751d94d72cad51c2c132095654cdc0baad049f54909b284d928be53f248dee7d3b74452f0a1181c018b11714b965b8de53736c7f3f5
7
+ data.tar.gz: a9946e66a973528c32dd77ee778da708a62c3ea6095e9bc0a37cf661698f0add59cb69cb8f9a433380442a5a21a3d6c545a4e066d442ae0453c203d34d3d5654
data/README.md CHANGED
@@ -35,6 +35,12 @@ Or install it yourself as:
35
35
  gem install sassc-embedded
36
36
  ```
37
37
 
38
+ ---
39
+
40
+ The fork of `sassc` at https://github.com/sass/sassc-ruby/pull/233 removes the libsass extension and loads the shim when `require 'sassc'` is invoked.
41
+
42
+ Alternatively, the original `sassc` gem can be used, but you must explictly call `require 'sassc-embedded'` to load the shim.
43
+
38
44
  ## Usage
39
45
 
40
46
  This shim utilizes `sass-embedded` to allow you to compile SCSS or SASS syntax to CSS. To compile, use a `SassC::Engine`, e.g.:
@@ -2,6 +2,6 @@
2
2
 
3
3
  module SassC
4
4
  module Embedded
5
- VERSION = '1.59.0'
5
+ VERSION = '1.64.0'
6
6
  end
7
7
  end
@@ -36,13 +36,26 @@ module SassC
36
36
  verbose: @options.fetch(:verbose, false)
37
37
  )
38
38
 
39
- @dependencies = result.loaded_urls
40
- .filter { |url| url.start_with?(Protocol::FILE) && url != file_url }
41
- .map { |url| URL.file_url_to_path(url) }
42
- @source_map = post_process_source_map(result.source_map)
39
+ @loaded_urls = result.loaded_urls
40
+ @source_map = result.source_map
43
41
 
44
- return post_process_css(result.css) unless quiet?
42
+ return if quiet?
43
+
44
+ css = result.css
45
+ css += "\n" unless css.empty?
46
+ unless @source_map.nil? || omit_source_map_url?
47
+ url = URL.parse(output_url || file_url)
48
+ source_mapping_url = if source_map_embed?
49
+ "data:application/json;base64,#{Base64.strict_encode64(@source_map)}"
50
+ else
51
+ URL.parse(source_map_file_url).route_from(url).to_s
52
+ end
53
+ css += "\n/*# sourceMappingURL=#{source_mapping_url} */"
54
+ end
55
+ css
45
56
  rescue ::Sass::CompileError => e
57
+ @loaded_urls = e.loaded_urls
58
+
46
59
  line = e.span&.start&.line
47
60
  line += 1 unless line.nil?
48
61
  url = e.span&.url
@@ -50,6 +63,31 @@ module SassC
50
63
  raise SyntaxError.new(e.full_message, filename: path, line: line)
51
64
  end
52
65
 
66
+ def dependencies
67
+ raise NotRenderedError unless @loaded_urls
68
+
69
+ Dependency.from_filenames(@loaded_urls
70
+ .filter { |url| url.start_with?(Protocol::FILE) && url != file_url }
71
+ .map { |url| URL.file_url_to_path(url) })
72
+ end
73
+
74
+ def source_map
75
+ raise NotRenderedError unless @source_map
76
+
77
+ url = URL.parse(source_map_file_url || file_url)
78
+ data = JSON.parse(@source_map)
79
+ data['file'] = URL.parse(output_url).route_from(url).to_s if output_url
80
+ data['sources'].map! do |source|
81
+ if source.start_with?(Protocol::FILE)
82
+ URL.parse(source).route_from(url).to_s
83
+ else
84
+ source
85
+ end
86
+ end
87
+
88
+ JSON.generate(data)
89
+ end
90
+
53
91
  private
54
92
 
55
93
  def file_url
@@ -57,10 +95,9 @@ module SassC
57
95
  end
58
96
 
59
97
  def output_path
60
- @output_path ||= @options.fetch(
61
- :output_path,
62
- ("#{filename.delete_suffix(File.extname(filename))}.css" if filename)
63
- )
98
+ @output_path ||= @options.fetch(:output_path) do
99
+ "#{filename.delete_suffix(File.extname(filename))}.css" if filename
100
+ end
64
101
  end
65
102
 
66
103
  def output_url
@@ -74,7 +111,7 @@ module SassC
74
111
  def output_style
75
112
  @output_style ||= begin
76
113
  style = @options.fetch(:style, :sass_style_nested).to_s
77
- style = "sass_style_#{style}" unless style.include?('sass_style_')
114
+ style = "sass_style_#{style}" unless style.start_with?('sass_style_')
78
115
  raise InvalidStyleError unless OUTPUT_STYLES.include?(style.to_sym)
79
116
 
80
117
  style = style.delete_prefix('sass_style_').to_sym
@@ -100,37 +137,6 @@ module SassC
100
137
  []
101
138
  end
102
139
  end
103
-
104
- def post_process_source_map(source_map)
105
- return unless source_map
106
-
107
- url = URL.parse(source_map_file_url || file_url)
108
- data = JSON.parse(source_map)
109
- data['file'] = URL.parse(output_url).route_from(url).to_s if output_url
110
- data['sources'].map! do |source|
111
- if source.start_with?(Protocol::FILE)
112
- URL.parse(source).route_from(url).to_s
113
- else
114
- source
115
- end
116
- end
117
-
118
- JSON.generate(data)
119
- end
120
-
121
- def post_process_css(css)
122
- css += "\n" unless css.empty?
123
- unless @source_map.nil? || omit_source_map_url?
124
- url = URL.parse(output_url || file_url)
125
- source_mapping_url = if source_map_embed?
126
- "data:application/json;base64,#{Base64.strict_encode64(@source_map)}"
127
- else
128
- URL.parse(source_map_file_url).route_from(url).to_s
129
- end
130
- css += "\n/*# sourceMappingURL=#{source_mapping_url} */"
131
- end
132
- css
133
- end
134
140
  end
135
141
 
136
142
  class FunctionsHandler
@@ -181,10 +187,10 @@ module SassC
181
187
  rescue StandardError => e
182
188
  unless e.full_message.include?(e.cause.full_message)
183
189
  ::Sass::ScriptError.class_eval do
184
- def full_message(*args, **kwargs)
185
- full_message = super(*args, **kwargs)
190
+ def full_message(...)
191
+ full_message = super(...)
186
192
  if cause
187
- "#{full_message}\n#{cause.full_message(*args, **kwargs)}"
193
+ "#{full_message}\n#{cause.full_message(...)}"
188
194
  else
189
195
  full_message
190
196
  end
@@ -311,7 +317,7 @@ module SassC
311
317
  end
312
318
 
313
319
  canonical_url = "#{Protocol::IMPORT}#{next_id}"
314
- @importer_results[canonical_url] = imports_to_native(imports)
320
+ @importer_results[canonical_url] = imports_to_native(imports, from_import)
315
321
  canonical_url
316
322
  elsif url.start_with?(Protocol::LOADED)
317
323
  canonical_url = Protocol::LOADED
@@ -365,7 +371,7 @@ module SassC
365
371
  end
366
372
  end
367
373
 
368
- def imports_to_native(imports)
374
+ def imports_to_native(imports, from_import)
369
375
  {
370
376
  contents: imports.flat_map do |import|
371
377
  id = next_id
@@ -386,9 +392,10 @@ module SassC
386
392
  }
387
393
  end
388
394
  end
395
+ at_rule = from_import ? '@import' : '@forward'
389
396
  [
390
- "@import \"#{Protocol::IMPORT}#{id}\";",
391
- "@import \"#{Protocol::LOADED}#{id}\";"
397
+ "#{at_rule} \"#{Protocol::IMPORT}#{id}\";",
398
+ "#{at_rule} \"#{Protocol::LOADED}#{id}\";"
392
399
  ]
393
400
  end.join("\n"),
394
401
  syntax: :scss
metadata CHANGED
@@ -1,141 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sassc-embedded
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.59.0
4
+ version: 1.64.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - なつき
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-03-11 00:00:00.000000000 Z
11
+ date: 2023-08-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: sassc
14
+ name: base64
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '2.0'
19
+ version: '0.1'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '2.0'
26
+ version: '0.1'
27
27
  - !ruby/object:Gem::Dependency
28
- name: sass-embedded
28
+ name: sassc
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.59'
33
+ version: '2.0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '1.59'
41
- - !ruby/object:Gem::Dependency
42
- name: minitest
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: 5.18.0
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: 5.18.0
55
- - !ruby/object:Gem::Dependency
56
- name: minitest-around
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: 0.5.0
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: 0.5.0
69
- - !ruby/object:Gem::Dependency
70
- name: rake
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: 10.0.0
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: 10.0.0
83
- - !ruby/object:Gem::Dependency
84
- name: rubocop
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: 1.48.0
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - "~>"
95
- - !ruby/object:Gem::Version
96
- version: 1.48.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.29.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.29.0
111
- - !ruby/object:Gem::Dependency
112
- name: rubocop-performance
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - "~>"
116
- - !ruby/object:Gem::Version
117
- version: 1.16.0
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - "~>"
123
- - !ruby/object:Gem::Version
124
- version: 1.16.0
40
+ version: '2.0'
125
41
  - !ruby/object:Gem::Dependency
126
- name: rubocop-rake
42
+ name: sass-embedded
127
43
  requirement: !ruby/object:Gem::Requirement
128
44
  requirements:
129
45
  - - "~>"
130
46
  - !ruby/object:Gem::Version
131
- version: 0.6.0
132
- type: :development
47
+ version: '1.64'
48
+ type: :runtime
133
49
  prerelease: false
134
50
  version_requirements: !ruby/object:Gem::Requirement
135
51
  requirements:
136
52
  - - "~>"
137
53
  - !ruby/object:Gem::Version
138
- version: 0.6.0
54
+ version: '1.64'
139
55
  description: An embedded sass shim for SassC.
140
56
  email:
141
57
  - i@ntk.me
@@ -152,8 +68,8 @@ homepage: https://github.com/ntkme/sassc-embedded-shim-ruby
152
68
  licenses:
153
69
  - MIT
154
70
  metadata:
155
- documentation_uri: https://rubydoc.info/gems/sassc-embedded/1.59.0
156
- source_code_uri: https://github.com/ntkme/sassc-embedded-shim-ruby/tree/v1.59.0
71
+ documentation_uri: https://rubydoc.info/gems/sassc-embedded/1.64.0
72
+ source_code_uri: https://github.com/ntkme/sassc-embedded-shim-ruby/tree/v1.64.0
157
73
  funding_uri: https://github.com/sponsors/ntkme
158
74
  post_install_message:
159
75
  rdoc_options: []
@@ -163,14 +79,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
163
79
  requirements:
164
80
  - - ">="
165
81
  - !ruby/object:Gem::Version
166
- version: 2.7.0
82
+ version: 3.0.0
167
83
  required_rubygems_version: !ruby/object:Gem::Requirement
168
84
  requirements:
169
85
  - - ">="
170
86
  - !ruby/object:Gem::Version
171
87
  version: '0'
172
88
  requirements: []
173
- rubygems_version: 3.4.6
89
+ rubygems_version: 3.4.10
174
90
  signing_key:
175
91
  specification_version: 4
176
92
  summary: Use dart-sass with SassC!