sass 3.3.0.alpha.132 → 3.3.0.alpha.133
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/REVISION +1 -1
- data/VERSION +1 -1
- data/VERSION_DATE +1 -1
- data/lib/sass/script/functions.rb +10 -4
- data/lib/sass/script/null.rb +4 -1
- data/lib/sass/tree/visitors/perform.rb +1 -1
- data/test/sass/conversion_test.rb +0 -16
- data/test/sass/engine_test.rb +37 -0
- data/test/sass/script_conversion_test.rb +14 -0
- metadata +4 -4
data/REVISION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
a60a9187f9b56775f340e920390083771f3e5cc7
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.3.0.alpha.
|
1
|
+
3.3.0.alpha.133
|
data/VERSION_DATE
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
22 April 2013 20:03:03 GMT
|
@@ -165,6 +165,12 @@ module Sass::Script
|
|
165
165
|
# \{#append append($list1, $val, \[$separator\])}
|
166
166
|
# : Appends a single value onto the end of a list.
|
167
167
|
#
|
168
|
+
# \{#zip zip($list1, $list2, ...)}
|
169
|
+
# : Combines several lists into a single multidimensional list.
|
170
|
+
#
|
171
|
+
# \{#index index($list, $value)}
|
172
|
+
# : Returns the position of a value within a list, or false.
|
173
|
+
#
|
168
174
|
# \{#list-separator list-separator(#list)}
|
169
175
|
# : Returns the separator of a list.
|
170
176
|
#
|
@@ -1558,8 +1564,8 @@ module Sass::Script
|
|
1558
1564
|
declare :append, [:list, :val]
|
1559
1565
|
declare :append, [:list, :val, :separator]
|
1560
1566
|
|
1561
|
-
# Combines several lists into a single comma separated list
|
1562
|
-
# space separated lists.
|
1567
|
+
# Combines several lists into a single comma separated list, where the nth
|
1568
|
+
# value is a space separated list of the source lists' nth values.
|
1563
1569
|
#
|
1564
1570
|
# The length of the resulting list is the length of the
|
1565
1571
|
# shortest list.
|
@@ -1584,8 +1590,8 @@ module Sass::Script
|
|
1584
1590
|
declare :zip, [], :var_args => true
|
1585
1591
|
|
1586
1592
|
|
1587
|
-
# Returns the position of
|
1588
|
-
#
|
1593
|
+
# Returns the position of a value within a list. If not found, returns
|
1594
|
+
# false.
|
1589
1595
|
#
|
1590
1596
|
# @example
|
1591
1597
|
# index(1px solid red, solid) => 2
|
data/lib/sass/script/null.rb
CHANGED
@@ -433,7 +433,7 @@ class Sass::Tree::Visitors::Perform < Sass::Tree::Visitors::Base
|
|
433
433
|
end
|
434
434
|
end
|
435
435
|
|
436
|
-
return
|
436
|
+
return unless mixins.include?(node.name)
|
437
437
|
raise Sass::SyntaxError.new("#{msg} #{node.name} includes itself") if mixins.size == 1
|
438
438
|
|
439
439
|
msg << "\n" << Sass::Util.enum_cons(mixins.reverse + [node.name], 2).map do |m1, m2|
|
@@ -1620,20 +1620,12 @@ SCSS
|
|
1620
1620
|
|
1621
1621
|
def test_list_in_args
|
1622
1622
|
assert_renders(<<SASS, <<SCSS)
|
1623
|
-
$foo: foo((a, b, c))
|
1624
|
-
$foo: foo($arg: (a, b, c))
|
1625
|
-
$foo: foo(a, b, (c, d, e)...)
|
1626
|
-
|
1627
1623
|
+mixin((a, b, c))
|
1628
1624
|
|
1629
1625
|
+mixin($arg: (a, b, c))
|
1630
1626
|
|
1631
1627
|
+mixin(a, b, (c, d, e)...)
|
1632
1628
|
SASS
|
1633
|
-
$foo: foo((a, b, c));
|
1634
|
-
$foo: foo($arg: (a, b, c));
|
1635
|
-
$foo: foo(a, b, (c, d, e)...);
|
1636
|
-
|
1637
1629
|
@include mixin((a, b, c));
|
1638
1630
|
|
1639
1631
|
@include mixin($arg: (a, b, c));
|
@@ -1652,14 +1644,6 @@ SASS
|
|
1652
1644
|
SCSS
|
1653
1645
|
end
|
1654
1646
|
|
1655
|
-
def test_empty_lists
|
1656
|
-
assert_renders(<<SASS, <<SCSS)
|
1657
|
-
$foo: ()
|
1658
|
-
SASS
|
1659
|
-
$foo: ();
|
1660
|
-
SCSS
|
1661
|
-
end
|
1662
|
-
|
1663
1647
|
def test_nested_if_statements
|
1664
1648
|
assert_renders(<<SASS, <<SCSS)
|
1665
1649
|
@if $foo
|
data/test/sass/engine_test.rb
CHANGED
@@ -22,6 +22,10 @@ module Sass::Script::Functions::UserFunctions
|
|
22
22
|
end
|
23
23
|
end
|
24
24
|
|
25
|
+
module Sass::Script::Functions
|
26
|
+
include Sass::Script::Functions::UserFunctions
|
27
|
+
end
|
28
|
+
|
25
29
|
class SassEngineTest < Test::Unit::TestCase
|
26
30
|
FAKE_FILE_NAME = __FILE__.gsub(/rb$/,"sass")
|
27
31
|
# A map of erroneous Sass documents to the error messages they should produce.
|
@@ -520,6 +524,21 @@ MESSAGE
|
|
520
524
|
assert_hash_has(err.sass_backtrace[2], :mixin => "foo", :line => 2)
|
521
525
|
end
|
522
526
|
|
527
|
+
def test_mixin_loop_with_content
|
528
|
+
render <<SASS
|
529
|
+
=foo
|
530
|
+
@content
|
531
|
+
=bar
|
532
|
+
+foo
|
533
|
+
+bar
|
534
|
+
+bar
|
535
|
+
SASS
|
536
|
+
assert(false, "Exception not raised")
|
537
|
+
rescue Sass::SyntaxError => err
|
538
|
+
assert_equal("An @include loop has been found: bar includes itself", err.message)
|
539
|
+
assert_hash_has(err.sass_backtrace[0], :mixin => "@content", :line => 5)
|
540
|
+
end
|
541
|
+
|
523
542
|
def test_basic_import_loop_exception
|
524
543
|
import = filename_for_test
|
525
544
|
importer = MockImporter.new
|
@@ -2416,6 +2435,24 @@ SASS
|
|
2416
2435
|
|
2417
2436
|
# Regression tests
|
2418
2437
|
|
2438
|
+
def test_parent_mixin_in_content_nested
|
2439
|
+
assert_equal(<<CSS, render(<<SASS))
|
2440
|
+
a {
|
2441
|
+
b: c; }
|
2442
|
+
CSS
|
2443
|
+
=foo
|
2444
|
+
@content
|
2445
|
+
|
2446
|
+
=bar
|
2447
|
+
+foo
|
2448
|
+
+foo
|
2449
|
+
a
|
2450
|
+
b: c
|
2451
|
+
|
2452
|
+
+bar
|
2453
|
+
SASS
|
2454
|
+
end
|
2455
|
+
|
2419
2456
|
def test_supports_bubbles
|
2420
2457
|
assert_equal <<CSS, render(<<SASS)
|
2421
2458
|
parent {
|
@@ -69,6 +69,20 @@ class SassScriptConversionTest < Test::Unit::TestCase
|
|
69
69
|
assert_renders "$flaznicate"
|
70
70
|
end
|
71
71
|
|
72
|
+
def test_null
|
73
|
+
assert_renders "null"
|
74
|
+
end
|
75
|
+
|
76
|
+
def test_empty_list
|
77
|
+
assert_renders "()"
|
78
|
+
end
|
79
|
+
|
80
|
+
def test_list_in_args
|
81
|
+
assert_renders "foo((a, b, c))"
|
82
|
+
assert_renders "foo($arg: (a, b, c))"
|
83
|
+
assert_renders "foo(a, b, (a, b, c)...)"
|
84
|
+
end
|
85
|
+
|
72
86
|
def self.test_precedence(outer, inner)
|
73
87
|
op_outer = Sass::Script::Lexer::OPERATORS_REVERSE[outer]
|
74
88
|
op_inner = Sass::Script::Lexer::OPERATORS_REVERSE[inner]
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sass
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 592302599
|
5
5
|
prerelease: 6
|
6
6
|
segments:
|
7
7
|
- 3
|
8
8
|
- 3
|
9
9
|
- 0
|
10
10
|
- alpha
|
11
|
-
-
|
12
|
-
version: 3.3.0.alpha.
|
11
|
+
- 133
|
12
|
+
version: 3.3.0.alpha.133
|
13
13
|
platform: ruby
|
14
14
|
authors:
|
15
15
|
- Nathan Weizenbaum
|
@@ -19,7 +19,7 @@ autorequire:
|
|
19
19
|
bindir: bin
|
20
20
|
cert_chain: []
|
21
21
|
|
22
|
-
date: 2013-04-
|
22
|
+
date: 2013-04-22 00:00:00 -04:00
|
23
23
|
default_executable:
|
24
24
|
dependencies:
|
25
25
|
- !ruby/object:Gem::Dependency
|