sassc 1.10.1 → 1.11.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +5 -2
- data/ext/libsass/.github/CONTRIBUTING.md +65 -0
- data/ext/libsass/.github/ISSUE_TEMPLATE.md +29 -0
- data/ext/libsass/Makefile +8 -3
- data/ext/libsass/Makefile.conf +28 -22
- data/ext/libsass/Readme.md +14 -7
- data/ext/libsass/configure.ac +5 -8
- data/ext/libsass/docs/api-context-internal.md +3 -0
- data/ext/libsass/docs/api-context.md +7 -0
- data/ext/libsass/docs/api-doc.md +4 -0
- data/ext/libsass/docs/api-importer.md +2 -0
- data/ext/libsass/docs/api-value-example.md +55 -0
- data/ext/libsass/docs/api-value.md +49 -22
- data/ext/libsass/docs/implementations.md +4 -0
- data/ext/libsass/include/sass/base.h +5 -4
- data/ext/libsass/include/sass/context.h +3 -0
- data/ext/libsass/include/sass/values.h +28 -27
- data/ext/libsass/include/sass/version.h +1 -1
- data/ext/libsass/include/sass2scss.h +1 -1
- data/ext/libsass/script/ci-build-libsass +3 -3
- data/ext/libsass/script/ci-install-deps +12 -3
- data/ext/libsass/src/ast.cpp +321 -212
- data/ext/libsass/src/ast.hpp +273 -165
- data/ext/libsass/src/ast_factory.hpp +4 -5
- data/ext/libsass/src/ast_fwd_decl.hpp +8 -7
- data/ext/libsass/src/bind.cpp +2 -7
- data/ext/libsass/src/bind.hpp +0 -1
- data/ext/libsass/src/check_nesting.cpp +379 -0
- data/ext/libsass/src/check_nesting.hpp +60 -0
- data/ext/libsass/src/constants.cpp +7 -6
- data/ext/libsass/src/constants.hpp +2 -1
- data/ext/libsass/src/context.cpp +7 -1
- data/ext/libsass/src/context.hpp +1 -1
- data/ext/libsass/src/cssize.cpp +76 -32
- data/ext/libsass/src/cssize.hpp +7 -8
- data/ext/libsass/src/debugger.hpp +70 -40
- data/ext/libsass/src/error_handling.cpp +15 -2
- data/ext/libsass/src/error_handling.hpp +19 -0
- data/ext/libsass/src/eval.cpp +107 -161
- data/ext/libsass/src/eval.hpp +12 -8
- data/ext/libsass/src/expand.cpp +81 -74
- data/ext/libsass/src/expand.hpp +13 -12
- data/ext/libsass/src/extend.cpp +149 -142
- data/ext/libsass/src/extend.hpp +10 -3
- data/ext/libsass/src/file.cpp +2 -1
- data/ext/libsass/src/functions.cpp +96 -59
- data/ext/libsass/src/functions.hpp +2 -2
- data/ext/libsass/src/inspect.cpp +33 -45
- data/ext/libsass/src/inspect.hpp +7 -7
- data/ext/libsass/src/json.cpp +17 -5
- data/ext/libsass/src/lexer.cpp +3 -3
- data/ext/libsass/src/listize.cpp +10 -10
- data/ext/libsass/src/listize.hpp +3 -3
- data/ext/libsass/src/node.cpp +30 -30
- data/ext/libsass/src/node.hpp +13 -13
- data/ext/libsass/src/operation.hpp +21 -19
- data/ext/libsass/src/output.cpp +48 -103
- data/ext/libsass/src/output.hpp +0 -1
- data/ext/libsass/src/parser.cpp +161 -133
- data/ext/libsass/src/parser.hpp +10 -7
- data/ext/libsass/src/remove_placeholders.cpp +6 -6
- data/ext/libsass/src/remove_placeholders.hpp +1 -1
- data/ext/libsass/src/sass.cpp +21 -0
- data/ext/libsass/src/sass.hpp +8 -1
- data/ext/libsass/src/sass2scss.cpp +14 -3
- data/ext/libsass/src/sass_context.cpp +69 -24
- data/ext/libsass/src/sass_context.hpp +3 -0
- data/ext/libsass/src/source_map.cpp +22 -10
- data/ext/libsass/src/to_value.cpp +2 -2
- data/ext/libsass/src/to_value.hpp +1 -1
- data/ext/libsass/src/units.hpp +3 -1
- data/ext/libsass/src/util.cpp +20 -16
- data/ext/libsass/src/util.hpp +2 -1
- data/ext/libsass/win/libsass.targets +2 -0
- data/ext/libsass/win/libsass.vcxproj.filters +6 -0
- data/lib/sassc/engine.rb +5 -0
- data/lib/sassc/native/native_functions_api.rb +13 -1
- data/lib/sassc/script/value_conversion.rb +11 -1
- data/lib/sassc/script/value_conversion/list.rb +23 -0
- data/lib/sassc/version.rb +1 -1
- data/test/engine_test.rb +18 -2
- data/test/functions_test.rb +30 -0
- data/test/native_test.rb +1 -1
- metadata +8 -3
data/ext/libsass/src/units.hpp
CHANGED
@@ -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
|
-
|
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
|
{
|
data/ext/libsass/src/util.cpp
CHANGED
@@ -145,13 +145,20 @@ namespace Sass {
|
|
145
145
|
return out;
|
146
146
|
}
|
147
147
|
|
148
|
-
// bell
|
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 ==
|
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 ==
|
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<
|
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<
|
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 (
|
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)) {
|
data/ext/libsass/src/util.hpp
CHANGED
@@ -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) < 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>
|
data/lib/sassc/engine.rb
CHANGED
@@ -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/
|
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
|
data/lib/sassc/version.rb
CHANGED
data/test/engine_test.rb
CHANGED
@@ -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"
|
158
|
-
\t"
|
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")
|
data/test/functions_test.rb
CHANGED
@@ -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)
|
data/test/native_test.rb
CHANGED
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.
|
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-
|
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.
|
388
|
+
rubygems_version: 2.6.8
|
384
389
|
signing_key:
|
385
390
|
specification_version: 4
|
386
391
|
summary: Use libsass with Ruby!
|