sass 3.1.21 → 3.2.0.alpha.3
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.
- data/README.md +5 -4
- data/REVISION +1 -1
- data/Rakefile +6 -15
- data/VERSION +1 -1
- data/VERSION_NAME +1 -1
- data/lib/sass.rb +0 -1
- data/lib/sass/cache_stores/base.rb +1 -3
- data/lib/sass/cache_stores/filesystem.rb +0 -3
- data/lib/sass/css.rb +49 -145
- data/lib/sass/engine.rb +23 -47
- data/lib/sass/environment.rb +5 -30
- data/lib/sass/exec.rb +7 -30
- data/lib/sass/importers/base.rb +1 -2
- data/lib/sass/importers/filesystem.rb +13 -18
- data/lib/sass/less.rb +1 -1
- data/lib/sass/plugin.rb +8 -4
- data/lib/sass/plugin/compiler.rb +67 -93
- data/lib/sass/plugin/configuration.rb +2 -0
- data/lib/sass/plugin/staleness_checker.rb +4 -14
- data/lib/sass/repl.rb +3 -2
- data/lib/sass/script.rb +1 -0
- data/lib/sass/script/color.rb +9 -4
- data/lib/sass/script/funcall.rb +3 -16
- data/lib/sass/script/functions.rb +55 -98
- data/lib/sass/script/interpolation.rb +0 -9
- data/lib/sass/script/lexer.rb +4 -2
- data/lib/sass/script/list.rb +0 -8
- data/lib/sass/script/literal.rb +20 -5
- data/lib/sass/script/node.rb +0 -8
- data/lib/sass/script/number.rb +11 -35
- data/lib/sass/script/operation.rb +0 -16
- data/lib/sass/script/parser.rb +5 -12
- data/lib/sass/script/string_interpolation.rb +0 -9
- data/lib/sass/script/unary_operation.rb +0 -7
- data/lib/sass/script/variable.rb +1 -5
- data/lib/sass/scss/parser.rb +54 -191
- data/lib/sass/scss/rx.rb +3 -15
- data/lib/sass/scss/static_parser.rb +3 -3
- data/lib/sass/selector.rb +3 -15
- data/lib/sass/selector/abstract_sequence.rb +2 -11
- data/lib/sass/selector/comma_sequence.rb +3 -8
- data/lib/sass/selector/sequence.rb +11 -74
- data/lib/sass/selector/simple.rb +1 -7
- data/lib/sass/selector/simple_sequence.rb +8 -28
- data/lib/sass/shared.rb +5 -3
- data/lib/sass/tree/comment_node.rb +12 -25
- data/lib/sass/tree/debug_node.rb +1 -1
- data/lib/sass/tree/directive_node.rb +0 -5
- data/lib/sass/tree/each_node.rb +1 -1
- data/lib/sass/tree/extend_node.rb +1 -1
- data/lib/sass/tree/for_node.rb +2 -2
- data/lib/sass/tree/function_node.rb +1 -1
- data/lib/sass/tree/if_node.rb +14 -1
- data/lib/sass/tree/media_node.rb +4 -4
- data/lib/sass/tree/mixin_def_node.rb +1 -1
- data/lib/sass/tree/mixin_node.rb +2 -2
- data/lib/sass/tree/node.rb +26 -10
- data/lib/sass/tree/return_node.rb +1 -1
- data/lib/sass/tree/root_node.rb +1 -1
- data/lib/sass/tree/rule_node.rb +11 -9
- data/lib/sass/tree/variable_node.rb +1 -1
- data/lib/sass/tree/visitors/base.rb +1 -1
- data/lib/sass/tree/visitors/check_nesting.rb +36 -29
- data/lib/sass/tree/visitors/convert.rb +9 -16
- data/lib/sass/tree/visitors/cssize.rb +9 -40
- data/lib/sass/tree/visitors/perform.rb +23 -79
- data/lib/sass/tree/visitors/to_css.rb +21 -23
- data/lib/sass/tree/warn_node.rb +1 -1
- data/lib/sass/tree/while_node.rb +1 -1
- data/lib/sass/util.rb +9 -147
- data/lib/sass/version.rb +0 -14
- data/test/sass/cache_test.rb +0 -15
- data/test/sass/conversion_test.rb +8 -50
- data/test/sass/css2sass_test.rb +0 -33
- data/test/sass/engine_test.rb +32 -283
- data/test/sass/extend_test.rb +0 -315
- data/test/sass/functions_test.rb +23 -60
- data/test/sass/importer_test.rb +0 -110
- data/test/sass/more_results/more_import.css +2 -2
- data/test/sass/plugin_test.rb +13 -40
- data/test/sass/results/import.css +2 -2
- data/test/sass/results/import_charset.css +0 -1
- data/test/sass/results/import_charset_1_8.css +0 -1
- data/test/sass/results/import_charset_ibm866.css +0 -1
- data/test/sass/results/scss_import.css +2 -2
- data/test/sass/results/units.css +1 -1
- data/test/sass/script_conversion_test.rb +0 -2
- data/test/sass/script_test.rb +4 -28
- data/test/sass/scss/css_test.rb +1 -79
- data/test/sass/scss/scss_test.rb +16 -96
- data/test/sass/templates/import_charset.sass +0 -2
- data/test/sass/templates/import_charset_1_8.sass +0 -2
- data/test/sass/templates/import_charset_ibm866.sass +0 -2
- data/test/sass/test_helper.rb +1 -1
- data/test/sass/util_test.rb +0 -28
- data/test/test_helper.rb +0 -2
- data/vendor/{listen → fssm}/LICENSE +1 -1
- data/vendor/fssm/README.markdown +55 -0
- data/vendor/fssm/Rakefile +59 -0
- data/vendor/fssm/VERSION.yml +5 -0
- data/vendor/fssm/example.rb +9 -0
- data/vendor/fssm/fssm.gemspec +77 -0
- data/vendor/fssm/lib/fssm.rb +33 -0
- data/vendor/fssm/lib/fssm/backends/fsevents.rb +36 -0
- data/vendor/fssm/lib/fssm/backends/inotify.rb +26 -0
- data/vendor/fssm/lib/fssm/backends/polling.rb +25 -0
- data/vendor/fssm/lib/fssm/backends/rubycocoa/fsevents.rb +131 -0
- data/vendor/fssm/lib/fssm/monitor.rb +26 -0
- data/vendor/fssm/lib/fssm/path.rb +91 -0
- data/vendor/fssm/lib/fssm/pathname.rb +502 -0
- data/vendor/fssm/lib/fssm/state/directory.rb +57 -0
- data/vendor/fssm/lib/fssm/state/file.rb +24 -0
- data/vendor/fssm/lib/fssm/support.rb +63 -0
- data/vendor/fssm/lib/fssm/tree.rb +176 -0
- data/vendor/fssm/profile/prof-cache.rb +40 -0
- data/vendor/fssm/profile/prof-fssm-pathname.html +1231 -0
- data/vendor/fssm/profile/prof-pathname.rb +68 -0
- data/vendor/fssm/profile/prof-plain-pathname.html +988 -0
- data/vendor/fssm/profile/prof.html +2379 -0
- data/vendor/fssm/spec/path_spec.rb +75 -0
- data/vendor/fssm/spec/root/duck/quack.txt +0 -0
- data/vendor/fssm/spec/root/file.css +0 -0
- data/vendor/fssm/spec/root/file.rb +0 -0
- data/vendor/fssm/spec/root/file.yml +0 -0
- data/vendor/fssm/spec/root/moo/cow.txt +0 -0
- data/vendor/fssm/spec/spec_helper.rb +14 -0
- metadata +246 -281
- data/VERSION_DATE +0 -1
- data/lib/sass/logger.rb +0 -15
- data/lib/sass/logger/base.rb +0 -32
- data/lib/sass/logger/log_level.rb +0 -49
- data/lib/sass/tree/visitors/deep_copy.rb +0 -87
- data/lib/sass/tree/visitors/extend.rb +0 -42
- data/lib/sass/tree/visitors/set_options.rb +0 -97
- data/lib/sass/util/multibyte_string_scanner.rb +0 -134
- data/test/Gemfile +0 -4
- data/test/Gemfile.lock +0 -19
- data/test/sass/fixtures/test_staleness_check_across_importers.css +0 -1
- data/test/sass/fixtures/test_staleness_check_across_importers.scss +0 -1
- data/test/sass/logger_test.rb +0 -58
- data/test/sass/templates/_double_import_loop2.sass +0 -1
- data/test/sass/templates/bork5.sass +0 -3
- data/test/sass/templates/double_import_loop1.sass +0 -1
- data/test/sass/templates/nested_bork5.sass +0 -2
- data/test/sass/templates/single_import_loop.sass +0 -1
- data/test/sass/util/multibyte_string_scanner_test.rb +0 -147
- data/vendor/listen/CHANGELOG.md +0 -147
- data/vendor/listen/Gemfile +0 -23
- data/vendor/listen/Guardfile +0 -8
- data/vendor/listen/README.md +0 -312
- data/vendor/listen/Rakefile +0 -47
- data/vendor/listen/Vagrantfile +0 -96
- data/vendor/listen/lib/listen.rb +0 -38
- data/vendor/listen/lib/listen/adapter.rb +0 -167
- data/vendor/listen/lib/listen/adapters/darwin.rb +0 -84
- data/vendor/listen/lib/listen/adapters/linux.rb +0 -110
- data/vendor/listen/lib/listen/adapters/polling.rb +0 -66
- data/vendor/listen/lib/listen/adapters/windows.rb +0 -81
- data/vendor/listen/lib/listen/directory_record.rb +0 -318
- data/vendor/listen/lib/listen/listener.rb +0 -203
- data/vendor/listen/lib/listen/multi_listener.rb +0 -121
- data/vendor/listen/lib/listen/turnstile.rb +0 -28
- data/vendor/listen/lib/listen/version.rb +0 -3
- data/vendor/listen/listen.gemspec +0 -26
- data/vendor/listen/spec/listen/adapter_spec.rb +0 -142
- data/vendor/listen/spec/listen/adapters/darwin_spec.rb +0 -31
- data/vendor/listen/spec/listen/adapters/linux_spec.rb +0 -41
- data/vendor/listen/spec/listen/adapters/polling_spec.rb +0 -68
- data/vendor/listen/spec/listen/adapters/windows_spec.rb +0 -24
- data/vendor/listen/spec/listen/directory_record_spec.rb +0 -1138
- data/vendor/listen/spec/listen/listener_spec.rb +0 -155
- data/vendor/listen/spec/listen/multi_listener_spec.rb +0 -156
- data/vendor/listen/spec/listen/turnstile_spec.rb +0 -56
- data/vendor/listen/spec/listen_spec.rb +0 -73
- data/vendor/listen/spec/spec_helper.rb +0 -18
- data/vendor/listen/spec/support/adapter_helper.rb +0 -716
- data/vendor/listen/spec/support/directory_record_helper.rb +0 -55
- data/vendor/listen/spec/support/fixtures_helper.rb +0 -29
- data/vendor/listen/spec/support/listeners_helper.rb +0 -144
- data/vendor/listen/spec/support/platform_helper.rb +0 -11
data/test/sass/extend_test.rb
CHANGED
@@ -741,22 +741,6 @@ SCSS
|
|
741
741
|
CSS
|
742
742
|
:foo.baz {a: b}
|
743
743
|
:bar {@extend .baz}
|
744
|
-
SCSS
|
745
|
-
|
746
|
-
assert_equal <<CSS, render(<<SCSS)
|
747
|
-
.baz:foo, :foo:after {
|
748
|
-
a: b; }
|
749
|
-
CSS
|
750
|
-
.baz:foo {a: b}
|
751
|
-
:after {@extend .baz}
|
752
|
-
SCSS
|
753
|
-
|
754
|
-
assert_equal <<CSS, render(<<SCSS)
|
755
|
-
.baz:after, :foo:after {
|
756
|
-
a: b; }
|
757
|
-
CSS
|
758
|
-
.baz:after {a: b}
|
759
|
-
:foo {@extend .baz}
|
760
744
|
SCSS
|
761
745
|
|
762
746
|
assert_equal <<CSS, render(<<SCSS)
|
@@ -876,20 +860,6 @@ CSS
|
|
876
860
|
SCSS
|
877
861
|
end
|
878
862
|
|
879
|
-
def test_comma_extendee
|
880
|
-
assert_equal <<CSS, render(<<SCSS)
|
881
|
-
.foo, .baz {
|
882
|
-
a: b; }
|
883
|
-
|
884
|
-
.bar, .baz {
|
885
|
-
c: d; }
|
886
|
-
CSS
|
887
|
-
.foo {a: b}
|
888
|
-
.bar {c: d}
|
889
|
-
.baz {@extend .foo, .bar}
|
890
|
-
SCSS
|
891
|
-
end
|
892
|
-
|
893
863
|
## Long Extendees
|
894
864
|
|
895
865
|
def test_long_extendee
|
@@ -1369,291 +1339,6 @@ CSS
|
|
1369
1339
|
SCSS
|
1370
1340
|
end
|
1371
1341
|
|
1372
|
-
def test_extend_out_of_media
|
1373
|
-
assert_warning(<<WARN) {assert_equal(<<CSS, render(<<SCSS))}
|
1374
|
-
DEPRECATION WARNING on line 3 of test_extend_out_of_media_inline.sass:
|
1375
|
-
@extending an outer selector from within @media is deprecated.
|
1376
|
-
You may only @extend selectors within the same directive.
|
1377
|
-
This will be an error in Sass 3.3.
|
1378
|
-
It can only work once @extend is supported natively in the browser.
|
1379
|
-
WARN
|
1380
|
-
.foo {
|
1381
|
-
a: b; }
|
1382
|
-
CSS
|
1383
|
-
.foo {a: b}
|
1384
|
-
@media screen {
|
1385
|
-
.bar {@extend .foo}
|
1386
|
-
}
|
1387
|
-
SCSS
|
1388
|
-
end
|
1389
|
-
|
1390
|
-
def test_extend_out_of_unknown_directive
|
1391
|
-
assert_warning(<<WARN) {assert_equal(<<CSS, render(<<SCSS))}
|
1392
|
-
DEPRECATION WARNING on line 3 of test_extend_out_of_unknown_directive_inline.sass:
|
1393
|
-
@extending an outer selector from within @flooblehoof is deprecated.
|
1394
|
-
You may only @extend selectors within the same directive.
|
1395
|
-
This will be an error in Sass 3.3.
|
1396
|
-
It can only work once @extend is supported natively in the browser.
|
1397
|
-
WARN
|
1398
|
-
.foo {
|
1399
|
-
a: b; }
|
1400
|
-
|
1401
|
-
@flooblehoof {}
|
1402
|
-
CSS
|
1403
|
-
.foo {a: b}
|
1404
|
-
@flooblehoof {
|
1405
|
-
.bar {@extend .foo}
|
1406
|
-
}
|
1407
|
-
SCSS
|
1408
|
-
end
|
1409
|
-
|
1410
|
-
def test_extend_out_of_nested_directives
|
1411
|
-
assert_warning(<<WARN) {assert_equal(<<CSS, render(<<SCSS))}
|
1412
|
-
DEPRECATION WARNING on line 4 of test_extend_out_of_nested_directives_inline.sass:
|
1413
|
-
@extending an outer selector from within @flooblehoof is deprecated.
|
1414
|
-
You may only @extend selectors within the same directive.
|
1415
|
-
This will be an error in Sass 3.3.
|
1416
|
-
It can only work once @extend is supported natively in the browser.
|
1417
|
-
WARN
|
1418
|
-
@media screen {
|
1419
|
-
.foo {
|
1420
|
-
a: b; }
|
1421
|
-
|
1422
|
-
@flooblehoof {} }
|
1423
|
-
CSS
|
1424
|
-
@media screen {
|
1425
|
-
.foo {a: b}
|
1426
|
-
@flooblehoof {
|
1427
|
-
.bar {@extend .foo}
|
1428
|
-
}
|
1429
|
-
}
|
1430
|
-
SCSS
|
1431
|
-
end
|
1432
|
-
|
1433
|
-
def test_extend_within_media
|
1434
|
-
assert_equal(<<CSS, render(<<SCSS))
|
1435
|
-
@media screen {
|
1436
|
-
.foo, .bar {
|
1437
|
-
a: b; } }
|
1438
|
-
CSS
|
1439
|
-
@media screen {
|
1440
|
-
.foo {a: b}
|
1441
|
-
.bar {@extend .foo}
|
1442
|
-
}
|
1443
|
-
SCSS
|
1444
|
-
end
|
1445
|
-
|
1446
|
-
def test_extend_within_unknown_directive
|
1447
|
-
assert_equal(<<CSS, render(<<SCSS))
|
1448
|
-
@flooblehoof {
|
1449
|
-
.foo, .bar {
|
1450
|
-
a: b; } }
|
1451
|
-
CSS
|
1452
|
-
@flooblehoof {
|
1453
|
-
.foo {a: b}
|
1454
|
-
.bar {@extend .foo}
|
1455
|
-
}
|
1456
|
-
SCSS
|
1457
|
-
end
|
1458
|
-
|
1459
|
-
def test_extend_within_nested_directives
|
1460
|
-
assert_equal(<<CSS, render(<<SCSS))
|
1461
|
-
@media screen {
|
1462
|
-
@flooblehoof {
|
1463
|
-
.foo, .bar {
|
1464
|
-
a: b; } } }
|
1465
|
-
CSS
|
1466
|
-
@media screen {
|
1467
|
-
@flooblehoof {
|
1468
|
-
.foo {a: b}
|
1469
|
-
.bar {@extend .foo}
|
1470
|
-
}
|
1471
|
-
}
|
1472
|
-
SCSS
|
1473
|
-
end
|
1474
|
-
|
1475
|
-
def test_extend_within_disparate_media
|
1476
|
-
assert_equal(<<CSS, render(<<SCSS))
|
1477
|
-
@media screen {
|
1478
|
-
.foo, .bar {
|
1479
|
-
a: b; } }
|
1480
|
-
CSS
|
1481
|
-
@media screen {.foo {a: b}}
|
1482
|
-
@media screen {.bar {@extend .foo}}
|
1483
|
-
SCSS
|
1484
|
-
end
|
1485
|
-
|
1486
|
-
def test_extend_within_disparate_unknown_directive
|
1487
|
-
assert_equal(<<CSS, render(<<SCSS))
|
1488
|
-
@flooblehoof {
|
1489
|
-
.foo, .bar {
|
1490
|
-
a: b; } }
|
1491
|
-
|
1492
|
-
@flooblehoof {}
|
1493
|
-
CSS
|
1494
|
-
@flooblehoof {.foo {a: b}}
|
1495
|
-
@flooblehoof {.bar {@extend .foo}}
|
1496
|
-
SCSS
|
1497
|
-
end
|
1498
|
-
|
1499
|
-
def test_extend_within_disparate_nested_directives
|
1500
|
-
assert_equal(<<CSS, render(<<SCSS))
|
1501
|
-
@media screen {
|
1502
|
-
@flooblehoof {
|
1503
|
-
.foo, .bar {
|
1504
|
-
a: b; } } }
|
1505
|
-
@media screen {
|
1506
|
-
@flooblehoof {} }
|
1507
|
-
CSS
|
1508
|
-
@media screen {@flooblehoof {.foo {a: b}}}
|
1509
|
-
@media screen {@flooblehoof {.bar {@extend .foo}}}
|
1510
|
-
SCSS
|
1511
|
-
end
|
1512
|
-
|
1513
|
-
def test_extend_within_and_without_media
|
1514
|
-
assert_warning(<<WARN) {assert_equal(<<CSS, render(<<SCSS))}
|
1515
|
-
DEPRECATION WARNING on line 4 of test_extend_within_and_without_media_inline.sass:
|
1516
|
-
@extending an outer selector from within @media is deprecated.
|
1517
|
-
You may only @extend selectors within the same directive.
|
1518
|
-
This will be an error in Sass 3.3.
|
1519
|
-
It can only work once @extend is supported natively in the browser.
|
1520
|
-
WARN
|
1521
|
-
.foo {
|
1522
|
-
a: b; }
|
1523
|
-
|
1524
|
-
@media screen {
|
1525
|
-
.foo, .bar {
|
1526
|
-
c: d; } }
|
1527
|
-
CSS
|
1528
|
-
.foo {a: b}
|
1529
|
-
@media screen {
|
1530
|
-
.foo {c: d}
|
1531
|
-
.bar {@extend .foo}
|
1532
|
-
}
|
1533
|
-
SCSS
|
1534
|
-
end
|
1535
|
-
|
1536
|
-
def test_extend_within_and_without_unknown_directive
|
1537
|
-
assert_warning(<<WARN) {assert_equal(<<CSS, render(<<SCSS))}
|
1538
|
-
DEPRECATION WARNING on line 4 of test_extend_within_and_without_unknown_directive_inline.sass:
|
1539
|
-
@extending an outer selector from within @flooblehoof is deprecated.
|
1540
|
-
You may only @extend selectors within the same directive.
|
1541
|
-
This will be an error in Sass 3.3.
|
1542
|
-
It can only work once @extend is supported natively in the browser.
|
1543
|
-
WARN
|
1544
|
-
.foo {
|
1545
|
-
a: b; }
|
1546
|
-
|
1547
|
-
@flooblehoof {
|
1548
|
-
.foo, .bar {
|
1549
|
-
c: d; } }
|
1550
|
-
CSS
|
1551
|
-
.foo {a: b}
|
1552
|
-
@flooblehoof {
|
1553
|
-
.foo {c: d}
|
1554
|
-
.bar {@extend .foo}
|
1555
|
-
}
|
1556
|
-
SCSS
|
1557
|
-
end
|
1558
|
-
|
1559
|
-
def test_extend_within_and_without_nested_directives
|
1560
|
-
assert_warning(<<WARN) {assert_equal(<<CSS, render(<<SCSS))}
|
1561
|
-
DEPRECATION WARNING on line 5 of test_extend_within_and_without_nested_directives_inline.sass:
|
1562
|
-
@extending an outer selector from within @flooblehoof is deprecated.
|
1563
|
-
You may only @extend selectors within the same directive.
|
1564
|
-
This will be an error in Sass 3.3.
|
1565
|
-
It can only work once @extend is supported natively in the browser.
|
1566
|
-
WARN
|
1567
|
-
@media screen {
|
1568
|
-
.foo {
|
1569
|
-
a: b; }
|
1570
|
-
|
1571
|
-
@flooblehoof {
|
1572
|
-
.foo, .bar {
|
1573
|
-
c: d; } } }
|
1574
|
-
CSS
|
1575
|
-
@media screen {
|
1576
|
-
.foo {a: b}
|
1577
|
-
@flooblehoof {
|
1578
|
-
.foo {c: d}
|
1579
|
-
.bar {@extend .foo}
|
1580
|
-
}
|
1581
|
-
}
|
1582
|
-
SCSS
|
1583
|
-
end
|
1584
|
-
|
1585
|
-
# Regression Tests
|
1586
|
-
|
1587
|
-
def test_duplicated_selector_with_newlines
|
1588
|
-
assert_equal(<<CSS, render(<<SCSS))
|
1589
|
-
.example-1-1,
|
1590
|
-
.example-1-2,
|
1591
|
-
.my-page-1 .my-module-1-1,
|
1592
|
-
.example-1-3 {
|
1593
|
-
a: b; }
|
1594
|
-
CSS
|
1595
|
-
.example-1-1,
|
1596
|
-
.example-1-2,
|
1597
|
-
.example-1-3 {
|
1598
|
-
a: b;
|
1599
|
-
}
|
1600
|
-
|
1601
|
-
.my-page-1 .my-module-1-1 {@extend .example-1-2}
|
1602
|
-
SCSS
|
1603
|
-
end
|
1604
|
-
|
1605
|
-
def test_nested_selector_with_child_selector_hack_extendee
|
1606
|
-
assert_equal <<CSS, render(<<SCSS)
|
1607
|
-
> .foo, > foo bar {
|
1608
|
-
a: b; }
|
1609
|
-
CSS
|
1610
|
-
> .foo {a: b}
|
1611
|
-
foo bar {@extend .foo}
|
1612
|
-
SCSS
|
1613
|
-
end
|
1614
|
-
|
1615
|
-
def test_nested_selector_with_child_selector_hack_extender
|
1616
|
-
assert_equal <<CSS, render(<<SCSS)
|
1617
|
-
.foo .bar, > .foo foo bar, > foo .foo bar {
|
1618
|
-
a: b; }
|
1619
|
-
CSS
|
1620
|
-
.foo .bar {a: b}
|
1621
|
-
> foo bar {@extend .bar}
|
1622
|
-
SCSS
|
1623
|
-
end
|
1624
|
-
|
1625
|
-
def test_nested_selector_with_child_selector_hack_extender_and_extendee
|
1626
|
-
assert_equal <<CSS, render(<<SCSS)
|
1627
|
-
> .foo, > foo bar {
|
1628
|
-
a: b; }
|
1629
|
-
CSS
|
1630
|
-
> .foo {a: b}
|
1631
|
-
> foo bar {@extend .foo}
|
1632
|
-
SCSS
|
1633
|
-
end
|
1634
|
-
|
1635
|
-
def test_nested_selector_with_child_selector_hack_extender_and_sibling_selector_extendee
|
1636
|
-
assert_equal <<CSS, render(<<SCSS)
|
1637
|
-
~ .foo {
|
1638
|
-
a: b; }
|
1639
|
-
CSS
|
1640
|
-
~ .foo {a: b}
|
1641
|
-
> foo bar {@extend .foo}
|
1642
|
-
SCSS
|
1643
|
-
end
|
1644
|
-
|
1645
|
-
def test_nested_selector_with_child_selector_hack_extender_and_extendee_and_newline
|
1646
|
-
assert_equal <<CSS, render(<<SCSS)
|
1647
|
-
> .foo, > flip,
|
1648
|
-
> foo bar {
|
1649
|
-
a: b; }
|
1650
|
-
CSS
|
1651
|
-
> .foo {a: b}
|
1652
|
-
flip,
|
1653
|
-
> foo bar {@extend .foo}
|
1654
|
-
SCSS
|
1655
|
-
end
|
1656
|
-
|
1657
1342
|
private
|
1658
1343
|
|
1659
1344
|
def render(sass, options = {})
|
data/test/sass/functions_test.rb
CHANGED
@@ -76,7 +76,7 @@ class SassFunctionTest < Test::Unit::TestCase
|
|
76
76
|
|
77
77
|
def test_hsl_checks_bounds
|
78
78
|
assert_error_message("Saturation -114 must be between 0% and 100% for `hsl'", "hsl(10, -114, 12)");
|
79
|
-
assert_error_message("Lightness 256
|
79
|
+
assert_error_message("Lightness 256 must be between 0% and 100% for `hsl'", "hsl(10, 10, 256%)");
|
80
80
|
end
|
81
81
|
|
82
82
|
def test_hsl_checks_types
|
@@ -94,7 +94,7 @@ class SassFunctionTest < Test::Unit::TestCase
|
|
94
94
|
|
95
95
|
def test_hsla_checks_bounds
|
96
96
|
assert_error_message("Saturation -114 must be between 0% and 100% for `hsla'", "hsla(10, -114, 12, 1)");
|
97
|
-
assert_error_message("Lightness 256
|
97
|
+
assert_error_message("Lightness 256 must be between 0% and 100% for `hsla'", "hsla(10, 10, 256%, 0)");
|
98
98
|
assert_error_message("Alpha channel -0.1 must be between 0 and 1 for `hsla'", "hsla(10, 10, 10, -0.1)");
|
99
99
|
assert_error_message("Alpha channel 1.1 must be between 0 and 1 for `hsla'", "hsla(10, 10, 10, 1.1)");
|
100
100
|
end
|
@@ -169,24 +169,24 @@ class SassFunctionTest < Test::Unit::TestCase
|
|
169
169
|
end
|
170
170
|
|
171
171
|
def test_rgb_tests_bounds
|
172
|
-
assert_error_message("Color value 256 must be between 0 and 255 for `rgb'",
|
172
|
+
assert_error_message("Color value 256 must be between 0 and 255 inclusive for `rgb'",
|
173
173
|
"rgb(256, 1, 1)")
|
174
|
-
assert_error_message("Color value 256 must be between 0 and 255 for `rgb'",
|
174
|
+
assert_error_message("Color value 256 must be between 0 and 255 inclusive for `rgb'",
|
175
175
|
"rgb(1, 256, 1)")
|
176
|
-
assert_error_message("Color value 256 must be between 0 and 255 for `rgb'",
|
176
|
+
assert_error_message("Color value 256 must be between 0 and 255 inclusive for `rgb'",
|
177
177
|
"rgb(1, 1, 256)")
|
178
|
-
assert_error_message("Color value 256 must be between 0 and 255 for `rgb'",
|
178
|
+
assert_error_message("Color value 256 must be between 0 and 255 inclusive for `rgb'",
|
179
179
|
"rgb(1, 256, 257)")
|
180
|
-
assert_error_message("Color value -1 must be between 0 and 255 for `rgb'",
|
180
|
+
assert_error_message("Color value -1 must be between 0 and 255 inclusive for `rgb'",
|
181
181
|
"rgb(-1, 1, 1)")
|
182
182
|
end
|
183
183
|
|
184
184
|
def test_rgb_test_percent_bounds
|
185
|
-
assert_error_message("Color value 100.1% must be between 0% and 100% for `rgb'",
|
185
|
+
assert_error_message("Color value 100.1% must be between 0% and 100% inclusive for `rgb'",
|
186
186
|
"rgb(100.1%, 0, 0)")
|
187
|
-
assert_error_message("Color value -0.1% must be between 0% and 100% for `rgb'",
|
187
|
+
assert_error_message("Color value -0.1% must be between 0% and 100% inclusive for `rgb'",
|
188
188
|
"rgb(0, -0.1%, 0)")
|
189
|
-
assert_error_message("Color value 101% must be between 0% and 100% for `rgb'",
|
189
|
+
assert_error_message("Color value 101% must be between 0% and 100% inclusive for `rgb'",
|
190
190
|
"rgb(0, 0, 101%)")
|
191
191
|
end
|
192
192
|
|
@@ -204,19 +204,19 @@ class SassFunctionTest < Test::Unit::TestCase
|
|
204
204
|
end
|
205
205
|
|
206
206
|
def test_rgb_tests_bounds
|
207
|
-
assert_error_message("Color value 256 must be between 0 and 255 for `rgba'",
|
207
|
+
assert_error_message("Color value 256 must be between 0 and 255 inclusive for `rgba'",
|
208
208
|
"rgba(256, 1, 1, 0.3)")
|
209
|
-
assert_error_message("Color value 256 must be between 0 and 255 for `rgba'",
|
209
|
+
assert_error_message("Color value 256 must be between 0 and 255 inclusive for `rgba'",
|
210
210
|
"rgba(1, 256, 1, 0.3)")
|
211
|
-
assert_error_message("Color value 256 must be between 0 and 255 for `rgba'",
|
211
|
+
assert_error_message("Color value 256 must be between 0 and 255 inclusive for `rgba'",
|
212
212
|
"rgba(1, 1, 256, 0.3)")
|
213
|
-
assert_error_message("Color value 256 must be between 0 and 255 for `rgba'",
|
213
|
+
assert_error_message("Color value 256 must be between 0 and 255 inclusive for `rgba'",
|
214
214
|
"rgba(1, 256, 257, 0.3)")
|
215
|
-
assert_error_message("Color value -1 must be between 0 and 255 for `rgba'",
|
215
|
+
assert_error_message("Color value -1 must be between 0 and 255 inclusive for `rgba'",
|
216
216
|
"rgba(-1, 1, 1, 0.3)")
|
217
|
-
assert_error_message("Alpha channel -0.2 must be between 0 and 1 for `rgba'",
|
217
|
+
assert_error_message("Alpha channel -0.2 must be between 0 and 1 inclusive for `rgba'",
|
218
218
|
"rgba(1, 1, 1, -0.2)")
|
219
|
-
assert_error_message("Alpha channel 1.2 must be between 0 and 1 for `rgba'",
|
219
|
+
assert_error_message("Alpha channel 1.2 must be between 0 and 1 inclusive for `rgba'",
|
220
220
|
"rgba(1, 1, 1, 1.2)")
|
221
221
|
end
|
222
222
|
|
@@ -312,18 +312,6 @@ class SassFunctionTest < Test::Unit::TestCase
|
|
312
312
|
assert_error_message("12 is not a color for `alpha'", "alpha(12)")
|
313
313
|
end
|
314
314
|
|
315
|
-
def test_opacity
|
316
|
-
assert_equal("1", evaluate("opacity(#123456)"))
|
317
|
-
assert_equal("0.34", evaluate("opacity(rgba(0, 1, 2, 0.34))"))
|
318
|
-
assert_equal("0", evaluate("opacity(hsla(0, 1, 2, 0))"))
|
319
|
-
assert_equal("0", evaluate("opacity($color: hsla(0, 1, 2, 0))"))
|
320
|
-
assert_equal("opacity(20%)", evaluate("opacity(20%)"))
|
321
|
-
end
|
322
|
-
|
323
|
-
def test_opacity_exception
|
324
|
-
assert_error_message("\"foo\" is not a color for `opacity'", "opacity(foo)")
|
325
|
-
end
|
326
|
-
|
327
315
|
def test_opacify
|
328
316
|
assert_equal("rgba(0, 0, 0, 0.75)", evaluate("opacify(rgba(0, 0, 0, 0.5), 0.25)"))
|
329
317
|
assert_equal("rgba(0, 0, 0, 0.3)", evaluate("opacify(rgba(0, 0, 0, 0.2), 0.1)"))
|
@@ -423,7 +411,6 @@ class SassFunctionTest < Test::Unit::TestCase
|
|
423
411
|
assert_equal("#88aa88", evaluate("saturate(#8a8, 0%)"))
|
424
412
|
assert_equal("rgba(158, 63, 63, 0.5)", evaluate("saturate(rgba(136, 85, 85, 0.5), 20%)"))
|
425
413
|
assert_equal("rgba(158, 63, 63, 0.5)", evaluate("saturate($color: rgba(136, 85, 85, 0.5), $amount: 20%)"))
|
426
|
-
assert_equal("saturate(50%)", evaluate("saturate(50%)"))
|
427
414
|
end
|
428
415
|
|
429
416
|
def test_saturate_tests_bounds
|
@@ -726,15 +713,15 @@ class SassFunctionTest < Test::Unit::TestCase
|
|
726
713
|
|
727
714
|
def test_change_color_argument_errors
|
728
715
|
# Range
|
729
|
-
assert_error_message("Saturation
|
716
|
+
assert_error_message("Saturation must be between 0 and 100 for `change-color'",
|
730
717
|
"change-color(blue, $saturation: 101%)")
|
731
|
-
assert_error_message("Lightness
|
718
|
+
assert_error_message("Lightness must be between 0 and 100 for `change-color'",
|
732
719
|
"change-color(blue, $lightness: 101%)")
|
733
|
-
assert_error_message("Red value
|
720
|
+
assert_error_message("Red value must be between 0 and 255 for `change-color'",
|
734
721
|
"change-color(blue, $red: -1)")
|
735
|
-
assert_error_message("Green value
|
722
|
+
assert_error_message("Green value must be between 0 and 255 for `change-color'",
|
736
723
|
"change-color(blue, $green: 256)")
|
737
|
-
assert_error_message("Blue value
|
724
|
+
assert_error_message("Blue value must be between 0 and 255 for `change-color'",
|
738
725
|
"change-color(blue, $blue: 500)")
|
739
726
|
|
740
727
|
# Unknown argument
|
@@ -785,9 +772,6 @@ class SassFunctionTest < Test::Unit::TestCase
|
|
785
772
|
assert_equal("white", evaluate("grayscale(white)"))
|
786
773
|
assert_equal("black", evaluate("grayscale(black)"))
|
787
774
|
assert_equal("black", evaluate("grayscale($color: black)"))
|
788
|
-
|
789
|
-
assert_equal("grayscale(2)", evaluate("grayscale(2)"))
|
790
|
-
assert_equal("grayscale(-5px)", evaluate("grayscale(-5px)"))
|
791
775
|
end
|
792
776
|
|
793
777
|
def tets_grayscale_tests_types
|
@@ -810,7 +794,6 @@ class SassFunctionTest < Test::Unit::TestCase
|
|
810
794
|
def test_invert
|
811
795
|
assert_equal("#112233", evaluate("invert(#edc)"))
|
812
796
|
assert_equal("rgba(245, 235, 225, 0.5)", evaluate("invert(rgba(10, 20, 30, 0.5))"))
|
813
|
-
assert_equal("invert(20%)", evaluate("invert(20%)"))
|
814
797
|
end
|
815
798
|
|
816
799
|
def test_invert_tests_types
|
@@ -865,8 +848,7 @@ MSG
|
|
865
848
|
assert_equal(%Q{"px"}, evaluate("unit(100px)"))
|
866
849
|
assert_equal(%Q{"em*px"}, evaluate("unit(10px * 5em)"))
|
867
850
|
assert_equal(%Q{"em*px"}, evaluate("unit(5em * 10px)"))
|
868
|
-
assert_equal(%Q{"em/rem"}, evaluate("unit(10px * 5em / 30cm / 1rem)"))
|
869
|
-
assert_equal(%Q{"em*vh/cm*rem"}, evaluate("unit(10vh * 5em / 30cm / 1rem)"))
|
851
|
+
assert_equal(%Q{"em*px/cm*rem"}, evaluate("unit(10px * 5em / 30cm / 1rem)"))
|
870
852
|
assert_equal(%Q{"px"}, evaluate("unit($number: 100px)"))
|
871
853
|
assert_error_message("#ff0000 is not a number for `unit'", "unit(#f00)")
|
872
854
|
end
|
@@ -983,19 +965,6 @@ MSG
|
|
983
965
|
assert_error_message("Separator name must be space, comma, or auto for `append'", "append(1, 2, baboon)")
|
984
966
|
end
|
985
967
|
|
986
|
-
def test_zip
|
987
|
-
assert_equal("1 3 5, 2 4 6", evaluate("zip(1 2, 3 4, 5 6)"))
|
988
|
-
assert_equal("1 4 7, 2 5 8", evaluate("zip(1 2 3, 4 5 6, 7 8)"))
|
989
|
-
end
|
990
|
-
|
991
|
-
def test_index
|
992
|
-
assert_equal("1", evaluate("index(1px solid blue, 1px)"))
|
993
|
-
assert_equal("2", evaluate("index(1px solid blue, solid)"))
|
994
|
-
assert_equal("3", evaluate("index(1px solid blue, #00f)"))
|
995
|
-
assert_equal("false", evaluate("index(1px solid blue, 1em)"))
|
996
|
-
assert_equal("false", evaluate("index(1px solid blue, notfound)"))
|
997
|
-
end
|
998
|
-
|
999
968
|
def test_if
|
1000
969
|
assert_equal("1px", evaluate("if(true, 1px, 2px)"))
|
1001
970
|
assert_equal("2px", evaluate("if(false, 1px, 2px)"))
|
@@ -1036,12 +1005,6 @@ MSG
|
|
1036
1005
|
assert_equal "only-kw-args(a, b, c)", evaluate("only-kw-args($a: 1, $b: 2, $c: 3)")
|
1037
1006
|
end
|
1038
1007
|
|
1039
|
-
## Regression Tests
|
1040
|
-
|
1041
|
-
def test_saturation_bounds
|
1042
|
-
assert_equal "#fbfdff", evaluate("hsl(hue(#fbfdff), saturation(#fbfdff), lightness(#fbfdff))")
|
1043
|
-
end
|
1044
|
-
|
1045
1008
|
private
|
1046
1009
|
|
1047
1010
|
def evaluate(value)
|