sass 3.4.6 → 3.4.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/VERSION_DATE +1 -1
- data/lib/sass/script/functions.rb +4 -1
- data/lib/sass/script/tree/operation.rb +13 -1
- data/lib/sass/selector/sequence.rb +7 -0
- data/lib/sass/selector/simple_sequence.rb +1 -1
- data/test/sass/extend_test.rb +12 -0
- data/test/sass/script_test.rb +6 -1
- data/test/sass/superselector_test.rb +19 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6ce3a34b6410945928265cb2994c16ff2ba8fe8e
|
4
|
+
data.tar.gz: a298709397821b949d06896b2265ea6557fe402e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e4326c4cef81a6972653a0fb2371c6d0d09225b3f52fcb2aaeb3e9c897ccdde23217dc10200e34afc3343fd5629404a71669bbe7aea7662be0bb2487d5718186
|
7
|
+
data.tar.gz: 1aaa2849ef7c65e26ce841d83453b5d31a99c1f44e6f74441b663f70ca5f9194cd5150bce442e0d4656c8d83e5d4ae4d25c85a861ad9118956f82fbbaad81c04
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.4.
|
1
|
+
3.4.7
|
data/VERSION_DATE
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
31 October 2014 21:28:44 UTC
|
@@ -170,6 +170,9 @@ module Sass::Script
|
|
170
170
|
# \{#nth nth($list, $n)}
|
171
171
|
# : Returns a specific item in a list.
|
172
172
|
#
|
173
|
+
# \{#set-nth set-nth($list, $n, $value)}
|
174
|
+
# : Replaces the nth item in a list.
|
175
|
+
#
|
173
176
|
# \{#join join($list1, $list2, \[$separator\])}
|
174
177
|
# : Joins together two lists into one.
|
175
178
|
#
|
@@ -1287,7 +1290,7 @@ module Sass::Script
|
|
1287
1290
|
# @param $color1 [Sass::Script::Value::Color]
|
1288
1291
|
# @param $color2 [Sass::Script::Value::Color]
|
1289
1292
|
# @param $weight [Sass::Script::Value::Number] The relative weight of each
|
1290
|
-
# color. Closer to `0%` gives more weight to `$
|
1293
|
+
# color. Closer to `0%` gives more weight to `$color1`, closer to `100%`
|
1291
1294
|
# gives more weight to `$color2`
|
1292
1295
|
# @return [Sass::Script::Value::Color]
|
1293
1296
|
# @raise [ArgumentError] if `$weight` is out of bounds or any parameter is
|
@@ -79,11 +79,23 @@ module Sass::Script::Tree
|
|
79
79
|
end
|
80
80
|
|
81
81
|
begin
|
82
|
-
opts(value1.send(@operator, value2))
|
82
|
+
result = opts(value1.send(@operator, value2))
|
83
83
|
rescue NoMethodError => e
|
84
84
|
raise e unless e.name.to_s == @operator.to_s
|
85
85
|
raise Sass::SyntaxError.new("Undefined operation: \"#{value1} #{@operator} #{value2}\".")
|
86
86
|
end
|
87
|
+
|
88
|
+
if @operator == :eq && value1.is_a?(Sass::Script::Value::Number) &&
|
89
|
+
value2.is_a?(Sass::Script::Value::Number) && result == Sass::Script::Value::Bool::TRUE &&
|
90
|
+
value1.unitless? != value2.unitless?
|
91
|
+
Sass::Util.sass_warn <<WARNING
|
92
|
+
DEPRECATION WARNING on line #{line}#{" of #{filename}" if filename}:
|
93
|
+
The result of `#{value1} == #{value2}` will be `false` in future releases of Sass.
|
94
|
+
Unitless numbers will no longer be equal to the same numbers with units.
|
95
|
+
WARNING
|
96
|
+
end
|
97
|
+
|
98
|
+
result
|
87
99
|
end
|
88
100
|
|
89
101
|
private
|
@@ -490,8 +490,15 @@ module Sass
|
|
490
490
|
|
491
491
|
if seq1[1].is_a?(String)
|
492
492
|
return unless seq2[si + 1].is_a?(String)
|
493
|
+
|
493
494
|
# .foo ~ .bar is a superselector of .foo + .bar
|
494
495
|
return unless seq1[1] == "~" ? seq2[si + 1] != ">" : seq1[1] == seq2[si + 1]
|
496
|
+
|
497
|
+
# .foo > .baz is not a superselector of .foo > .bar > .baz or .foo >
|
498
|
+
# .bar .baz, despite the fact that .baz is a superselector of .bar >
|
499
|
+
# .baz and .bar .baz. Same goes for + and ~.
|
500
|
+
return if seq1.length == 3 && seq2.length > 3
|
501
|
+
|
495
502
|
return _superselector?(seq1[2..-1], seq2[si + 2..-1])
|
496
503
|
elsif seq2[si + 1].is_a?(String)
|
497
504
|
return unless seq2[si + 1] == ">"
|
@@ -89,7 +89,7 @@ module Sass
|
|
89
89
|
resolved_members = @members.map do |sel|
|
90
90
|
next sel unless sel.is_a?(Pseudo) && sel.selector
|
91
91
|
sel.with_selector(sel.selector.resolve_parent_refs(super_cseq, !:implicit_parent))
|
92
|
-
end
|
92
|
+
end.flatten
|
93
93
|
|
94
94
|
# Parent selector only appears as the first selector in the sequence
|
95
95
|
unless (parent = resolved_members.first).is_a?(Parent)
|
data/test/sass/extend_test.rb
CHANGED
@@ -514,6 +514,18 @@ CSS
|
|
514
514
|
SCSS
|
515
515
|
end
|
516
516
|
|
517
|
+
def test_nested_pseudo_selectors
|
518
|
+
assert_equal <<CSS, render(<<SCSS)
|
519
|
+
.foo .bar:not(.baz), .bang .bar:not(.baz) {
|
520
|
+
a: b; }
|
521
|
+
CSS
|
522
|
+
.foo {
|
523
|
+
.bar:not(.baz) {a: b}
|
524
|
+
}
|
525
|
+
.bang {@extend .foo}
|
526
|
+
SCSS
|
527
|
+
end
|
528
|
+
|
517
529
|
## Long Extendees
|
518
530
|
|
519
531
|
def test_long_extendee
|
data/test/sass/script_test.rb
CHANGED
@@ -458,8 +458,13 @@ SASS
|
|
458
458
|
assert_equal "2in", resolve("1in + 96px")
|
459
459
|
assert_equal "true", resolve("2mm < 1cm")
|
460
460
|
assert_equal "true", resolve("10mm == 1cm")
|
461
|
-
assert_equal "true", resolve("1 == 1cm")
|
462
461
|
assert_equal "true", resolve("1.1cm == 11mm")
|
462
|
+
|
463
|
+
assert_warning(<<WARNING) {assert_equal "true", resolve("1 == 1cm")}
|
464
|
+
DEPRECATION WARNING on line 1 of test_operator_unit_conversion_inline.sass:
|
465
|
+
The result of `1 == 1cm` will be `false` in future releases of Sass.
|
466
|
+
Unitless numbers will no longer be equal to the same numbers with units.
|
467
|
+
WARNING
|
463
468
|
end
|
464
469
|
|
465
470
|
def test_length_units
|
@@ -55,6 +55,25 @@ class SuperselectorTest < MiniTest::Test
|
|
55
55
|
def test_descendant_is_superselector_of_child
|
56
56
|
assert_strict_superselector '.foo .bar', '.foo > .bar.baz'
|
57
57
|
assert_strict_superselector '.foo .bar', '.foo.baz > .bar'
|
58
|
+
assert_strict_superselector '.foo .baz', '.foo > .bar > .baz'
|
59
|
+
end
|
60
|
+
|
61
|
+
def test_child_isnt_superselector_of_longer_child
|
62
|
+
refute_superselector '.foo > .baz', '.foo > .bar > .baz'
|
63
|
+
refute_superselector '.foo > .baz', '.foo > .bar .baz'
|
64
|
+
end
|
65
|
+
|
66
|
+
def test_following_sibling_isnt_superselector_of_longer_following_sibling
|
67
|
+
refute_superselector '.foo + .baz', '.foo + .bar + .baz'
|
68
|
+
refute_superselector '.foo + .baz', '.foo + .bar .baz'
|
69
|
+
end
|
70
|
+
|
71
|
+
def test_sibling_isnt_superselector_of_longer_sibling
|
72
|
+
# This actually is a superselector, but it's a very narrow edge case and
|
73
|
+
# detecting it is very difficult and may be exponential in the worst case.
|
74
|
+
refute_superselector '.foo ~ .baz', '.foo ~ .bar ~ .baz'
|
75
|
+
|
76
|
+
refute_superselector '.foo ~ .baz', '.foo ~ .bar .baz'
|
58
77
|
end
|
59
78
|
|
60
79
|
def test_matches_is_superselector_of_constituent_selectors
|
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.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Natalie Weizenbaum
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2014-10-
|
13
|
+
date: 2014-10-31 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: yard
|