sass 3.4.15 → 3.4.16
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CODE_OF_CONDUCT.md +10 -0
- data/VERSION +1 -1
- data/VERSION_DATE +1 -1
- data/lib/sass/scss/rx.rb +6 -6
- data/lib/sass/tree/visitors/convert.rb +27 -18
- data/lib/sass/util.rb +4 -1
- data/test/sass/conversion_test.rb +86 -0
- data/test/sass/css2sass_test.rb +17 -0
- data/test/sass/scss/rx_test.rb +4 -0
- data/test/sass/scss/scss_test.rb +9 -0
- metadata +30 -29
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0dff26b06c7065753c46919a6edcabb5eba41d14
|
4
|
+
data.tar.gz: 55acb3b26ba3d248bdf3e2e3e1c8263e41405faa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8d763cdfcb6c8b78626b39101f0d92cc48f2c038307f96de6929fcd5b51a3e7ec03f889e55b0dbb4cbfdfcd8848469476ad6950e9c41b40efd7f3bdefe36a31b
|
7
|
+
data.tar.gz: a5e4c150a05613f1a40fc3b7f380e62aa4e693aadf674b6361fad3205b126ce39bd9912ac21965e70997ffe0f52c29c0261bece728e6d374ce8ad735f1b93205
|
data/CODE_OF_CONDUCT.md
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
Sass is more than a technology; Sass is driven by the community of individuals
|
2
|
+
that power its development and use every day. As a community, we want to embrace
|
3
|
+
the very differences that have made our collaboration so powerful, and work
|
4
|
+
together to provide the best environment for learning, growing, and sharing of
|
5
|
+
ideas. It is imperative that we keep Sass a fun, welcoming, challenging, and
|
6
|
+
fair place to play.
|
7
|
+
|
8
|
+
[The full community guidelines can be found on the Sass website.][link]
|
9
|
+
|
10
|
+
[link]: http://sass-lang.com/community-guidelines
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.4.
|
1
|
+
3.4.16
|
data/VERSION_DATE
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
10 July 2015 23:22:27 UTC
|
data/lib/sass/scss/rx.rb
CHANGED
@@ -96,8 +96,13 @@ module Sass
|
|
96
96
|
|
97
97
|
IMPORTANT = /!#{W}important/i
|
98
98
|
|
99
|
+
# A unit is like an IDENT, but disallows a hyphen followed by a digit.
|
100
|
+
# This allows "1px-2px" to be interpreted as subtraction rather than "1"
|
101
|
+
# with the unit "px-2px". It also allows "%".
|
102
|
+
UNIT = /-?#{NMSTART}(?:[a-zA-Z0-9_]|#{NONASCII}|#{ESCAPE}|-(?!\d))*|%/
|
103
|
+
|
99
104
|
UNITLESS_NUMBER = /(?:[0-9]+|[0-9]*\.[0-9]+)(?:[eE][+-]?\d+)?/
|
100
|
-
NUMBER = /#{UNITLESS_NUMBER}(?:#{
|
105
|
+
NUMBER = /#{UNITLESS_NUMBER}(?:#{UNIT})?/
|
101
106
|
PERCENTAGE = /#{UNITLESS_NUMBER}%/
|
102
107
|
|
103
108
|
URI = /url\(#{W}(?:#{STRING}|#{URL})#{W}\)/i
|
@@ -123,11 +128,6 @@ module Sass
|
|
123
128
|
OPTIONAL = /!#{W}optional/i
|
124
129
|
IDENT_START = /-|#{NMSTART}/
|
125
130
|
|
126
|
-
# A unit is like an IDENT, but disallows a hyphen followed by a digit.
|
127
|
-
# This allows "1px-2px" to be interpreted as subtraction rather than "1"
|
128
|
-
# with the unit "px-2px". It also allows "%".
|
129
|
-
UNIT = /-?#{NMSTART}(?:[a-zA-Z0-9_]|#{NONASCII}|#{ESCAPE}|-(?!\d))*|%/
|
130
|
-
|
131
131
|
IDENT_HYPHEN_INTERP = /-(#\{)/
|
132
132
|
STRING1_NOINTERP = /\"((?:[^\n\r\f\\"#]|#(?!\{)|#{ESCAPE})*)\"/
|
133
133
|
STRING2_NOINTERP = /\'((?:[^\n\r\f\\'#]|#(?!\{)|#{ESCAPE})*)\'/
|
@@ -23,10 +23,13 @@ class Sass::Tree::Visitors::Convert < Sass::Tree::Visitors::Base
|
|
23
23
|
def visit_children(parent)
|
24
24
|
@tabs += 1
|
25
25
|
return @format == :sass ? "\n" : " {}\n" if parent.children.empty?
|
26
|
+
|
27
|
+
res = visit_rule_level(parent.children)
|
28
|
+
|
26
29
|
if @format == :sass
|
27
|
-
"\n" +
|
30
|
+
"\n" + res.rstrip + "\n"
|
28
31
|
else
|
29
|
-
" {\n" +
|
32
|
+
" {\n" + res.rstrip + "\n#{ @tab_chars * (@tabs - 1)}}\n"
|
30
33
|
end
|
31
34
|
ensure
|
32
35
|
@tabs -= 1
|
@@ -34,20 +37,7 @@ class Sass::Tree::Visitors::Convert < Sass::Tree::Visitors::Base
|
|
34
37
|
|
35
38
|
# Ensures proper spacing between top-level nodes.
|
36
39
|
def visit_root(node)
|
37
|
-
|
38
|
-
visit(child) +
|
39
|
-
if nxt &&
|
40
|
-
(child.is_a?(Sass::Tree::CommentNode) &&
|
41
|
-
child.line + child.lines + 1 == nxt.line) ||
|
42
|
-
(child.is_a?(Sass::Tree::ImportNode) && nxt.is_a?(Sass::Tree::ImportNode) &&
|
43
|
-
child.line + 1 == nxt.line) ||
|
44
|
-
(child.is_a?(Sass::Tree::VariableNode) && nxt.is_a?(Sass::Tree::VariableNode) &&
|
45
|
-
child.line + 1 == nxt.line)
|
46
|
-
""
|
47
|
-
else
|
48
|
-
"\n"
|
49
|
-
end
|
50
|
-
end.join.rstrip + "\n"
|
40
|
+
visit_rule_level(node.children)
|
51
41
|
end
|
52
42
|
|
53
43
|
def visit_charset(node)
|
@@ -104,7 +94,7 @@ class Sass::Tree::Visitors::Convert < Sass::Tree::Visitors::Base
|
|
104
94
|
res = "#{tab_str}#{interp_to_src(node.value)}"
|
105
95
|
res.gsub!(/^@import \#\{(.*)\}([^}]*)$/, '@import \1\2')
|
106
96
|
return res + "#{semi}\n" unless node.has_children
|
107
|
-
res + yield
|
97
|
+
res + yield
|
108
98
|
end
|
109
99
|
|
110
100
|
def visit_each(node)
|
@@ -281,11 +271,30 @@ class Sass::Tree::Visitors::Convert < Sass::Tree::Visitors::Base
|
|
281
271
|
end
|
282
272
|
|
283
273
|
def visit_keyframerule(node)
|
284
|
-
"#{tab_str}#{node.resolved_value}#{yield}
|
274
|
+
"#{tab_str}#{node.resolved_value}#{yield}"
|
285
275
|
end
|
286
276
|
|
287
277
|
private
|
288
278
|
|
279
|
+
# Visit rule-level nodes and return their conversion with appropriate
|
280
|
+
# whitespace added.
|
281
|
+
def visit_rule_level(nodes)
|
282
|
+
Sass::Util.enum_cons(nodes + [nil], 2).map do |child, nxt|
|
283
|
+
visit(child) +
|
284
|
+
if nxt &&
|
285
|
+
(child.is_a?(Sass::Tree::CommentNode) && child.line + child.lines + 1 == nxt.line) ||
|
286
|
+
(child.is_a?(Sass::Tree::ImportNode) && nxt.is_a?(Sass::Tree::ImportNode) &&
|
287
|
+
child.line + 1 == nxt.line) ||
|
288
|
+
(child.is_a?(Sass::Tree::VariableNode) && nxt.is_a?(Sass::Tree::VariableNode) &&
|
289
|
+
child.line + 1 == nxt.line) ||
|
290
|
+
(child.is_a?(Sass::Tree::PropNode) && nxt.is_a?(Sass::Tree::PropNode))
|
291
|
+
""
|
292
|
+
else
|
293
|
+
"\n"
|
294
|
+
end
|
295
|
+
end.join.rstrip + "\n"
|
296
|
+
end
|
297
|
+
|
289
298
|
def interp_to_src(interp)
|
290
299
|
interp.map {|r| r.is_a?(String) ? r : r.to_sass(@options)}.join
|
291
300
|
end
|
data/lib/sass/util.rb
CHANGED
@@ -571,6 +571,9 @@ module Sass
|
|
571
571
|
return @listen_geq_2 unless @listen_geq_2.nil?
|
572
572
|
@listen_geq_2 =
|
573
573
|
begin
|
574
|
+
# Make sure we're loading listen/version from the same place that
|
575
|
+
# we're loading listen itself.
|
576
|
+
load_listen!
|
574
577
|
require 'listen/version'
|
575
578
|
version_geq(::Listen::VERSION, '2.0.0')
|
576
579
|
rescue LoadError
|
@@ -1292,7 +1295,7 @@ module Sass
|
|
1292
1295
|
require 'listen'
|
1293
1296
|
rescue LoadError => e
|
1294
1297
|
if version_geq(RUBY_VERSION, "1.9.3")
|
1295
|
-
version_constraint = "~>
|
1298
|
+
version_constraint = "~> 3.0"
|
1296
1299
|
else
|
1297
1300
|
version_constraint = "~> 1.1"
|
1298
1301
|
end
|
@@ -43,6 +43,7 @@ foo bar
|
|
43
43
|
baz bang
|
44
44
|
baz: bang
|
45
45
|
bip: bop
|
46
|
+
|
46
47
|
blat: boo
|
47
48
|
SASS
|
48
49
|
foo bar {
|
@@ -50,6 +51,7 @@ foo bar {
|
|
50
51
|
baz: bang;
|
51
52
|
bip: bop;
|
52
53
|
}
|
54
|
+
|
53
55
|
blat: boo;
|
54
56
|
}
|
55
57
|
SCSS
|
@@ -310,17 +312,21 @@ SCSS
|
|
310
312
|
assert_renders <<SASS, <<SCSS
|
311
313
|
foo
|
312
314
|
bar: baz
|
315
|
+
|
313
316
|
// bip bop
|
314
317
|
// beep boop
|
315
318
|
bang: bizz
|
319
|
+
|
316
320
|
// bubble bubble
|
317
321
|
// toil trouble
|
318
322
|
SASS
|
319
323
|
foo {
|
320
324
|
bar: baz;
|
325
|
+
|
321
326
|
// bip bop
|
322
327
|
// beep boop
|
323
328
|
bang: bizz;
|
329
|
+
|
324
330
|
// bubble bubble
|
325
331
|
// toil trouble
|
326
332
|
}
|
@@ -329,10 +335,12 @@ SCSS
|
|
329
335
|
assert_sass_to_scss <<SCSS, <<SASS
|
330
336
|
foo {
|
331
337
|
bar: baz;
|
338
|
+
|
332
339
|
// bip bop
|
333
340
|
// beep boop
|
334
341
|
// bap blimp
|
335
342
|
bang: bizz;
|
343
|
+
|
336
344
|
// bubble bubble
|
337
345
|
// toil trouble
|
338
346
|
// gorp
|
@@ -340,10 +348,12 @@ foo {
|
|
340
348
|
SCSS
|
341
349
|
foo
|
342
350
|
bar: baz
|
351
|
+
|
343
352
|
// bip bop
|
344
353
|
beep boop
|
345
354
|
bap blimp
|
346
355
|
bang: bizz
|
356
|
+
|
347
357
|
// bubble bubble
|
348
358
|
toil trouble
|
349
359
|
gorp
|
@@ -443,17 +453,21 @@ SCSS
|
|
443
453
|
assert_renders <<SASS, <<SCSS
|
444
454
|
foo
|
445
455
|
bar: baz
|
456
|
+
|
446
457
|
/* bip bop
|
447
458
|
* beep boop
|
448
459
|
bang: bizz
|
460
|
+
|
449
461
|
/* bubble bubble
|
450
462
|
* toil trouble
|
451
463
|
SASS
|
452
464
|
foo {
|
453
465
|
bar: baz;
|
466
|
+
|
454
467
|
/* bip bop
|
455
468
|
* beep boop */
|
456
469
|
bang: bizz;
|
470
|
+
|
457
471
|
/* bubble bubble
|
458
472
|
* toil trouble */
|
459
473
|
}
|
@@ -462,10 +476,12 @@ SCSS
|
|
462
476
|
assert_sass_to_scss <<SCSS, <<SASS
|
463
477
|
foo {
|
464
478
|
bar: baz;
|
479
|
+
|
465
480
|
/* bip bop
|
466
481
|
* beep boop
|
467
482
|
* bap blimp */
|
468
483
|
bang: bizz;
|
484
|
+
|
469
485
|
/* bubble bubble
|
470
486
|
* toil trouble
|
471
487
|
* gorp */
|
@@ -473,10 +489,12 @@ foo {
|
|
473
489
|
SCSS
|
474
490
|
foo
|
475
491
|
bar: baz
|
492
|
+
|
476
493
|
/* bip bop
|
477
494
|
beep boop
|
478
495
|
bap blimp
|
479
496
|
bang: bizz
|
497
|
+
|
480
498
|
/* bubble bubble
|
481
499
|
toil trouble
|
482
500
|
gorp
|
@@ -613,10 +631,12 @@ SASS
|
|
613
631
|
assert_renders <<SASS, <<SCSS
|
614
632
|
foo
|
615
633
|
@debug 12px
|
634
|
+
|
616
635
|
bar: baz
|
617
636
|
SASS
|
618
637
|
foo {
|
619
638
|
@debug 12px;
|
639
|
+
|
620
640
|
bar: baz;
|
621
641
|
}
|
622
642
|
SCSS
|
@@ -626,10 +646,12 @@ SCSS
|
|
626
646
|
assert_renders <<SASS, <<SCSS
|
627
647
|
foo
|
628
648
|
@error "oh no!"
|
649
|
+
|
629
650
|
bar: baz
|
630
651
|
SASS
|
631
652
|
foo {
|
632
653
|
@error "oh no!";
|
654
|
+
|
633
655
|
bar: baz;
|
634
656
|
}
|
635
657
|
SCSS
|
@@ -639,10 +661,12 @@ SCSS
|
|
639
661
|
assert_renders <<SASS, <<SCSS
|
640
662
|
foo
|
641
663
|
@foo #bar "baz"
|
664
|
+
|
642
665
|
bar: baz
|
643
666
|
SASS
|
644
667
|
foo {
|
645
668
|
@foo #bar "baz";
|
669
|
+
|
646
670
|
bar: baz;
|
647
671
|
}
|
648
672
|
SCSS
|
@@ -674,6 +698,7 @@ foo
|
|
674
698
|
@foo #bar "baz"
|
675
699
|
#blat
|
676
700
|
a: b
|
701
|
+
|
677
702
|
.bang
|
678
703
|
c: d
|
679
704
|
e: f
|
@@ -685,6 +710,7 @@ foo {
|
|
685
710
|
#blat {
|
686
711
|
a: b;
|
687
712
|
}
|
713
|
+
|
688
714
|
.bang {
|
689
715
|
c: d;
|
690
716
|
e: f;
|
@@ -701,11 +727,14 @@ SCSS
|
|
701
727
|
foo
|
702
728
|
@foo #bar "baz"
|
703
729
|
g: h
|
730
|
+
|
704
731
|
#blat
|
705
732
|
a: b
|
733
|
+
|
706
734
|
.bang
|
707
735
|
c: d
|
708
736
|
e: f
|
737
|
+
|
709
738
|
i: j
|
710
739
|
|
711
740
|
bar: baz
|
@@ -713,13 +742,16 @@ SASS
|
|
713
742
|
foo {
|
714
743
|
@foo #bar "baz" {
|
715
744
|
g: h;
|
745
|
+
|
716
746
|
#blat {
|
717
747
|
a: b;
|
718
748
|
}
|
749
|
+
|
719
750
|
.bang {
|
720
751
|
c: d;
|
721
752
|
e: f;
|
722
753
|
}
|
754
|
+
|
723
755
|
i: j;
|
724
756
|
}
|
725
757
|
|
@@ -741,6 +773,7 @@ SCSS
|
|
741
773
|
foo
|
742
774
|
@for $a from $b to $c
|
743
775
|
a: b
|
776
|
+
|
744
777
|
@for $c from 1 to 16
|
745
778
|
d: e
|
746
779
|
f: g
|
@@ -749,6 +782,7 @@ foo {
|
|
749
782
|
@for $a from $b to $c {
|
750
783
|
a: b;
|
751
784
|
}
|
785
|
+
|
752
786
|
@for $c from 1 to 16 {
|
753
787
|
d: e;
|
754
788
|
f: g;
|
@@ -762,6 +796,7 @@ SCSS
|
|
762
796
|
foo
|
763
797
|
@while flaz($a + $b)
|
764
798
|
a: b
|
799
|
+
|
765
800
|
@while 1
|
766
801
|
d: e
|
767
802
|
f: g
|
@@ -770,6 +805,7 @@ foo {
|
|
770
805
|
@while flaz($a + $b) {
|
771
806
|
a: b;
|
772
807
|
}
|
808
|
+
|
773
809
|
@while 1 {
|
774
810
|
d: e;
|
775
811
|
f: g;
|
@@ -783,6 +819,7 @@ SCSS
|
|
783
819
|
foo
|
784
820
|
@if $foo or $bar
|
785
821
|
a: b
|
822
|
+
|
786
823
|
@if $baz
|
787
824
|
d: e
|
788
825
|
@else if $bang
|
@@ -794,6 +831,7 @@ foo {
|
|
794
831
|
@if $foo or $bar {
|
795
832
|
a: b;
|
796
833
|
}
|
834
|
+
|
797
835
|
@if $baz {
|
798
836
|
d: e;
|
799
837
|
}
|
@@ -939,10 +977,12 @@ SCSS
|
|
939
977
|
assert_renders <<SASS, <<SCSS
|
940
978
|
.foo
|
941
979
|
@extend .bar
|
980
|
+
|
942
981
|
@extend .baz:bang
|
943
982
|
SASS
|
944
983
|
.foo {
|
945
984
|
@extend .bar;
|
985
|
+
|
946
986
|
@extend .baz:bang;
|
947
987
|
}
|
948
988
|
SCSS
|
@@ -1041,10 +1081,12 @@ SASS
|
|
1041
1081
|
assert_renders <<SASS, <<SCSS
|
1042
1082
|
foo
|
1043
1083
|
+foo-bar
|
1084
|
+
|
1044
1085
|
a: blip
|
1045
1086
|
SASS
|
1046
1087
|
foo {
|
1047
1088
|
@include foo-bar;
|
1089
|
+
|
1048
1090
|
a: blip;
|
1049
1091
|
}
|
1050
1092
|
SCSS
|
@@ -1054,10 +1096,12 @@ SCSS
|
|
1054
1096
|
assert_renders <<SASS, <<SCSS
|
1055
1097
|
foo
|
1056
1098
|
+foo-bar(12px, "blaz")
|
1099
|
+
|
1057
1100
|
a: blip
|
1058
1101
|
SASS
|
1059
1102
|
foo {
|
1060
1103
|
@include foo-bar(12px, "blaz");
|
1104
|
+
|
1061
1105
|
a: blip;
|
1062
1106
|
}
|
1063
1107
|
SCSS
|
@@ -1067,12 +1111,16 @@ SCSS
|
|
1067
1111
|
assert_renders <<SASS, <<SCSS
|
1068
1112
|
foo
|
1069
1113
|
+foo-bar(12px, "blaz", $blip: blap, $bloop: blop)
|
1114
|
+
|
1070
1115
|
+foo-bar($blip: blap, $bloop: blop)
|
1116
|
+
|
1071
1117
|
a: blip
|
1072
1118
|
SASS
|
1073
1119
|
foo {
|
1074
1120
|
@include foo-bar(12px, "blaz", $blip: blap, $bloop: blop);
|
1121
|
+
|
1075
1122
|
@include foo-bar($blip: blap, $bloop: blop);
|
1123
|
+
|
1076
1124
|
a: blip;
|
1077
1125
|
}
|
1078
1126
|
SCSS
|
@@ -1082,10 +1130,12 @@ SCSS
|
|
1082
1130
|
assert_renders <<SASS, <<SCSS
|
1083
1131
|
foo
|
1084
1132
|
+foo-bar($a-b_c: val)
|
1133
|
+
|
1085
1134
|
a: blip
|
1086
1135
|
SASS
|
1087
1136
|
foo {
|
1088
1137
|
@include foo-bar($a-b_c: val);
|
1138
|
+
|
1089
1139
|
a: blip;
|
1090
1140
|
}
|
1091
1141
|
SCSS
|
@@ -1095,10 +1145,12 @@ SCSS
|
|
1095
1145
|
assert_renders <<SASS, <<SCSS
|
1096
1146
|
@function foo()
|
1097
1147
|
$var: 1 + 1
|
1148
|
+
|
1098
1149
|
@return $var
|
1099
1150
|
SASS
|
1100
1151
|
@function foo() {
|
1101
1152
|
$var: 1 + 1;
|
1153
|
+
|
1102
1154
|
@return $var;
|
1103
1155
|
}
|
1104
1156
|
SCSS
|
@@ -1138,12 +1190,14 @@ $var1: 12px + 15px
|
|
1138
1190
|
|
1139
1191
|
foo
|
1140
1192
|
$var2: flaz(#abcdef)
|
1193
|
+
|
1141
1194
|
val: $var1 $var2
|
1142
1195
|
SASS
|
1143
1196
|
$var1: 12px + 15px;
|
1144
1197
|
|
1145
1198
|
foo {
|
1146
1199
|
$var2: flaz(#abcdef);
|
1200
|
+
|
1147
1201
|
val: $var1 $var2;
|
1148
1202
|
}
|
1149
1203
|
SCSS
|
@@ -1155,12 +1209,14 @@ $var1: 12px + 15px !default
|
|
1155
1209
|
|
1156
1210
|
foo
|
1157
1211
|
$var2: flaz(#abcdef) !default
|
1212
|
+
|
1158
1213
|
val: $var1 $var2
|
1159
1214
|
SASS
|
1160
1215
|
$var1: 12px + 15px !default;
|
1161
1216
|
|
1162
1217
|
foo {
|
1163
1218
|
$var2: flaz(#abcdef) !default;
|
1219
|
+
|
1164
1220
|
val: $var1 $var2;
|
1165
1221
|
}
|
1166
1222
|
SCSS
|
@@ -1428,7 +1484,9 @@ SCSS
|
|
1428
1484
|
|
1429
1485
|
div {
|
1430
1486
|
foo: under-scored-fn($under-scored-var + "before\#{$another-under-scored-var}after");
|
1487
|
+
|
1431
1488
|
@include under-scored-mixin($passed-arg);
|
1489
|
+
|
1432
1490
|
selector-\#{$under-scored-interp}: bold;
|
1433
1491
|
}
|
1434
1492
|
|
@@ -1468,7 +1526,9 @@ $color: blue
|
|
1468
1526
|
=context($class, $color: red)
|
1469
1527
|
.\#{$class}
|
1470
1528
|
background-color: $color
|
1529
|
+
|
1471
1530
|
@content
|
1531
|
+
|
1472
1532
|
border-color: $color
|
1473
1533
|
|
1474
1534
|
+context(parent)
|
@@ -1480,7 +1540,9 @@ $color: blue;
|
|
1480
1540
|
@mixin context($class, $color: red) {
|
1481
1541
|
.\#{$class} {
|
1482
1542
|
background-color: $color;
|
1543
|
+
|
1483
1544
|
@content;
|
1545
|
+
|
1484
1546
|
border-color: $color;
|
1485
1547
|
}
|
1486
1548
|
}
|
@@ -1565,6 +1627,7 @@ foo bar
|
|
1565
1627
|
baz bang
|
1566
1628
|
baz: bang
|
1567
1629
|
bip: bop
|
1630
|
+
|
1568
1631
|
blat: boo
|
1569
1632
|
SASS
|
1570
1633
|
foo bar {
|
@@ -1572,6 +1635,7 @@ foo bar {
|
|
1572
1635
|
baz: bang;
|
1573
1636
|
bip: bop;
|
1574
1637
|
}
|
1638
|
+
|
1575
1639
|
blat: boo;
|
1576
1640
|
}
|
1577
1641
|
SCSS
|
@@ -1581,6 +1645,7 @@ foo bar
|
|
1581
1645
|
baz bang
|
1582
1646
|
baz: bang
|
1583
1647
|
bip: bop
|
1648
|
+
|
1584
1649
|
blat: boo
|
1585
1650
|
SASS
|
1586
1651
|
foo bar {
|
@@ -1588,6 +1653,7 @@ foo bar {
|
|
1588
1653
|
baz: bang;
|
1589
1654
|
bip: bop;
|
1590
1655
|
}
|
1656
|
+
|
1591
1657
|
blat: boo;
|
1592
1658
|
}
|
1593
1659
|
SCSS
|
@@ -1598,6 +1664,7 @@ foo bar {
|
|
1598
1664
|
baz: bang;
|
1599
1665
|
bip: bop;
|
1600
1666
|
}
|
1667
|
+
|
1601
1668
|
blat: boo;
|
1602
1669
|
}
|
1603
1670
|
SCSS
|
@@ -1605,6 +1672,7 @@ foo bar
|
|
1605
1672
|
baz bang
|
1606
1673
|
baz: bang
|
1607
1674
|
bip: bop
|
1675
|
+
|
1608
1676
|
blat: boo
|
1609
1677
|
SASS
|
1610
1678
|
|
@@ -1614,6 +1682,7 @@ foo bar {
|
|
1614
1682
|
baz: bang;
|
1615
1683
|
bip: bop;
|
1616
1684
|
}
|
1685
|
+
|
1617
1686
|
blat: boo;
|
1618
1687
|
}
|
1619
1688
|
SCSS
|
@@ -1621,6 +1690,7 @@ foo bar
|
|
1621
1690
|
baz bang
|
1622
1691
|
baz: bang
|
1623
1692
|
bip: bop
|
1693
|
+
|
1624
1694
|
blat: boo
|
1625
1695
|
SASS
|
1626
1696
|
|
@@ -1629,6 +1699,7 @@ foo bar
|
|
1629
1699
|
baz bang
|
1630
1700
|
baz: bang
|
1631
1701
|
bip: bop
|
1702
|
+
|
1632
1703
|
blat: boo
|
1633
1704
|
SASS
|
1634
1705
|
foo bar {
|
@@ -1636,6 +1707,7 @@ foo bar {
|
|
1636
1707
|
baz: bang;
|
1637
1708
|
bip: bop;
|
1638
1709
|
}
|
1710
|
+
|
1639
1711
|
blat: boo;
|
1640
1712
|
}
|
1641
1713
|
SCSS
|
@@ -1645,6 +1717,7 @@ foo bar
|
|
1645
1717
|
baz bang
|
1646
1718
|
baz: bang
|
1647
1719
|
bip: bop
|
1720
|
+
|
1648
1721
|
blat: boo
|
1649
1722
|
SASS
|
1650
1723
|
foo bar {
|
@@ -1652,6 +1725,7 @@ foo bar {
|
|
1652
1725
|
baz: bang;
|
1653
1726
|
bip: bop;
|
1654
1727
|
}
|
1728
|
+
|
1655
1729
|
blat: boo;
|
1656
1730
|
}
|
1657
1731
|
SCSS
|
@@ -1678,6 +1752,7 @@ SCSS
|
|
1678
1752
|
|
1679
1753
|
.foo
|
1680
1754
|
+foo($list...)
|
1755
|
+
|
1681
1756
|
+bar(1, $list...)
|
1682
1757
|
SASS
|
1683
1758
|
@mixin foo($args...) {
|
@@ -1690,6 +1765,7 @@ SASS
|
|
1690
1765
|
|
1691
1766
|
.foo {
|
1692
1767
|
@include foo($list...);
|
1768
|
+
|
1693
1769
|
@include bar(1, $list...);
|
1694
1770
|
}
|
1695
1771
|
SCSS
|
@@ -1703,6 +1779,7 @@ SCSS
|
|
1703
1779
|
|
1704
1780
|
.foo
|
1705
1781
|
+foo($list..., $map...)
|
1782
|
+
|
1706
1783
|
+foo(pos, $list..., $kwd: val, $map...)
|
1707
1784
|
SASS
|
1708
1785
|
@mixin foo($a: b, $c: d) {
|
@@ -1712,6 +1789,7 @@ SASS
|
|
1712
1789
|
|
1713
1790
|
.foo {
|
1714
1791
|
@include foo($list..., $map...);
|
1792
|
+
|
1715
1793
|
@include foo(pos, $list..., $kwd: val, $map...);
|
1716
1794
|
}
|
1717
1795
|
SCSS
|
@@ -1770,6 +1848,7 @@ SCSS
|
|
1770
1848
|
@at-root
|
1771
1849
|
.bar
|
1772
1850
|
a: b
|
1851
|
+
|
1773
1852
|
.baz
|
1774
1853
|
c: d
|
1775
1854
|
SASS
|
@@ -1778,6 +1857,7 @@ SASS
|
|
1778
1857
|
.bar {
|
1779
1858
|
a: b;
|
1780
1859
|
}
|
1860
|
+
|
1781
1861
|
.baz {
|
1782
1862
|
c: d;
|
1783
1863
|
}
|
@@ -1852,10 +1932,13 @@ SCSS
|
|
1852
1932
|
0%
|
1853
1933
|
top: 0
|
1854
1934
|
left: 0
|
1935
|
+
|
1855
1936
|
30%
|
1856
1937
|
top: 50px
|
1938
|
+
|
1857
1939
|
68%, 72%
|
1858
1940
|
left: 50px
|
1941
|
+
|
1859
1942
|
100%
|
1860
1943
|
top: 100px
|
1861
1944
|
left: 100%
|
@@ -1865,12 +1948,15 @@ SASS
|
|
1865
1948
|
top: 0;
|
1866
1949
|
left: 0;
|
1867
1950
|
}
|
1951
|
+
|
1868
1952
|
30% {
|
1869
1953
|
top: 50px;
|
1870
1954
|
}
|
1955
|
+
|
1871
1956
|
68%, 72% {
|
1872
1957
|
left: 50px;
|
1873
1958
|
}
|
1959
|
+
|
1874
1960
|
100% {
|
1875
1961
|
top: 100px;
|
1876
1962
|
left: 100%;
|
data/test/sass/css2sass_test.rb
CHANGED
@@ -24,10 +24,13 @@ SASS
|
|
24
24
|
assert_equal(<<SASS, css2sass(<<CSS))
|
25
25
|
li
|
26
26
|
display: none
|
27
|
+
|
27
28
|
a
|
28
29
|
text-decoration: none
|
30
|
+
|
29
31
|
span
|
30
32
|
color: yellow
|
33
|
+
|
31
34
|
&:hover
|
32
35
|
text-decoration: underline
|
33
36
|
SASS
|
@@ -117,6 +120,7 @@ span.turkey
|
|
117
120
|
|
118
121
|
#overhere
|
119
122
|
bored: sorta
|
123
|
+
|
120
124
|
/* it's for a good
|
121
125
|
* cause
|
122
126
|
better_than: thread_pools
|
@@ -168,12 +172,16 @@ CSS
|
|
168
172
|
assert_equal(<<SASS, css2sass(<<CSS))
|
169
173
|
hello
|
170
174
|
parent: true
|
175
|
+
|
171
176
|
there
|
172
177
|
parent: false
|
178
|
+
|
173
179
|
who
|
174
180
|
hoo: false
|
181
|
+
|
175
182
|
why
|
176
183
|
y: true
|
184
|
+
|
177
185
|
when
|
178
186
|
wen: nao
|
179
187
|
|
@@ -229,6 +237,7 @@ CSS
|
|
229
237
|
assert_equal(<<SASS, css2sass(<<CSS))
|
230
238
|
\\:focus
|
231
239
|
a: b
|
240
|
+
|
232
241
|
\\:foo
|
233
242
|
bar: baz
|
234
243
|
SASS
|
@@ -243,14 +252,17 @@ CSS
|
|
243
252
|
.bar!
|
244
253
|
.baz
|
245
254
|
a: b
|
255
|
+
|
246
256
|
.bip
|
247
257
|
c: d
|
258
|
+
|
248
259
|
.bar .bonk
|
249
260
|
e: f
|
250
261
|
|
251
262
|
.flip!
|
252
263
|
&.bar
|
253
264
|
a: b
|
265
|
+
|
254
266
|
&.baz
|
255
267
|
c: d
|
256
268
|
SASS
|
@@ -301,11 +313,13 @@ CSS
|
|
301
313
|
assert_equal(<<SASS, css2sass(<<CSS))
|
302
314
|
ul
|
303
315
|
width: 10px
|
316
|
+
|
304
317
|
div
|
305
318
|
width: 20px
|
306
319
|
|
307
320
|
article
|
308
321
|
width: 10px
|
322
|
+
|
309
323
|
p
|
310
324
|
width: 20px
|
311
325
|
SASS
|
@@ -328,6 +342,7 @@ CSS
|
|
328
342
|
assert_equal(<<SASS, css2sass(<<CSS))
|
329
343
|
a
|
330
344
|
color: red
|
345
|
+
|
331
346
|
> b
|
332
347
|
SASS
|
333
348
|
a {color: red}
|
@@ -378,6 +393,7 @@ CSS
|
|
378
393
|
.foo >
|
379
394
|
.bar
|
380
395
|
a: b
|
396
|
+
|
381
397
|
.baz
|
382
398
|
c: d
|
383
399
|
SASS
|
@@ -389,6 +405,7 @@ CSS
|
|
389
405
|
.foo
|
390
406
|
&::bar
|
391
407
|
a: b
|
408
|
+
|
392
409
|
&::baz
|
393
410
|
c: d
|
394
411
|
SASS
|
data/test/sass/scss/rx_test.rb
CHANGED
@@ -141,6 +141,10 @@ class ScssRxTest < MiniTest::Test
|
|
141
141
|
assert_equal "foo\\00007fbar", Sass::SCSS::RX.escape_ident("foo\177bar")
|
142
142
|
end
|
143
143
|
|
144
|
+
def test_no_static_hyphenated_units
|
145
|
+
assert_no_match STATIC_VALUE, "20px-20px"
|
146
|
+
end
|
147
|
+
|
144
148
|
private
|
145
149
|
|
146
150
|
def assert_match(rx, str)
|
data/test/sass/scss/scss_test.rb
CHANGED
@@ -457,6 +457,15 @@ foo {a: 1 + // flang }
|
|
457
457
|
SCSS
|
458
458
|
end
|
459
459
|
|
460
|
+
def test_static_hyphenated_unit
|
461
|
+
assert_equal <<CSS, render(<<SCSS)
|
462
|
+
foo {
|
463
|
+
a: 0px; }
|
464
|
+
CSS
|
465
|
+
foo {a: 10px-10px }
|
466
|
+
SCSS
|
467
|
+
end
|
468
|
+
|
460
469
|
## Nested Rules
|
461
470
|
|
462
471
|
def test_nested_rules
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sass
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.4.
|
4
|
+
version: 3.4.16
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Natalie Weizenbaum
|
@@ -10,48 +10,48 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2015-
|
13
|
+
date: 2015-07-10 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: yard
|
17
17
|
requirement: !ruby/object:Gem::Requirement
|
18
18
|
requirements:
|
19
|
-
- -
|
19
|
+
- - '>='
|
20
20
|
- !ruby/object:Gem::Version
|
21
21
|
version: 0.5.3
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
requirements:
|
26
|
-
- -
|
26
|
+
- - '>='
|
27
27
|
- !ruby/object:Gem::Version
|
28
28
|
version: 0.5.3
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
30
|
name: maruku
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
32
32
|
requirements:
|
33
|
-
- -
|
33
|
+
- - '>='
|
34
34
|
- !ruby/object:Gem::Version
|
35
35
|
version: 0.5.9
|
36
36
|
type: :development
|
37
37
|
prerelease: false
|
38
38
|
version_requirements: !ruby/object:Gem::Requirement
|
39
39
|
requirements:
|
40
|
-
- -
|
40
|
+
- - '>='
|
41
41
|
- !ruby/object:Gem::Version
|
42
42
|
version: 0.5.9
|
43
43
|
- !ruby/object:Gem::Dependency
|
44
44
|
name: minitest
|
45
45
|
requirement: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
|
-
- -
|
47
|
+
- - '>='
|
48
48
|
- !ruby/object:Gem::Version
|
49
49
|
version: '5'
|
50
50
|
type: :development
|
51
51
|
prerelease: false
|
52
52
|
version_requirements: !ruby/object:Gem::Requirement
|
53
53
|
requirements:
|
54
|
-
- -
|
54
|
+
- - '>='
|
55
55
|
- !ruby/object:Gem::Version
|
56
56
|
version: '5'
|
57
57
|
description: |2
|
@@ -67,7 +67,8 @@ executables:
|
|
67
67
|
extensions: []
|
68
68
|
extra_rdoc_files: []
|
69
69
|
files:
|
70
|
-
-
|
70
|
+
- .yardopts
|
71
|
+
- CODE_OF_CONDUCT.md
|
71
72
|
- CONTRIBUTING.md
|
72
73
|
- MIT-LICENSE
|
73
74
|
- README.md
|
@@ -382,43 +383,43 @@ require_paths:
|
|
382
383
|
- lib
|
383
384
|
required_ruby_version: !ruby/object:Gem::Requirement
|
384
385
|
requirements:
|
385
|
-
- -
|
386
|
+
- - '>='
|
386
387
|
- !ruby/object:Gem::Version
|
387
388
|
version: 1.8.7
|
388
389
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
389
390
|
requirements:
|
390
|
-
- -
|
391
|
+
- - '>='
|
391
392
|
- !ruby/object:Gem::Version
|
392
393
|
version: '0'
|
393
394
|
requirements: []
|
394
395
|
rubyforge_project: sass
|
395
|
-
rubygems_version: 2.
|
396
|
+
rubygems_version: 2.2.2
|
396
397
|
signing_key:
|
397
398
|
specification_version: 4
|
398
399
|
summary: A powerful but elegant CSS compiler that makes CSS fun again.
|
399
400
|
test_files:
|
400
|
-
- test/sass/importer_test.rb
|
401
|
-
- test/sass/engine_test.rb
|
402
401
|
- test/sass/value_helpers_test.rb
|
403
|
-
- test/sass/
|
404
|
-
- test/sass/logger_test.rb
|
405
|
-
- test/sass/util_test.rb
|
402
|
+
- test/sass/conversion_test.rb
|
406
403
|
- test/sass/cache_test.rb
|
407
|
-
- test/sass/
|
404
|
+
- test/sass/script_test.rb
|
405
|
+
- test/sass/superselector_test.rb
|
406
|
+
- test/sass/callbacks_test.rb
|
408
407
|
- test/sass/source_map_test.rb
|
409
|
-
- test/sass/
|
408
|
+
- test/sass/script_conversion_test.rb
|
409
|
+
- test/sass/util_test.rb
|
410
410
|
- test/sass/plugin_test.rb
|
411
|
-
- test/sass/
|
412
|
-
- test/sass/util/subset_map_test.rb
|
413
|
-
- test/sass/util/multibyte_string_scanner_test.rb
|
414
|
-
- test/sass/util/normalized_map_test.rb
|
415
|
-
- test/sass/exec_test.rb
|
411
|
+
- test/sass/extend_test.rb
|
416
412
|
- test/sass/scss/rx_test.rb
|
417
|
-
- test/sass/scss/scss_test.rb
|
418
413
|
- test/sass/scss/css_test.rb
|
419
|
-
- test/sass/
|
414
|
+
- test/sass/scss/scss_test.rb
|
415
|
+
- test/sass/logger_test.rb
|
416
|
+
- test/sass/importer_test.rb
|
417
|
+
- test/sass/encoding_test.rb
|
418
|
+
- test/sass/engine_test.rb
|
419
|
+
- test/sass/exec_test.rb
|
420
|
+
- test/sass/util/normalized_map_test.rb
|
421
|
+
- test/sass/util/subset_map_test.rb
|
422
|
+
- test/sass/util/multibyte_string_scanner_test.rb
|
420
423
|
- test/sass/functions_test.rb
|
421
|
-
- test/sass/extend_test.rb
|
422
|
-
- test/sass/script_conversion_test.rb
|
423
|
-
- test/sass/script_test.rb
|
424
424
|
- test/sass/compiler_test.rb
|
425
|
+
- test/sass/css2sass_test.rb
|