sassc-embedded 1.77.8 → 1.80.4

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: ed83a573f2e0ee97ab41239e66a4d9c3dadda78bc65ea225bee52328262da7eb
4
- data.tar.gz: a703e807594f9917770f1bdd4bc1465f0331821654d3acd2eac852ba75d3ec9e
3
+ metadata.gz: 5f741c19a9ca2fcad66b3676ff3a896416156d71dbe63bd0b3dd79d3cae95958
4
+ data.tar.gz: c99c349e440e3dc31a11b2bdff13d3b625b6427d63f2c5d6723d7f4070a69e48
5
5
  SHA512:
6
- metadata.gz: 4069b55f1d3a8c1566f1e5c2d7e483bec93e0c197309b506a6f8ed9861de8a0b80fa23c1bb4349545c89b6d4042c13667124a7e3f61ffe4433f296667ce78db9
7
- data.tar.gz: bd2d69e4dce53262c4933203cd119cb5fcdef0743ca5127ef6228e4fd933575cd7afe9c6a4bf4ba9a522501cf60a312a51ba1c74e4195b76b07543218bbadee0
6
+ metadata.gz: 4c91a95b1b283ad54e7d5bbf31b11b669567665a3be86c03584a9da88ce3e2001dbd128dc877418e6ff1c27eb5f4eb48a0e6be05e3c0f04cc1eabea434e6312c
7
+ data.tar.gz: 77b06e407927c31ac8a35b80b33a96dd2c6469ede73ddb928893cc2671738813a73a3b14817ecc0207db8a7390b1e9ea7253f4787d03b18010ef6810d767005f
data/README.md CHANGED
@@ -21,7 +21,7 @@ This library shims [`sassc`](https://github.com/sass/sassc-ruby) with the [`sass
21
21
  - [`sassc-rails`](https://github.com/sass/sassc-rails)
22
22
  - [`sprockets`](https://github.com/rails/sprockets)
23
23
  - [`sprockets-rails`](https://github.com/rails/sprockets-rails)
24
- - [`sassc`](https://github.com/sass/sassc-ruby) [is deprecated](https://sass-lang.com/blog/libsass-is-deprecated/).
24
+ - [`sassc`](https://github.com/sass/sassc-ruby) [has reached end-of-life](https://github.com/sass/sassc-ruby/blob/HEAD/README.md#sassc-has-reached-end-of-life).
25
25
  - [`sass`](https://github.com/sass/ruby-sass) [has reached end-of-life](https://sass-lang.com/blog/ruby-sass-is-unsupported/).
26
26
 
27
27
  ## Install
@@ -2,6 +2,6 @@
2
2
 
3
3
  module SassC
4
4
  module Embedded
5
- VERSION = '1.77.8'
5
+ VERSION = '1.80.4'
6
6
  end
7
7
  end
@@ -13,8 +13,6 @@ module SassC
13
13
  remove_method(:render) if public_method_defined?(:render, false)
14
14
 
15
15
  def render
16
- return @template.dup if @template.empty?
17
-
18
16
  result = ::Sass.compile_string(
19
17
  @template,
20
18
  importer: (NoopImporter unless @options[:importer].nil?),
@@ -43,15 +41,15 @@ module SassC
43
41
  @loaded_urls = result.loaded_urls
44
42
  @source_map = result.source_map
45
43
 
46
- css = result.css
47
- css += "\n" unless css.empty?
44
+ css = result.css.encode(@template.encoding)
45
+ css << "\n" unless css.empty?
48
46
  unless @source_map.nil? || omit_source_map_url?
49
47
  source_mapping_url = if source_map_embed?
50
48
  "data:application/json;base64,#{[@source_map].pack('m0')}"
51
49
  else
52
50
  Uri.file_urls_to_relative_url(source_map_file_url, file_url)
53
51
  end
54
- css += "\n/*# sourceMappingURL=#{source_mapping_url} */"
52
+ css << "\n/*# sourceMappingURL=#{source_mapping_url} */"
55
53
  end
56
54
  css
57
55
  rescue ::Sass::CompileError => e
@@ -89,7 +87,7 @@ module SassC
89
87
  end
90
88
  end
91
89
 
92
- JSON.generate(data)
90
+ JSON.fast_generate(data).encode!(@template.encoding)
93
91
  end
94
92
 
95
93
  private
@@ -108,23 +106,19 @@ module SassC
108
106
  remove_method(:output_style) if private_method_defined?(:output_style, false)
109
107
 
110
108
  def output_style
111
- @output_style ||= begin
112
- style = @options.fetch(:style, :sass_style_nested).to_s.delete_prefix('sass_style_').to_sym
113
-
114
- case style
115
- when :nested, :compact, :expanded
116
- :expanded
117
- when :compressed
118
- :compressed
119
- else
120
- raise InvalidStyleError
121
- end
122
- end
109
+ @output_style ||= case @options.fetch(:style, :nested).to_sym
110
+ when :nested, :expanded, :compact, :sass_style_nested, :sass_style_expanded, :sass_style_compact
111
+ :expanded
112
+ when :compressed, :sass_style_compressed
113
+ :compressed
114
+ else
115
+ raise InvalidStyleError
116
+ end
123
117
  end
124
118
 
125
119
  def syntax
126
- syntax = @options.fetch(:syntax, :scss)
127
- syntax = :indented if syntax.to_sym == :sass
120
+ syntax = @options.fetch(:syntax, :scss).to_sym
121
+ syntax = :indented if syntax == :sass
128
122
  syntax
129
123
  end
130
124
 
@@ -139,8 +133,6 @@ module SassC
139
133
  remove_method(:setup) if public_method_defined?(:setup, false)
140
134
 
141
135
  def setup(_native_options, functions: Script::Functions)
142
- @callbacks = {}
143
-
144
136
  functions_wrapper = Class.new do
145
137
  attr_accessor :options
146
138
 
@@ -148,7 +140,7 @@ module SassC
148
140
  end.new
149
141
  functions_wrapper.options = @options
150
142
 
151
- Script.custom_functions(functions:).each do |custom_function|
143
+ Script.custom_functions(functions:).each_with_object({}) do |custom_function, callbacks|
152
144
  callback = lambda do |native_argument_list|
153
145
  function_arguments = arguments_from_native_list(native_argument_list)
154
146
  begin
@@ -162,10 +154,8 @@ module SassC
162
154
  raise e
163
155
  end
164
156
 
165
- @callbacks[Script.formatted_function_name(custom_function, functions:)] = callback
157
+ callbacks[Script.formatted_function_name(custom_function, functions:)] = callback
166
158
  end
167
-
168
- @callbacks
169
159
  end
170
160
 
171
161
  private
@@ -177,6 +167,12 @@ module SassC
177
167
  Script::ValueConversion.from_native(native_value, @options)
178
168
  end
179
169
  end
170
+
171
+ remove_method(:to_native_value) if private_method_defined?(:to_native_value, false)
172
+
173
+ def to_native_value(sass_value)
174
+ Script::ValueConversion.to_native(sass_value)
175
+ end
180
176
  end
181
177
 
182
178
  module NoopImporter
@@ -467,18 +463,21 @@ module SassC
467
463
  when ::Sass::Value::Boolean
468
464
  ::SassC::Script::Value::Bool.new(value.to_bool)
469
465
  when ::Sass::Value::Color
470
- if value.instance_eval { defined? @hue }
466
+ case value.space
467
+ when 'hsl', 'hwb'
468
+ value = value.to_space('hsl')
471
469
  ::SassC::Script::Value::Color.new(
472
- hue: value.hue,
473
- saturation: value.saturation,
474
- lightness: value.lightness,
470
+ hue: value.channel('hue'),
471
+ saturation: value.channel('saturation'),
472
+ lightness: value.channel('lightness'),
475
473
  alpha: value.alpha
476
474
  )
477
475
  else
476
+ value = value.to_space('rgb')
478
477
  ::SassC::Script::Value::Color.new(
479
- red: value.red,
480
- green: value.green,
481
- blue: value.blue,
478
+ red: value.channel('red'),
479
+ green: value.channel('green'),
480
+ blue: value.channel('blue'),
482
481
  alpha: value.alpha
483
482
  )
484
483
  end
@@ -497,7 +496,7 @@ module SassC
497
496
  )
498
497
  when ::Sass::Value::Map
499
498
  ::SassC::Script::Value::Map.new(
500
- value.contents.to_a.to_h { |k, v| [from_native(k, options), from_native(v, options)] }
499
+ value.contents.each_with_object({}) { |(k, v), h| h[from_native(k, options)] = from_native(v, options) }
501
500
  )
502
501
  when ::Sass::Value::Number
503
502
  ::SassC::Script::Value::Number.new(
@@ -531,14 +530,16 @@ module SassC
531
530
  red: value.red,
532
531
  green: value.green,
533
532
  blue: value.blue,
534
- alpha: value.alpha
533
+ alpha: value.alpha,
534
+ space: 'rgb'
535
535
  )
536
536
  elsif value.hlsa?
537
537
  ::Sass::Value::Color.new(
538
538
  hue: value.hue,
539
539
  saturation: value.saturation,
540
540
  lightness: value.lightness,
541
- alpha: value.alpha
541
+ alpha: value.alpha,
542
+ space: 'hsl'
542
543
  )
543
544
  else
544
545
  raise UnsupportedValue, "Sass color mode #{value.instance_eval { @mode }} unsupported"
@@ -558,7 +559,7 @@ module SassC
558
559
  )
559
560
  when ::SassC::Script::Value::Map
560
561
  ::Sass::Value::Map.new(
561
- value.value.to_a.to_h { |k, v| [to_native(k), to_native(v)] }
562
+ value.value.each_with_object({}) { |(k, v), h| h[to_native(k)] = to_native(v) }
562
563
  )
563
564
  when ::SassC::Script::Value::Number
564
565
  ::Sass::Value::Number.new(
@@ -624,8 +625,8 @@ module SassC
624
625
  decode_uri_hash_with_preserve_escaped = if unescaped.nil? || unescaped.empty?
625
626
  decode_uri_hash
626
627
  else
627
- decode_uri_hash.to_h do |key, value|
628
- [key, unescaped.include?(value) ? key : value]
628
+ decode_uri_hash.each_with_object({}) do |(key, value), hash|
629
+ hash[key] = unescaped.include?(value) ? key : value
629
630
  end.freeze
630
631
  end
631
632
 
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sassc-embedded
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.77.8
4
+ version: 1.80.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - なつき
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2024-07-19 00:00:00.000000000 Z
10
+ date: 2025-02-21 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: sass-embedded
@@ -16,14 +15,14 @@ dependencies:
16
15
  requirements:
17
16
  - - "~>"
18
17
  - !ruby/object:Gem::Version
19
- version: '1.77'
18
+ version: '1.80'
20
19
  type: :runtime
21
20
  prerelease: false
22
21
  version_requirements: !ruby/object:Gem::Requirement
23
22
  requirements:
24
23
  - - "~>"
25
24
  - !ruby/object:Gem::Version
26
- version: '1.77'
25
+ version: '1.80'
27
26
  description: An embedded sass shim for SassC.
28
27
  email:
29
28
  - i@ntk.me
@@ -79,10 +78,9 @@ licenses:
79
78
  metadata:
80
79
  bug_tracker_uri: https://github.com/sass-contrib/sassc-embedded-shim-ruby/issues
81
80
  documentation_uri: https://rubydoc.info/gems/sassc
82
- source_code_uri: https://github.com/sass-contrib/sassc-embedded-shim-ruby/tree/v1.77.8
81
+ source_code_uri: https://github.com/sass-contrib/sassc-embedded-shim-ruby/tree/v1.80.4
83
82
  funding_uri: https://github.com/sponsors/ntkme
84
83
  rubygems_mfa_required: 'true'
85
- post_install_message:
86
84
  rdoc_options: []
87
85
  require_paths:
88
86
  - lib
@@ -98,8 +96,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
98
96
  - !ruby/object:Gem::Version
99
97
  version: '0'
100
98
  requirements: []
101
- rubygems_version: 3.5.11
102
- signing_key:
99
+ rubygems_version: 3.6.5
103
100
  specification_version: 4
104
101
  summary: Use dart-sass with SassC!
105
102
  test_files: []