sassc 1.10.1 → 1.11.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (85) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +5 -2
  3. data/ext/libsass/.github/CONTRIBUTING.md +65 -0
  4. data/ext/libsass/.github/ISSUE_TEMPLATE.md +29 -0
  5. data/ext/libsass/Makefile +8 -3
  6. data/ext/libsass/Makefile.conf +28 -22
  7. data/ext/libsass/Readme.md +14 -7
  8. data/ext/libsass/configure.ac +5 -8
  9. data/ext/libsass/docs/api-context-internal.md +3 -0
  10. data/ext/libsass/docs/api-context.md +7 -0
  11. data/ext/libsass/docs/api-doc.md +4 -0
  12. data/ext/libsass/docs/api-importer.md +2 -0
  13. data/ext/libsass/docs/api-value-example.md +55 -0
  14. data/ext/libsass/docs/api-value.md +49 -22
  15. data/ext/libsass/docs/implementations.md +4 -0
  16. data/ext/libsass/include/sass/base.h +5 -4
  17. data/ext/libsass/include/sass/context.h +3 -0
  18. data/ext/libsass/include/sass/values.h +28 -27
  19. data/ext/libsass/include/sass/version.h +1 -1
  20. data/ext/libsass/include/sass2scss.h +1 -1
  21. data/ext/libsass/script/ci-build-libsass +3 -3
  22. data/ext/libsass/script/ci-install-deps +12 -3
  23. data/ext/libsass/src/ast.cpp +321 -212
  24. data/ext/libsass/src/ast.hpp +273 -165
  25. data/ext/libsass/src/ast_factory.hpp +4 -5
  26. data/ext/libsass/src/ast_fwd_decl.hpp +8 -7
  27. data/ext/libsass/src/bind.cpp +2 -7
  28. data/ext/libsass/src/bind.hpp +0 -1
  29. data/ext/libsass/src/check_nesting.cpp +379 -0
  30. data/ext/libsass/src/check_nesting.hpp +60 -0
  31. data/ext/libsass/src/constants.cpp +7 -6
  32. data/ext/libsass/src/constants.hpp +2 -1
  33. data/ext/libsass/src/context.cpp +7 -1
  34. data/ext/libsass/src/context.hpp +1 -1
  35. data/ext/libsass/src/cssize.cpp +76 -32
  36. data/ext/libsass/src/cssize.hpp +7 -8
  37. data/ext/libsass/src/debugger.hpp +70 -40
  38. data/ext/libsass/src/error_handling.cpp +15 -2
  39. data/ext/libsass/src/error_handling.hpp +19 -0
  40. data/ext/libsass/src/eval.cpp +107 -161
  41. data/ext/libsass/src/eval.hpp +12 -8
  42. data/ext/libsass/src/expand.cpp +81 -74
  43. data/ext/libsass/src/expand.hpp +13 -12
  44. data/ext/libsass/src/extend.cpp +149 -142
  45. data/ext/libsass/src/extend.hpp +10 -3
  46. data/ext/libsass/src/file.cpp +2 -1
  47. data/ext/libsass/src/functions.cpp +96 -59
  48. data/ext/libsass/src/functions.hpp +2 -2
  49. data/ext/libsass/src/inspect.cpp +33 -45
  50. data/ext/libsass/src/inspect.hpp +7 -7
  51. data/ext/libsass/src/json.cpp +17 -5
  52. data/ext/libsass/src/lexer.cpp +3 -3
  53. data/ext/libsass/src/listize.cpp +10 -10
  54. data/ext/libsass/src/listize.hpp +3 -3
  55. data/ext/libsass/src/node.cpp +30 -30
  56. data/ext/libsass/src/node.hpp +13 -13
  57. data/ext/libsass/src/operation.hpp +21 -19
  58. data/ext/libsass/src/output.cpp +48 -103
  59. data/ext/libsass/src/output.hpp +0 -1
  60. data/ext/libsass/src/parser.cpp +161 -133
  61. data/ext/libsass/src/parser.hpp +10 -7
  62. data/ext/libsass/src/remove_placeholders.cpp +6 -6
  63. data/ext/libsass/src/remove_placeholders.hpp +1 -1
  64. data/ext/libsass/src/sass.cpp +21 -0
  65. data/ext/libsass/src/sass.hpp +8 -1
  66. data/ext/libsass/src/sass2scss.cpp +14 -3
  67. data/ext/libsass/src/sass_context.cpp +69 -24
  68. data/ext/libsass/src/sass_context.hpp +3 -0
  69. data/ext/libsass/src/source_map.cpp +22 -10
  70. data/ext/libsass/src/to_value.cpp +2 -2
  71. data/ext/libsass/src/to_value.hpp +1 -1
  72. data/ext/libsass/src/units.hpp +3 -1
  73. data/ext/libsass/src/util.cpp +20 -16
  74. data/ext/libsass/src/util.hpp +2 -1
  75. data/ext/libsass/win/libsass.targets +2 -0
  76. data/ext/libsass/win/libsass.vcxproj.filters +6 -0
  77. data/lib/sassc/engine.rb +5 -0
  78. data/lib/sassc/native/native_functions_api.rb +13 -1
  79. data/lib/sassc/script/value_conversion.rb +11 -1
  80. data/lib/sassc/script/value_conversion/list.rb +23 -0
  81. data/lib/sassc/version.rb +1 -1
  82. data/test/engine_test.rb +18 -2
  83. data/test/functions_test.rb +30 -0
  84. data/test/native_test.rb +1 -1
  85. metadata +8 -3
@@ -77,7 +77,9 @@ namespace Sass {
77
77
  ss << "Incompatible units: ";
78
78
  ss << "'" << unit_to_string(a) << "' and ";
79
79
  ss << "'" << unit_to_string(b) << "'";
80
- msg = ss.str().c_str();
80
+ // hold on to string on stack!
81
+ std::string str(ss.str());
82
+ msg = str.c_str();
81
83
  }
82
84
  virtual const char* what() const throw()
83
85
  {
@@ -145,13 +145,20 @@ namespace Sass {
145
145
  return out;
146
146
  }
147
147
 
148
- // bell character is replaces with space
148
+ // bell characters are replaced with spaces
149
+ void newline_to_space(std::string& str)
150
+ {
151
+ std::replace(str.begin(), str.end(), '\n', ' ');
152
+ }
153
+
154
+ // bell characters are replaced with spaces
155
+ // also eats spaces after line-feeds (ltrim)
149
156
  std::string string_to_output(const std::string& str)
150
157
  {
151
158
  std::string out("");
152
159
  bool lf = false;
153
160
  for (auto i : str) {
154
- if (i == 10) {
161
+ if (i == '\n') {
155
162
  out += ' ';
156
163
  lf = true;
157
164
  } else if (!(lf && isspace(i))) {
@@ -214,7 +221,7 @@ namespace Sass {
214
221
  return quote_mark;
215
222
  }
216
223
 
217
- std::string unquote(const std::string& s, char* qd, bool keep_utf8_sequences)
224
+ std::string unquote(const std::string& s, char* qd, bool keep_utf8_sequences, bool strict)
218
225
  {
219
226
 
220
227
  // not enough room for quotes
@@ -267,7 +274,7 @@ namespace Sass {
267
274
  // assert invalid code points
268
275
  if (cp == 0) cp = 0xFFFD;
269
276
  // replace bell character
270
- // if (cp == 10) cp = 32;
277
+ // if (cp == '\n') cp = 32;
271
278
 
272
279
  // use a very simple approach to convert via utf8 lib
273
280
  // maybe there is a more elegant way; maybe we shoud
@@ -292,6 +299,9 @@ namespace Sass {
292
299
  // error("Unescaped delimiter in string to unquote found. [" + s + "]", ParserState("[UNQUOTE]"));
293
300
  // }
294
301
  else {
302
+ if (strict && !skipped) {
303
+ if (s[i] == q) return s;
304
+ }
295
305
  skipped = false;
296
306
  unq.push_back(s[i]);
297
307
  }
@@ -330,7 +340,7 @@ namespace Sass {
330
340
  int cp = utf8::next(it, end);
331
341
 
332
342
  // in case of \r, check if the next in sequence
333
- // is \n and then advance the iterator.
343
+ // is \n and then advance the iterator and skip \r
334
344
  if (cp == '\r' && it < end && utf8::peek_next(it, end) == '\n') {
335
345
  cp = utf8::next(it, end);
336
346
  }
@@ -451,7 +461,7 @@ namespace Sass {
451
461
 
452
462
  Block* b = r->block();
453
463
 
454
- bool hasSelectors = static_cast<Selector_List*>(r->selector())->length() > 0;
464
+ bool hasSelectors = static_cast<CommaSequence_Selector*>(r->selector())->length() > 0;
455
465
 
456
466
  if (!hasSelectors) {
457
467
  return false;
@@ -463,6 +473,8 @@ namespace Sass {
463
473
  Statement* stm = (*b)[i];
464
474
  if (dynamic_cast<Directive*>(stm)) {
465
475
  return true;
476
+ } else if (Declaration* d = dynamic_cast<Declaration*>(stm)) {
477
+ return isPrintable(d, style);
466
478
  } else if (dynamic_cast<Has_Block*>(stm)) {
467
479
  Block* pChildBlock = ((Has_Block*)stm)->block();
468
480
  if (isPrintable(pChildBlock, style)) {
@@ -477,8 +489,6 @@ namespace Sass {
477
489
  if (c->is_important()) {
478
490
  hasDeclarations = c->is_important();
479
491
  }
480
- } else if (Declaration* d = dynamic_cast<Declaration*>(stm)) {
481
- return isPrintable(d, style);
482
492
  } else {
483
493
  hasDeclarations = true;
484
494
  }
@@ -516,19 +526,13 @@ namespace Sass {
516
526
 
517
527
  Block* b = f->block();
518
528
 
519
- // bool hasSelectors = f->selector() && static_cast<Selector_List*>(f->selector())->length() > 0;
529
+ // bool hasSelectors = f->selector() && static_cast<CommaSequence_Selector*>(f->selector())->length() > 0;
520
530
 
521
531
  bool hasDeclarations = false;
522
532
  bool hasPrintableChildBlocks = false;
523
533
  for (size_t i = 0, L = b->length(); i < L; ++i) {
524
534
  Statement* stm = (*b)[i];
525
- if (!stm->is_hoistable()) {
526
- // If a statement isn't hoistable, the selectors apply to it. If there are no selectors (a selector list of length 0),
527
- // then those statements aren't considered printable. That means there was a placeholder that was removed. If the selector
528
- // is NULL, then that means there was never a wrapping selector and it is printable (think of a top level media block with
529
- // a declaration in it).
530
- }
531
- else if (typeid(*stm) == typeid(Declaration) || typeid(*stm) == typeid(Directive)) {
535
+ if (typeid(*stm) == typeid(Declaration) || typeid(*stm) == typeid(Directive)) {
532
536
  hasDeclarations = true;
533
537
  }
534
538
  else if (dynamic_cast<Has_Block*>(stm)) {
@@ -26,9 +26,10 @@ namespace Sass {
26
26
  std::string evacuate_escapes(const std::string& str);
27
27
  std::string string_to_output(const std::string& str);
28
28
  std::string comment_to_string(const std::string& text);
29
+ void newline_to_space(std::string& str);
29
30
 
30
31
  std::string quote(const std::string&, char q = 0);
31
- std::string unquote(const std::string&, char* q = 0, bool keep_utf8_sequences = false);
32
+ std::string unquote(const std::string&, char* q = 0, bool keep_utf8_sequences = false, bool strict = true);
32
33
  char detect_best_quotemark(const char* s, char qm = '"');
33
34
 
34
35
  bool is_hex_doublet(double n);
@@ -18,6 +18,7 @@
18
18
  <ClInclude Include="$(LIBSASS_HEADERS_DIR)\base64vlq.hpp" />
19
19
  <ClInclude Include="$(LIBSASS_HEADERS_DIR)\bind.hpp" />
20
20
  <ClInclude Include="$(LIBSASS_HEADERS_DIR)\b64\cencode.h" />
21
+ <ClInclude Include="$(LIBSASS_HEADERS_DIR)\check_nesting.hpp" />
21
22
  <ClInclude Include="$(LIBSASS_HEADERS_DIR)\color_maps.hpp" />
22
23
  <ClInclude Include="$(LIBSASS_HEADERS_DIR)\constants.hpp" />
23
24
  <ClInclude Include="$(LIBSASS_HEADERS_DIR)\context.hpp" />
@@ -71,6 +72,7 @@
71
72
  <ClCompile Include="$(LIBSASS_SRC_DIR)\bind.cpp" />
72
73
  <ClCompile Condition="$(VisualStudioVersion) &lt; 14.0" Include="$(LIBSASS_SRC_DIR)\c99func.c" />
73
74
  <ClCompile Include="$(LIBSASS_SRC_DIR)\cencode.c" />
75
+ <ClCompile Include="$(LIBSASS_SRC_DIR)\check_nesting.cpp" />
74
76
  <ClCompile Include="$(LIBSASS_SRC_DIR)\color_maps.cpp" />
75
77
  <ClCompile Include="$(LIBSASS_SRC_DIR)\constants.cpp" />
76
78
  <ClCompile Include="$(LIBSASS_SRC_DIR)\context.cpp" />
@@ -66,6 +66,9 @@
66
66
  <ClInclude Include="$(LIBSASS_HEADERS_DIR)\bind.hpp">
67
67
  <Filter>Headers</Filter>
68
68
  </ClInclude>
69
+ <ClInclude Include="$(LIBSASS_HEADERS_DIR)\check_nesting.hpp">
70
+ <Filter>Headers</Filter>
71
+ </ClInclude>
69
72
  <ClInclude Include="$(LIBSASS_HEADERS_DIR)\color_maps.hpp">
70
73
  <Filter>Headers</Filter>
71
74
  </ClInclude>
@@ -224,6 +227,9 @@
224
227
  <ClCompile Include="$(LIBSASS_SRC_DIR)\cencode.c">
225
228
  <Filter>Sources</Filter>
226
229
  </ClCompile>
230
+ <ClCompile Include="$(LIBSASS_SRC_DIR)\check_nesting.cpp">
231
+ <Filter>Sources</Filter>
232
+ </ClCompile>
227
233
  <ClCompile Include="$(LIBSASS_SRC_DIR)\color_maps.cpp">
228
234
  <Filter>Sources</Filter>
229
235
  </ClCompile>
@@ -32,6 +32,7 @@ module SassC
32
32
  Native.option_set_source_map_file(native_options, source_map_file) if source_map_file
33
33
  Native.option_set_source_map_embed(native_options, true) if source_map_embed?
34
34
  Native.option_set_source_map_contents(native_options, true) if source_map_contents?
35
+ Native.option_set_omit_source_map_url(native_options, true) if omit_source_map_url?
35
36
 
36
37
  import_handler.setup(native_options)
37
38
  functions_handler.setup(native_options)
@@ -98,6 +99,10 @@ module SassC
98
99
  @options[:source_map_contents]
99
100
  end
100
101
 
102
+ def omit_source_map_url?
103
+ @options[:omit_source_map_url]
104
+ end
105
+
101
106
  def source_map_file
102
107
  @options[:source_map_file]
103
108
  end
@@ -26,7 +26,10 @@ module SassC
26
26
 
27
27
  # ADDAPI union Sass_Value* ADDCALL sass_make_map (size_t len);
28
28
  attach_function :sass_make_map, [:size_t], :sass_value_ptr
29
-
29
+
30
+ # ADDAPI union Sass_Value* ADDCALL sass_make_list (size_t len, enum Sass_Separator sep)
31
+ attach_function :sass_make_list, [:size_t, SassSeparator], :sass_value_ptr
32
+
30
33
  # ADDAPI union Sass_Value* ADDCALL sass_make_boolean (boolean val);
31
34
  attach_function :sass_make_boolean, [:bool], :sass_value_ptr
32
35
 
@@ -45,6 +48,15 @@ module SassC
45
48
  # ADDAPI size_t ADDCALL sass_map_get_length (const union Sass_Value* v);
46
49
  attach_function :sass_map_get_length, [:sass_value_ptr], :size_t
47
50
 
51
+ # ADDAPI union Sass_Value* ADDCALL sass_list_get_value (const union Sass_Value* v, size_t i);
52
+ attach_function :sass_list_get_value, [:sass_value_ptr, :size_t], :sass_value_ptr
53
+
54
+ # ADDAPI void ADDCALL sass_list_set_value (union Sass_Value* v, size_t i, union Sass_Value* value);
55
+ attach_function :sass_list_set_value, [:sass_value_ptr, :size_t, :sass_value_ptr], :void
56
+
57
+ # ADDAPI size_t ADDCALL sass_list_get_length (const union Sass_Value* v);
58
+ attach_function :sass_list_get_length, [:sass_value_ptr], :size_t
59
+
48
60
  # ADDAPI union Sass_Value* ADDCALL sass_make_error (const char* msg);
49
61
  attach_function :sass_make_error, [:string], :sass_value_ptr
50
62
 
@@ -41,6 +41,13 @@ module SassC
41
41
 
42
42
  argument = Sass::Script::Value::Map.new values
43
43
  argument
44
+ when :sass_list
45
+ length = Native::list_get_length(native_value)
46
+ items = (0...length).map do |index|
47
+ native_item = Native::list_get_value(native_value, index)
48
+ from_native(native_item, options)
49
+ end
50
+ Sass::Script::Value::List.new(items, :space)
44
51
  else
45
52
  raise UnsupportedValue.new("Sass argument of type #{value_tag} unsupported")
46
53
  end
@@ -56,6 +63,8 @@ module SassC
56
63
  Number.new(value).to_native
57
64
  when "Map"
58
65
  Map.new(value).to_native
66
+ when "List"
67
+ List.new(value).to_native
59
68
  when "Bool"
60
69
  Bool.new(value).to_native
61
70
  else
@@ -71,4 +80,5 @@ require_relative "value_conversion/string"
71
80
  require_relative "value_conversion/number"
72
81
  require_relative "value_conversion/color"
73
82
  require_relative "value_conversion/map"
74
- require_relative "value_conversion/bool"
83
+ require_relative "value_conversion/list"
84
+ require_relative "value_conversion/bool"
@@ -0,0 +1,23 @@
1
+ module SassC
2
+ module Script
3
+ module ValueConversion
4
+ SEPARATORS = {
5
+ space: :sass_space,
6
+ comma: :sass_comma
7
+ }
8
+
9
+ class List < Base
10
+ def to_native
11
+ list = @value.to_a
12
+ sep = SEPARATORS.fetch(@value.separator)
13
+ native_list = Native::make_list(list.size, sep)
14
+ list.each_with_index do |item, index|
15
+ native_item = ValueConversion.to_native(item)
16
+ Native::list_set_value(native_list, index, native_item)
17
+ end
18
+ native_list
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -1,3 +1,3 @@
1
1
  module SassC
2
- VERSION = "1.10.1"
2
+ VERSION = "1.11.0"
3
3
  end
@@ -154,8 +154,8 @@ SCSS
154
154
  \t\t"@import 'admin/text-color';\\n\\np {\\n padding: 20px;\\n}\\n",
155
155
  \t\t"p {\\n color: red;\\n}\\n"
156
156
  \t],
157
- \t"mappings": "ACAA,AAAA,CAAC,CAAC;EACA,KAAK,EAAE,GAAI,GACZ;;ADAD,AAAA,CAAC,CAAC;EACA,OAAO,EAAE,IAAK,GACf",
158
- \t"names": []
157
+ \t"names": [],
158
+ \t"mappings": "ACAA,AAAA,CAAC,CAAC;EACA,KAAK,EAAE,GAAG,GACX;;ADAD,AAAA,CAAC,CAAC;EACA,OAAO,EAAE,IAAI,GACd"
159
159
  }
160
160
  MAP
161
161
  end
@@ -166,6 +166,22 @@ MAP
166
166
  assert_raises(NotRenderedError) { engine.source_map }
167
167
  end
168
168
 
169
+ def test_omit_source_map_url
170
+ temp_file('style.scss', <<SCSS)
171
+ p {
172
+ padding: 20px;
173
+ }
174
+ SCSS
175
+ engine = Engine.new(File.read('style.scss'), {
176
+ source_map_file: "style.scss.map",
177
+ source_map_contents: true,
178
+ omit_source_map_url: true
179
+ })
180
+ output = engine.render
181
+
182
+ refute_match /sourceMappingURL/, output
183
+ end
184
+
169
185
  def test_load_paths
170
186
  temp_dir("included_1")
171
187
  temp_dir("included_2")
@@ -119,6 +119,7 @@ module SassC
119
119
  end
120
120
 
121
121
  def test_function_with_unsupported_tag
122
+ skip('What are other unsupported tags?')
122
123
  engine = Engine.new("div {url: function_with_unsupported_tag(());}")
123
124
 
124
125
  exception = assert_raises(SassC::SyntaxError) do
@@ -166,6 +167,23 @@ module SassC
166
167
  CSS
167
168
  end
168
169
 
170
+ def test_function_that_returns_a_sass_list
171
+ assert_sass <<-SCSS, <<-CSS
172
+ $my-list: returns-sass-list();
173
+ div { width: nth( $my-list, 2 ); }
174
+ SCSS
175
+ div { width: 20; }
176
+ CSS
177
+ end
178
+
179
+ def test_function_that_takes_a_sass_list
180
+ assert_sass <<-SCSS, <<-CSS
181
+ div { width: nth(inspect-list((10 20 30)), 2); }
182
+ SCSS
183
+ div { width: 20; }
184
+ CSS
185
+ end
186
+
169
187
  private
170
188
 
171
189
  def assert_sass(sass, expected_css)
@@ -250,6 +268,11 @@ module SassC
250
268
  return argument
251
269
  end
252
270
 
271
+ def inspect_list(argument)
272
+ raise StandardError.new "passed value is not a Sass::Script::Value::List" unless argument.is_a? Sass::Script::Value::List
273
+ return argument
274
+ end
275
+
253
276
  def returns_sass_value
254
277
  return Sass::Script::Value::Color.new(red: 0, green: 0, blue: 0)
255
278
  end
@@ -263,6 +286,13 @@ module SassC
263
286
  return map
264
287
  end
265
288
 
289
+ def returns_sass_list
290
+ numbers = [10, 20, 30].map do |n|
291
+ Sass::Script::Value::Number.new(n, '')
292
+ end
293
+ Sass::Script::Value::List.new(numbers, :space)
294
+ end
295
+
266
296
  module Compass
267
297
  def stylesheet_path(path)
268
298
  Script::String.new("/css/#{path.value}", :identifier)
@@ -9,7 +9,7 @@ module SassC
9
9
 
10
10
  class General < MiniTest::Test
11
11
  def test_it_reports_the_libsass_version
12
- assert_equal "3.3.6", Native.version
12
+ assert_equal "3.4.0", Native.version
13
13
  end
14
14
  end
15
15
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sassc
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.10.1
4
+ version: 1.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Boland
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-10-04 00:00:00.000000000 Z
11
+ date: 2016-12-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -140,6 +140,8 @@ files:
140
140
  - ext/Rakefile
141
141
  - ext/libsass/.editorconfig
142
142
  - ext/libsass/.gitattributes
143
+ - ext/libsass/.github/CONTRIBUTING.md
144
+ - ext/libsass/.github/ISSUE_TEMPLATE.md
143
145
  - ext/libsass/.gitignore
144
146
  - ext/libsass/.travis.yml
145
147
  - ext/libsass/COPYING
@@ -223,6 +225,8 @@ files:
223
225
  - ext/libsass/src/bind.hpp
224
226
  - ext/libsass/src/c99func.c
225
227
  - ext/libsass/src/cencode.c
228
+ - ext/libsass/src/check_nesting.cpp
229
+ - ext/libsass/src/check_nesting.hpp
226
230
  - ext/libsass/src/color_maps.cpp
227
231
  - ext/libsass/src/color_maps.hpp
228
232
  - ext/libsass/src/constants.cpp
@@ -345,6 +349,7 @@ files:
345
349
  - lib/sassc/script/value_conversion/base.rb
346
350
  - lib/sassc/script/value_conversion/bool.rb
347
351
  - lib/sassc/script/value_conversion/color.rb
352
+ - lib/sassc/script/value_conversion/list.rb
348
353
  - lib/sassc/script/value_conversion/map.rb
349
354
  - lib/sassc/script/value_conversion/number.rb
350
355
  - lib/sassc/script/value_conversion/string.rb
@@ -380,7 +385,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
380
385
  version: '0'
381
386
  requirements: []
382
387
  rubyforge_project:
383
- rubygems_version: 2.5.1
388
+ rubygems_version: 2.6.8
384
389
  signing_key:
385
390
  specification_version: 4
386
391
  summary: Use libsass with Ruby!