sass 3.4.13 → 3.4.14
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.
- checksums.yaml +13 -5
- data/MIT-LICENSE +1 -1
- data/VERSION +1 -1
- data/VERSION_DATE +1 -1
- data/lib/sass/cache_stores/filesystem.rb +5 -5
- data/lib/sass/engine.rb +2 -2
- data/lib/sass/script/functions.rb +10 -1
- data/lib/sass/script/tree/operation.rb +11 -4
- data/lib/sass/script/value/color.rb +4 -4
- data/lib/sass/scss/parser.rb +3 -6
- data/lib/sass/supports.rb +8 -10
- data/lib/sass/tree/import_node.rb +6 -5
- data/test/sass/conversion_test.rb +2 -2
- data/test/sass/engine_test.rb +0 -2
- data/test/sass/functions_test.rb +7 -7
- data/test/sass/results/script.css +2 -2
- data/test/sass/script_test.rb +12 -1
- data/test/sass/scss/css_test.rb +29 -4
- data/test/sass/scss/scss_test.rb +2 -2
- metadata +32 -33
checksums.yaml
CHANGED
@@ -1,7 +1,15 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
NDA5ZDI0Y2RkM2M2NTNkZjI1YzFiMDhkNGM0MmRiNTA4NDE4NThiMw==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
MzMxNGY0ZTk1ZDdhYjFmNTYwOGY3MjUyN2I2NjQ5NGIwNGIxZDlhNg==
|
5
7
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
YzFkYzMyZDgzM2ZlZjUzOWE4NDZkNTI1ZjI1ZGY2OTNkNjQxMTRmZGNmMWRh
|
10
|
+
MWEwMzdmY2M1ZmZmYTg3NmY0NDZlYTEzYjgxYTlkZjA4NzkwN2RkNjAxNDFh
|
11
|
+
Yjk5MGVjMGY5MTIyYjgwYjdkMmI1YTU5MzM0Zjg2ODY5YWY0ZTc=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
Yzc0NTE0NWMwMjg4MWY5MTkwMjY4ODY0ZTBmOTIzZWJiMDJkNWM5NzJjYWEy
|
14
|
+
OTBiYzBiYTRlYTFjODdmNThmOTMxMzI0ZmM5ZjYxMDk4NWY5OThkNTJmMGZl
|
15
|
+
NTcyNjQ1NGJjZGQ4MTQ5NjhmMzc1OGQ1NTIyMTMwZTRlYmJmMmQ=
|
data/MIT-LICENSE
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
Copyright (c) 2006-
|
1
|
+
Copyright (c) 2006-2015 Hampton Catlin, Natalie Weizenbaum, and Chris Eppstein
|
2
2
|
|
3
3
|
Permission is hereby granted, free of charge, to any person obtaining
|
4
4
|
a copy of this software and associated documentation files (the
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.4.
|
1
|
+
3.4.14
|
data/VERSION_DATE
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
23 May 2015 02:17:06 UTC
|
@@ -17,12 +17,12 @@ module Sass
|
|
17
17
|
# @see Base#\_retrieve
|
18
18
|
def _retrieve(key, version, sha)
|
19
19
|
return unless File.readable?(path_to(key))
|
20
|
-
File.open(path_to(key), "rb") do |f|
|
21
|
-
if f.readline("\n").strip == version && f.readline("\n").strip == sha
|
22
|
-
return f.read
|
23
|
-
end
|
24
|
-
end
|
25
20
|
begin
|
21
|
+
File.open(path_to(key), "rb") do |f|
|
22
|
+
if f.readline("\n").strip == version && f.readline("\n").strip == sha
|
23
|
+
return f.read
|
24
|
+
end
|
25
|
+
end
|
26
26
|
File.unlink path_to(key)
|
27
27
|
rescue Errno::ENOENT
|
28
28
|
# Already deleted. Race condition?
|
data/lib/sass/engine.rb
CHANGED
@@ -84,7 +84,7 @@ module Sass
|
|
84
84
|
# This class handles the parsing and compilation of the Sass template.
|
85
85
|
# Example usage:
|
86
86
|
#
|
87
|
-
# template = File.
|
87
|
+
# template = File.read('stylesheets/sassy.sass')
|
88
88
|
# sass_engine = Sass::Engine.new(template)
|
89
89
|
# output = sass_engine.render
|
90
90
|
# puts output
|
@@ -157,7 +157,7 @@ module Sass
|
|
157
157
|
# @api public
|
158
158
|
DEFAULT_OPTIONS = {
|
159
159
|
:style => :nested,
|
160
|
-
:load_paths => [
|
160
|
+
:load_paths => [],
|
161
161
|
:cache => true,
|
162
162
|
:cache_location => './.sass-cache',
|
163
163
|
:syntax => :sass,
|
@@ -217,7 +217,7 @@ module Sass::Script
|
|
217
217
|
# for selector arguments. They can take a plain string, a list of
|
218
218
|
# lists as returned by `&` or anything in between:
|
219
219
|
#
|
220
|
-
# * A plain
|
220
|
+
# * A plain string, such as `".foo .bar, .baz .bang"`.
|
221
221
|
# * A space-separated list of strings such as `(".foo" ".bar")`.
|
222
222
|
# * A comma-separated list of strings such as `(".foo .bar", ".baz .bang")`.
|
223
223
|
# * A comma-separated list of space-separated lists of strings such
|
@@ -1398,6 +1398,15 @@ module Sass::Script
|
|
1398
1398
|
# @raise [ArgumentError] if `$string` isn't a string
|
1399
1399
|
def unquote(string)
|
1400
1400
|
unless string.is_a?(Sass::Script::Value::String)
|
1401
|
+
# Don't warn multiple times for the same source line.
|
1402
|
+
# rubocop:disable GlobalVars
|
1403
|
+
$_sass_warned_for_unquote ||= Set.new
|
1404
|
+
frame = environment.stack.frames.last
|
1405
|
+
key = [frame.filename, frame.line] if frame
|
1406
|
+
return string if frame && $_sass_warned_for_unquote.include?(key)
|
1407
|
+
$_sass_warned_for_unquote << key if frame
|
1408
|
+
# rubocop:enable GlobalVars
|
1409
|
+
|
1401
1410
|
Sass::Util.sass_warn(<<MESSAGE.strip)
|
1402
1411
|
DEPRECATION WARNING: Passing #{string.to_sass}, a non-string value, to unquote()
|
1403
1412
|
will be an error in future versions of Sass.
|
@@ -85,12 +85,19 @@ module Sass::Script::Tree
|
|
85
85
|
raise Sass::SyntaxError.new("Undefined operation: \"#{value1} #{@operator} #{value2}\".")
|
86
86
|
end
|
87
87
|
|
88
|
-
if @operator == :eq && value1.is_a?(Sass::Script::Value::Number) &&
|
89
|
-
|
90
|
-
|
88
|
+
if (@operator == :eq || @operator == :neq) && value1.is_a?(Sass::Script::Value::Number) &&
|
89
|
+
value2.is_a?(Sass::Script::Value::Number) && value1.unitless? != value2.unitless? &&
|
90
|
+
result == (if @operator == :eq
|
91
|
+
Sass::Script::Value::Bool::TRUE
|
92
|
+
else
|
93
|
+
Sass::Script::Value::Bool::FALSE
|
94
|
+
end)
|
95
|
+
|
96
|
+
operation = "#{value1} #{@operator == :eq ? '==' : '!='} #{value2}"
|
97
|
+
future_value = @operator == :neq
|
91
98
|
Sass::Util.sass_warn <<WARNING
|
92
99
|
DEPRECATION WARNING on line #{line}#{" of #{filename}" if filename}:
|
93
|
-
The result of `#{
|
100
|
+
The result of `#{operation}` will be `#{future_value}` in future releases of Sass.
|
94
101
|
Unitless numbers will no longer be equal to the same numbers with units.
|
95
102
|
WARNING
|
96
103
|
end
|
@@ -232,7 +232,7 @@ module Sass::Script::Value
|
|
232
232
|
raise ArgumentError.new("Color.new(array) expects a three- or four-element array")
|
233
233
|
end
|
234
234
|
|
235
|
-
red, green, blue = attrs[0...3].map {|c| c.
|
235
|
+
red, green, blue = attrs[0...3].map {|c| c.round}
|
236
236
|
@attrs = {:red => red, :green => green, :blue => blue}
|
237
237
|
@attrs[:alpha] = attrs[3] ? attrs[3].to_f : 1
|
238
238
|
@representation = representation
|
@@ -258,7 +258,7 @@ module Sass::Script::Value
|
|
258
258
|
|
259
259
|
[:red, :green, :blue].each do |k|
|
260
260
|
next if @attrs[k].nil?
|
261
|
-
@attrs[k] = Sass::Util.restrict(@attrs[k].
|
261
|
+
@attrs[k] = Sass::Util.restrict(@attrs[k].round, 0..255)
|
262
262
|
end
|
263
263
|
|
264
264
|
[:saturation, :lightness].each do |k|
|
@@ -283,7 +283,7 @@ module Sass::Script::Value
|
|
283
283
|
green = $2.ljust(2, $2).to_i(16)
|
284
284
|
blue = $3.ljust(2, $3).to_i(16)
|
285
285
|
|
286
|
-
hex_string =
|
286
|
+
hex_string = "##{hex_string}" unless hex_string[0] == ?#
|
287
287
|
attrs = {:red => red, :green => green, :blue => blue, :representation => hex_string}
|
288
288
|
attrs[:alpha] = alpha if alpha
|
289
289
|
new(attrs)
|
@@ -382,7 +382,7 @@ module Sass::Script::Value
|
|
382
382
|
# @return [Array<Fixnum>] A frozen four-element array of the hue,
|
383
383
|
# saturation, lightness, and alpha values (respectively) of the color
|
384
384
|
def hsla
|
385
|
-
[hue, saturation, lightness].freeze
|
385
|
+
[hue, saturation, lightness, alpha].freeze
|
386
386
|
end
|
387
387
|
|
388
388
|
# The SassScript `==` operation.
|
data/lib/sass/scss/parser.rb
CHANGED
@@ -562,7 +562,9 @@ module Sass
|
|
562
562
|
def supports_operator
|
563
563
|
cond = supports_condition_in_parens
|
564
564
|
return unless cond
|
565
|
-
|
565
|
+
re = /and|or/i
|
566
|
+
while (op = tok(re))
|
567
|
+
re = /#{op}/i
|
566
568
|
ss
|
567
569
|
cond = Sass::Supports::Operator.new(
|
568
570
|
cond, expr!(:supports_condition_in_parens), op)
|
@@ -586,11 +588,6 @@ module Sass
|
|
586
588
|
end
|
587
589
|
end
|
588
590
|
|
589
|
-
def supports_declaration_condition
|
590
|
-
return unless tok(/\(/); ss
|
591
|
-
supports_declaration_body
|
592
|
-
end
|
593
|
-
|
594
591
|
def supports_interpolation
|
595
592
|
interp = interpolation
|
596
593
|
return unless interp
|
data/lib/sass/supports.rb
CHANGED
@@ -58,11 +58,11 @@ module Sass::Supports
|
|
58
58
|
end
|
59
59
|
|
60
60
|
def to_css
|
61
|
-
"#{
|
61
|
+
"#{parens @left, @left.to_css} #{op} #{parens @right, @right.to_css}"
|
62
62
|
end
|
63
63
|
|
64
64
|
def to_src(options)
|
65
|
-
"#{
|
65
|
+
"#{parens @left, @left.to_src(options)} #{op} #{parens @right, @right.to_src(options)}"
|
66
66
|
end
|
67
67
|
|
68
68
|
def deep_copy
|
@@ -79,14 +79,12 @@ module Sass::Supports
|
|
79
79
|
|
80
80
|
private
|
81
81
|
|
82
|
-
def
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
return "(#{str})" if @right.is_a?(Negation) || @right.is_a?(Operator)
|
89
|
-
str
|
82
|
+
def parens(condition, str)
|
83
|
+
if condition.is_a?(Negation) || (condition.is_a?(Operator) && condition.op != op)
|
84
|
+
return "(#{str})"
|
85
|
+
else
|
86
|
+
return str
|
87
|
+
end
|
90
88
|
end
|
91
89
|
end
|
92
90
|
|
@@ -55,13 +55,14 @@ module Sass
|
|
55
55
|
return f if f
|
56
56
|
end
|
57
57
|
|
58
|
-
|
58
|
+
lines = ["File to import not found or unreadable: #{@imported_filename}."]
|
59
|
+
|
59
60
|
if paths.size == 1
|
60
|
-
|
61
|
-
|
62
|
-
|
61
|
+
lines << "Load path: #{paths.first}"
|
62
|
+
elsif !paths.empty?
|
63
|
+
lines << "Load paths:\n #{paths.join("\n ")}"
|
63
64
|
end
|
64
|
-
raise SyntaxError.new(
|
65
|
+
raise SyntaxError.new(lines.join("\n"))
|
65
66
|
rescue SyntaxError => e
|
66
67
|
raise SyntaxError.new(e.message, :line => line, :filename => @filename)
|
67
68
|
end
|
@@ -1311,7 +1311,7 @@ $query: "(feature1: val)"
|
|
1311
1311
|
$feature: feature2
|
1312
1312
|
$val: val
|
1313
1313
|
|
1314
|
-
@supports \#{$query} and ($feature: $val) or (not ($feature + 3: $val + 4))
|
1314
|
+
@supports (\#{$query} and ($feature: $val)) or (not ($feature + 3: $val + 4))
|
1315
1315
|
foo
|
1316
1316
|
a: b
|
1317
1317
|
SASS
|
@@ -1319,7 +1319,7 @@ $query: "(feature1: val)";
|
|
1319
1319
|
$feature: feature2;
|
1320
1320
|
$val: val;
|
1321
1321
|
|
1322
|
-
@supports \#{$query} and ($feature: $val) or (not ($feature + 3: $val + 4)) {
|
1322
|
+
@supports (\#{$query} and ($feature: $val)) or (not ($feature + 3: $val + 4)) {
|
1323
1323
|
foo {
|
1324
1324
|
a: b;
|
1325
1325
|
}
|
data/test/sass/engine_test.rb
CHANGED
@@ -680,7 +680,6 @@ SASS
|
|
680
680
|
def test_nonexistent_import
|
681
681
|
assert_raise_message(Sass::SyntaxError, <<ERR.rstrip) do
|
682
682
|
File to import not found or unreadable: nonexistent.sass.
|
683
|
-
Load path: #{Dir.pwd}
|
684
683
|
ERR
|
685
684
|
render("@import nonexistent.sass")
|
686
685
|
end
|
@@ -689,7 +688,6 @@ ERR
|
|
689
688
|
def test_nonexistent_extensionless_import
|
690
689
|
assert_raise_message(Sass::SyntaxError, <<ERR.rstrip) do
|
691
690
|
File to import not found or unreadable: nonexistent.
|
692
|
-
Load path: #{Dir.pwd}
|
693
691
|
ERR
|
694
692
|
render("@import nonexistent")
|
695
693
|
end
|
data/test/sass/functions_test.rb
CHANGED
@@ -220,10 +220,10 @@ WARNING
|
|
220
220
|
end
|
221
221
|
|
222
222
|
def test_rgb_percent
|
223
|
-
assert_equal("#
|
223
|
+
assert_equal("#123457", evaluate("rgb(7.1%, 20.4%, 34%)"))
|
224
224
|
assert_equal("#beaded", evaluate("rgb(74.7%, 173, 93%)"))
|
225
225
|
assert_equal("#beaded", evaluate("rgb(190, 68%, 237)"))
|
226
|
-
assert_equal("
|
226
|
+
assert_equal("#00ff80", evaluate("rgb(0%, 100%, 50%)"))
|
227
227
|
end
|
228
228
|
|
229
229
|
def test_rgb_clamps_bounds
|
@@ -813,11 +813,11 @@ WARNING
|
|
813
813
|
end
|
814
814
|
|
815
815
|
def test_mix
|
816
|
-
assert_equal("
|
817
|
-
assert_equal("
|
818
|
-
assert_equal("#
|
819
|
-
assert_equal("#
|
820
|
-
assert_equal("rgba(
|
816
|
+
assert_equal("purple", evaluate("mix(#f00, #00f)"))
|
817
|
+
assert_equal("gray", evaluate("mix(#f00, #0ff)"))
|
818
|
+
assert_equal("#809155", evaluate("mix(#f70, #0aa)"))
|
819
|
+
assert_equal("#4000bf", evaluate("mix(#f00, #00f, 25%)"))
|
820
|
+
assert_equal("rgba(64, 0, 191, 0.75)", evaluate("mix(rgba(255, 0, 0, 0.5), #00f)"))
|
821
821
|
assert_equal("red", evaluate("mix(#f00, #00f, 100%)"))
|
822
822
|
assert_equal("blue", evaluate("mix(#f00, #00f, 0%)"))
|
823
823
|
assert_equal("rgba(255, 0, 0, 0.5)", evaluate("mix(#f00, transparentize(#00f, 1))"))
|
@@ -1,9 +1,9 @@
|
|
1
1
|
#main { content: Hello\!; qstr: 'Quo"ted"!'; hstr: Hyph-en\!; width: 30em; background-color: #000; color: #ffa; short-color: #123; named-color: olive; con: "foo" bar 9 hi there "boom"; con2: "noquo" quo; }
|
2
2
|
#main #sidebar { background-color: #00ff98; num-normal: 10; num-dec: 10.2; num-dec0: 99; num-neg: -10; esc: 10\+12; many: 6; order: 7; complex: #4c9db1hi16; }
|
3
3
|
|
4
|
-
#plus { num-num: 7; num-num-un: 25em; num-num-un2: 23em; num-num-neg: 9.87; num-str: 100px; num-col: #b7b7b7; num-perc: 31%; str-str: "hi there"; str-str2: "hi there"; str-col: "14em solid #123"; str-num: "times: 13"; col-num: #
|
4
|
+
#plus { num-num: 7; num-num-un: 25em; num-num-un2: 23em; num-num-neg: 9.87; num-str: 100px; num-col: #b7b7b7; num-perc: 31%; str-str: "hi there"; str-str2: "hi there"; str-col: "14em solid #123"; str-num: "times: 13"; col-num: #ff7c9e; col-col: #5173ff; }
|
5
5
|
|
6
|
-
#minus { num-num: 900; col-num: #
|
6
|
+
#minus { num-num: 900; col-num: #fafaf5; col-col: #000035; unary-num: -1; unary-const: 10; unary-paren: -11; unary-two: 12; unary-many: 12; unary-crazy: -15; }
|
7
7
|
|
8
8
|
#times { num-num: 7; num-col: #7496b8; col-num: #092345; col-col: #243648; }
|
9
9
|
|
data/test/sass/script_test.rb
CHANGED
@@ -31,6 +31,11 @@ class SassScriptTest < MiniTest::Test
|
|
31
31
|
assert_equal 0, Sass::Script::Value::Color.new([1, 2, 3, -0.1]).alpha
|
32
32
|
end
|
33
33
|
|
34
|
+
def test_color_from_hex
|
35
|
+
assert_equal Sass::Script::Value::Color.new([0,0,0]), Sass::Script::Value::Color.from_hex('000000')
|
36
|
+
assert_equal Sass::Script::Value::Color.new([0,0,0]), Sass::Script::Value::Color.from_hex('#000000')
|
37
|
+
end
|
38
|
+
|
34
39
|
def test_string_escapes
|
35
40
|
assert_equal "'", resolve("\"'\"")
|
36
41
|
assert_equal '"', resolve("\"\\\"\"")
|
@@ -471,6 +476,12 @@ SASS
|
|
471
476
|
DEPRECATION WARNING on line 1 of test_operator_unit_conversion_inline.sass:
|
472
477
|
The result of `1 == 1cm` will be `false` in future releases of Sass.
|
473
478
|
Unitless numbers will no longer be equal to the same numbers with units.
|
479
|
+
WARNING
|
480
|
+
|
481
|
+
assert_warning(<<WARNING) {assert_equal "false", resolve("1 != 1cm")}
|
482
|
+
DEPRECATION WARNING on line 1 of test_operator_unit_conversion_inline.sass:
|
483
|
+
The result of `1 != 1cm` will be `true` in future releases of Sass.
|
484
|
+
Unitless numbers will no longer be equal to the same numbers with units.
|
474
485
|
WARNING
|
475
486
|
end
|
476
487
|
|
@@ -552,7 +563,7 @@ WARNING
|
|
552
563
|
def test_case_insensitive_color_names
|
553
564
|
assert_equal "BLUE", resolve("BLUE")
|
554
565
|
assert_equal "rEd", resolve("rEd")
|
555
|
-
assert_equal "#
|
566
|
+
assert_equal "#804000", resolve("mix(GrEeN, ReD)")
|
556
567
|
end
|
557
568
|
|
558
569
|
def test_empty_list
|
data/test/sass/scss/css_test.rb
CHANGED
@@ -634,14 +634,14 @@ SCSS
|
|
634
634
|
|
635
635
|
def test_supports
|
636
636
|
assert_equal <<CSS, render(<<SCSS)
|
637
|
-
@supports (a: b) and (c: d) or (not (d: e)) and ((not (f: g)) or (not ((h: i) and (j: k)))) {
|
637
|
+
@supports (((a: b) and (c: d)) or (not (d: e))) and ((not (f: g)) or (not ((h: i) and (j: k)))) {
|
638
638
|
.foo {
|
639
639
|
a: b; } }
|
640
640
|
@supports (a: b) {
|
641
641
|
.foo {
|
642
642
|
a: b; } }
|
643
643
|
CSS
|
644
|
-
@supports (a: b) and (c: d) or (not (d: e)) and ((not (f: g)) or (not ((h: i) and (j: k)))) {
|
644
|
+
@supports (((a: b) and (c: d)) or (not (d: e))) and ((not (f: g)) or (not ((h: i) and (j: k)))) {
|
645
645
|
.foo {
|
646
646
|
a: b;
|
647
647
|
}
|
@@ -653,13 +653,38 @@ CSS
|
|
653
653
|
}
|
654
654
|
}
|
655
655
|
SCSS
|
656
|
+
end
|
656
657
|
|
658
|
+
def test_supports_with_prefix
|
657
659
|
assert_equal <<CSS, render(<<SCSS)
|
658
|
-
@-prefix-supports (a: b) and (c: d) or (not (d: e)) and ((not (f: g)) or (not ((h: i) and (j: k)))) {
|
660
|
+
@-prefix-supports (((a: b) and (c: d)) or (not (d: e))) and ((not (f: g)) or (not ((h: i) and (j: k)))) {
|
659
661
|
.foo {
|
660
662
|
a: b; } }
|
661
663
|
CSS
|
662
|
-
@-prefix-supports (a: b) and (c: d) or (not (d: e)) and ((not (f: g)) or (not ((h: i) and (j: k)))) {
|
664
|
+
@-prefix-supports (((a: b) and (c: d)) or (not (d: e))) and ((not (f: g)) or (not ((h: i) and (j: k)))) {
|
665
|
+
.foo {
|
666
|
+
a: b;
|
667
|
+
}
|
668
|
+
}
|
669
|
+
SCSS
|
670
|
+
end
|
671
|
+
|
672
|
+
def test_supports_allows_similar_operators_without_parens
|
673
|
+
assert_equal <<CSS, render(<<SCSS)
|
674
|
+
@supports (a: b) and (c: d) and (e: f) {
|
675
|
+
.foo {
|
676
|
+
a: b; } }
|
677
|
+
@supports (a: b) or (c: d) or (e: f) {
|
678
|
+
.foo {
|
679
|
+
a: b; } }
|
680
|
+
CSS
|
681
|
+
@supports (a: b) and (c: d) and (e: f) {
|
682
|
+
.foo {
|
683
|
+
a: b;
|
684
|
+
}
|
685
|
+
}
|
686
|
+
|
687
|
+
@supports (a: b) or (c: d) or (e: f) {
|
663
688
|
.foo {
|
664
689
|
a: b;
|
665
690
|
}
|
data/test/sass/scss/scss_test.rb
CHANGED
@@ -2296,14 +2296,14 @@ SCSS
|
|
2296
2296
|
|
2297
2297
|
def test_supports_with_expressions
|
2298
2298
|
assert_equal <<CSS, render(<<SCSS)
|
2299
|
-
@supports (feature1: val) and (feature2: val) or (not (feature23: val4)) {
|
2299
|
+
@supports ((feature1: val) and (feature2: val)) or (not (feature23: val4)) {
|
2300
2300
|
foo {
|
2301
2301
|
a: b; } }
|
2302
2302
|
CSS
|
2303
2303
|
$query: "(feature1: val)";
|
2304
2304
|
$feature: feature2;
|
2305
2305
|
$val: val;
|
2306
|
-
@supports \#{$query} and ($feature: $val) or (not ($feature + 3: $val + 4)) {
|
2306
|
+
@supports (\#{$query} and ($feature: $val)) or (not ($feature + 3: $val + 4)) {
|
2307
2307
|
foo {a: b}
|
2308
2308
|
}
|
2309
2309
|
SCSS
|
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.14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Natalie Weizenbaum
|
@@ -10,55 +10,54 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2015-
|
13
|
+
date: 2015-05-23 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
|
-
description:
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
command line tool or a web-framework plugin.
|
57
|
+
description: ! " Sass makes CSS fun again. Sass is an extension of CSS3, adding\n
|
58
|
+
\ nested rules, variables, mixins, selector inheritance, and more.\n It's
|
59
|
+
translated to well-formatted, standard CSS using the\n command line tool or
|
60
|
+
a web-framework plugin.\n"
|
62
61
|
email: sass-lang@googlegroups.com
|
63
62
|
executables:
|
64
63
|
- sass
|
@@ -381,43 +380,43 @@ require_paths:
|
|
381
380
|
- lib
|
382
381
|
required_ruby_version: !ruby/object:Gem::Requirement
|
383
382
|
requirements:
|
384
|
-
- - '>='
|
383
|
+
- - ! '>='
|
385
384
|
- !ruby/object:Gem::Version
|
386
385
|
version: 1.8.7
|
387
386
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
388
387
|
requirements:
|
389
|
-
- - '>='
|
388
|
+
- - ! '>='
|
390
389
|
- !ruby/object:Gem::Version
|
391
390
|
version: '0'
|
392
391
|
requirements: []
|
393
392
|
rubyforge_project: sass
|
394
|
-
rubygems_version: 2.
|
393
|
+
rubygems_version: 2.4.3
|
395
394
|
signing_key:
|
396
395
|
specification_version: 4
|
397
396
|
summary: A powerful but elegant CSS compiler that makes CSS fun again.
|
398
397
|
test_files:
|
398
|
+
- test/sass/importer_test.rb
|
399
|
+
- test/sass/engine_test.rb
|
399
400
|
- test/sass/value_helpers_test.rb
|
400
|
-
- test/sass/conversion_test.rb
|
401
|
-
- test/sass/cache_test.rb
|
402
|
-
- test/sass/script_test.rb
|
403
401
|
- test/sass/superselector_test.rb
|
404
|
-
- test/sass/callbacks_test.rb
|
405
|
-
- test/sass/source_map_test.rb
|
406
|
-
- test/sass/script_conversion_test.rb
|
407
|
-
- test/sass/util_test.rb
|
408
|
-
- test/sass/plugin_test.rb
|
409
|
-
- test/sass/extend_test.rb
|
410
|
-
- test/sass/scss/rx_test.rb
|
411
|
-
- test/sass/scss/css_test.rb
|
412
|
-
- test/sass/scss/scss_test.rb
|
413
402
|
- test/sass/logger_test.rb
|
414
|
-
- test/sass/
|
403
|
+
- test/sass/util_test.rb
|
404
|
+
- test/sass/cache_test.rb
|
415
405
|
- test/sass/encoding_test.rb
|
416
|
-
- test/sass/
|
417
|
-
- test/sass/
|
418
|
-
- test/sass/
|
406
|
+
- test/sass/source_map_test.rb
|
407
|
+
- test/sass/css2sass_test.rb
|
408
|
+
- test/sass/plugin_test.rb
|
409
|
+
- test/sass/conversion_test.rb
|
419
410
|
- test/sass/util/subset_map_test.rb
|
420
411
|
- test/sass/util/multibyte_string_scanner_test.rb
|
412
|
+
- test/sass/util/normalized_map_test.rb
|
413
|
+
- test/sass/exec_test.rb
|
414
|
+
- test/sass/scss/rx_test.rb
|
415
|
+
- test/sass/scss/scss_test.rb
|
416
|
+
- test/sass/scss/css_test.rb
|
417
|
+
- test/sass/callbacks_test.rb
|
421
418
|
- test/sass/functions_test.rb
|
419
|
+
- test/sass/extend_test.rb
|
420
|
+
- test/sass/script_conversion_test.rb
|
421
|
+
- test/sass/script_test.rb
|
422
422
|
- test/sass/compiler_test.rb
|
423
|
-
- test/sass/css2sass_test.rb
|