sass 3.5.5 → 3.5.6
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/exec/sass_scss.rb +1 -1
- data/lib/sass/script/functions.rb +61 -3
- data/lib/sass/script/value/helpers.rb +8 -0
- data/lib/sass/script/value/number.rb +2 -1
- data/lib/sass/scss/parser.rb +1 -1
- data/lib/sass/tree/visitors/to_css.rb +3 -2
- data/lib/sass/version.rb +0 -1
- data/test/sass/functions_test.rb +1 -1
- metadata +16 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2a0be81d849341f77d658cfb6a44988a273038b3
|
4
|
+
data.tar.gz: e2d3106b331b62359df2b422d4d7142af4cf215e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fd05bc99a4719679bcdfde4d7d2e755080ecb93ba1b48ebab9d43a0ed24a03b2ea5ca190efd3dcace28c9b0bfdf56cb469d7efddc39a8ab70f1e0996769feb65
|
7
|
+
data.tar.gz: db99debfdb3863aa2d04fa105e1be80403ba82e94f9f76f40cd26e5072b56a13215f78c6cf02bb901a96565c6224efef4acfe3903ea02ffb90301915ddf7427f
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.5.
|
1
|
+
3.5.6
|
data/VERSION_DATE
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
23 March 2018 00:44:24 UTC
|
data/lib/sass/exec/sass_scss.rb
CHANGED
@@ -653,7 +653,15 @@ module Sass::Script
|
|
653
653
|
# inclusive
|
654
654
|
# @return [Sass::Script::Value::Color]
|
655
655
|
# @raise [ArgumentError] if any parameter is the wrong type or out of bounds
|
656
|
-
def rgb(red, green, blue)
|
656
|
+
def rgb(red, green = nil, blue = nil)
|
657
|
+
if green.nil?
|
658
|
+
return unquoted_string("rgb(#{red})") if var?(red)
|
659
|
+
raise ArgumentError.new("wrong number of arguments (1 for 3)")
|
660
|
+
elsif blue.nil?
|
661
|
+
return unquoted_string("rgb(#{red}, #{green})") if var?(red) || var?(green)
|
662
|
+
raise ArgumentError.new("wrong number of arguments (2 for 3)")
|
663
|
+
end
|
664
|
+
|
657
665
|
if special_number?(red) || special_number?(green) || special_number?(blue)
|
658
666
|
return unquoted_string("rgb(#{red}, #{green}, #{blue})")
|
659
667
|
end
|
@@ -677,6 +685,8 @@ module Sass::Script
|
|
677
685
|
Sass::Script::Value::Color.new(color_attrs)
|
678
686
|
end
|
679
687
|
declare :rgb, [:red, :green, :blue]
|
688
|
+
declare :rgb, [:red, :green]
|
689
|
+
declare :rgb, [:red]
|
680
690
|
|
681
691
|
# Creates a {Sass::Script::Value::Color Color} from red, green, blue, and
|
682
692
|
# alpha values.
|
@@ -711,9 +721,22 @@ module Sass::Script
|
|
711
721
|
# is the wrong type
|
712
722
|
def rgba(*args)
|
713
723
|
case args.size
|
724
|
+
when 1
|
725
|
+
return unquoted_string("rgba(#{args.first})") if var?(args.first)
|
726
|
+
raise ArgumentError.new("wrong number of arguments (1 for 4)")
|
714
727
|
when 2
|
715
728
|
color, alpha = args
|
716
729
|
|
730
|
+
if var?(color)
|
731
|
+
return unquoted_string("rgba(#{color}, #{alpha})")
|
732
|
+
elsif var?(alpha)
|
733
|
+
if color.is_a?(Sass::Script::Value::Color)
|
734
|
+
return unquoted_string("rgba(#{color.red}, #{color.green}, #{color.blue}, #{alpha})")
|
735
|
+
else
|
736
|
+
return unquoted_string("rgba(#{color}, #{alpha})")
|
737
|
+
end
|
738
|
+
end
|
739
|
+
|
717
740
|
assert_type color, :Color, :color
|
718
741
|
if special_number?(alpha)
|
719
742
|
unquoted_string("rgba(#{color.red}, #{color.green}, #{color.blue}, #{alpha})")
|
@@ -722,6 +745,12 @@ module Sass::Script
|
|
722
745
|
check_alpha_unit alpha, 'rgba'
|
723
746
|
color.with(:alpha => alpha.value)
|
724
747
|
end
|
748
|
+
when 3
|
749
|
+
if var?(args[0]) || var?(args[1]) || var?(args[2])
|
750
|
+
unquoted_string("rgba(#{args.join(', ')})")
|
751
|
+
else
|
752
|
+
raise ArgumentError.new("wrong number of arguments (3 for 4)")
|
753
|
+
end
|
725
754
|
when 4
|
726
755
|
red, green, blue, alpha = args
|
727
756
|
if special_number?(red) || special_number?(green) ||
|
@@ -735,7 +764,9 @@ module Sass::Script
|
|
735
764
|
end
|
736
765
|
end
|
737
766
|
declare :rgba, [:red, :green, :blue, :alpha]
|
767
|
+
declare :rgba, [:red, :green, :blue]
|
738
768
|
declare :rgba, [:color, :alpha]
|
769
|
+
declare :rgba, [:red]
|
739
770
|
|
740
771
|
# Creates a {Sass::Script::Value::Color Color} from hue, saturation, and
|
741
772
|
# lightness values. Uses the algorithm from the [CSS3 spec][].
|
@@ -753,7 +784,15 @@ module Sass::Script
|
|
753
784
|
# @return [Sass::Script::Value::Color]
|
754
785
|
# @raise [ArgumentError] if `$saturation` or `$lightness` are out of bounds
|
755
786
|
# or any parameter is the wrong type
|
756
|
-
def hsl(hue, saturation, lightness)
|
787
|
+
def hsl(hue, saturation = nil, lightness = nil)
|
788
|
+
if saturation.nil?
|
789
|
+
return unquoted_string("hsl(#{hue})") if var?(hue)
|
790
|
+
raise ArgumentError.new("wrong number of arguments (1 for 3)")
|
791
|
+
elsif lightness.nil?
|
792
|
+
return unquoted_string("hsl(#{hue}, #{saturation})") if var?(hue) || var?(saturation)
|
793
|
+
raise ArgumentError.new("wrong number of arguments (2 for 3)")
|
794
|
+
end
|
795
|
+
|
757
796
|
if special_number?(hue) || special_number?(saturation) || special_number?(lightness)
|
758
797
|
unquoted_string("hsl(#{hue}, #{saturation}, #{lightness})")
|
759
798
|
else
|
@@ -761,6 +800,8 @@ module Sass::Script
|
|
761
800
|
end
|
762
801
|
end
|
763
802
|
declare :hsl, [:hue, :saturation, :lightness]
|
803
|
+
declare :hsl, [:hue, :saturation]
|
804
|
+
declare :hsl, [:hue]
|
764
805
|
|
765
806
|
# Creates a {Sass::Script::Value::Color Color} from hue,
|
766
807
|
# saturation, lightness, and alpha values. Uses the algorithm from
|
@@ -781,7 +822,21 @@ module Sass::Script
|
|
781
822
|
# @return [Sass::Script::Value::Color]
|
782
823
|
# @raise [ArgumentError] if `$saturation`, `$lightness`, or `$alpha` are out
|
783
824
|
# of bounds or any parameter is the wrong type
|
784
|
-
def hsla(hue, saturation, lightness, alpha)
|
825
|
+
def hsla(hue, saturation = nil, lightness = nil, alpha = nil)
|
826
|
+
if saturation.nil?
|
827
|
+
return unquoted_string("hsla(#{hue})") if var?(hue)
|
828
|
+
raise ArgumentError.new("wrong number of arguments (1 for 4)")
|
829
|
+
elsif lightness.nil?
|
830
|
+
return unquoted_string("hsla(#{hue}, #{saturation})") if var?(hue) || var?(saturation)
|
831
|
+
raise ArgumentError.new("wrong number of arguments (2 for 4)")
|
832
|
+
elsif alpha.nil?
|
833
|
+
if var?(hue) || var?(saturation) || var?(lightness)
|
834
|
+
return unquoted_string("hsla(#{hue}, #{saturation}, #{lightness})")
|
835
|
+
else
|
836
|
+
raise ArgumentError.new("wrong number of arguments (2 for 4)")
|
837
|
+
end
|
838
|
+
end
|
839
|
+
|
785
840
|
if special_number?(hue) || special_number?(saturation) ||
|
786
841
|
special_number?(lightness) || special_number?(alpha)
|
787
842
|
return unquoted_string("hsla(#{hue}, #{saturation}, #{lightness}, #{alpha})")
|
@@ -803,6 +858,9 @@ module Sass::Script
|
|
803
858
|
:hue => h, :saturation => s, :lightness => l, :alpha => alpha.value)
|
804
859
|
end
|
805
860
|
declare :hsla, [:hue, :saturation, :lightness, :alpha]
|
861
|
+
declare :hsla, [:hue, :saturation, :lightness]
|
862
|
+
declare :hsla, [:hue, :saturation]
|
863
|
+
declare :hsla, [:hue]
|
806
864
|
|
807
865
|
# Gets the red component of a color. Calculated from HSL where necessary via
|
808
866
|
# [this algorithm][hsl-to-rgb].
|
@@ -215,6 +215,14 @@ module Sass::Script::Value
|
|
215
215
|
literal.is_a?(Sass::Script::Value::String) && literal.value =~ /calc\(/
|
216
216
|
end
|
217
217
|
|
218
|
+
# Returns true when the literal is a string containing a var().
|
219
|
+
#
|
220
|
+
# @param literal [Sass::Script::Value::Base] The value to check
|
221
|
+
# @return Boolean
|
222
|
+
def var?(literal)
|
223
|
+
literal.is_a?(Sass::Script::Value::String) && literal.value =~ /var\(/
|
224
|
+
end
|
225
|
+
|
218
226
|
# Returns whether the literal is a special CSS value that may evaluate to a
|
219
227
|
# number, such as `calc()` or `var()`.
|
220
228
|
#
|
@@ -189,6 +189,7 @@ module Sass::Script::Value
|
|
189
189
|
# @raise [Sass::UnitConversionError] if `other` has incompatible units
|
190
190
|
def mod(other)
|
191
191
|
if other.is_a?(Number)
|
192
|
+
return Number.new(Float::NAN) if other.value == 0
|
192
193
|
operate(other, :%)
|
193
194
|
else
|
194
195
|
raise NoMethodError.new(nil, :mod)
|
@@ -472,7 +473,7 @@ module Sass::Script::Value
|
|
472
473
|
sans_common_units(@numerator_units, @denominator_units)
|
473
474
|
|
474
475
|
@denominator_units.each_with_index do |d, i|
|
475
|
-
next unless convertable?(d) && (u = @numerator_units.find
|
476
|
+
next unless convertable?(d) && (u = @numerator_units.find {|n| convertable?([n, d])})
|
476
477
|
@value /= conversion_factor(d, u)
|
477
478
|
@denominator_units.delete_at(i)
|
478
479
|
@numerator_units.delete_at(@numerator_units.index(u))
|
data/lib/sass/scss/parser.rb
CHANGED
@@ -392,7 +392,8 @@ class Sass::Tree::Visitors::ToCss < Sass::Tree::Visitors::Base
|
|
392
392
|
# @param node [Sass::Script::Tree::PropNode] A custom property node.
|
393
393
|
# @return [String]
|
394
394
|
def format_custom_property_value(node)
|
395
|
-
|
395
|
+
value = node.resolved_value.sub(/\n[ \t\r\f\n]*\Z/, ' ')
|
396
|
+
if node.style == :compact || node.style == :compressed || !value.include?("\n")
|
396
397
|
# Folding not involving newlines was done in the parser. We can safely
|
397
398
|
# fold newlines here because tokens like strings can't contain literal
|
398
399
|
# newlines, so we know any adjacent whitespace is tokenized as whitespace.
|
@@ -401,7 +402,7 @@ class Sass::Tree::Visitors::ToCss < Sass::Tree::Visitors::Base
|
|
401
402
|
|
402
403
|
# Find the smallest amount of indentation in the custom property and use
|
403
404
|
# that as the base indentation level.
|
404
|
-
lines =
|
405
|
+
lines = value.split("\n")
|
405
406
|
indented_lines = lines[1..-1]
|
406
407
|
min_indentation = indented_lines.
|
407
408
|
map {|line| line[/^[ \t]*/]}.
|
data/lib/sass/version.rb
CHANGED
data/test/sass/functions_test.rb
CHANGED
@@ -1318,7 +1318,7 @@ SCSS
|
|
1318
1318
|
evaluate("rgb($red: 255, $green: 255)")
|
1319
1319
|
flunk("Expected exception")
|
1320
1320
|
rescue Sass::SyntaxError => e
|
1321
|
-
assert_equal("
|
1321
|
+
assert_equal("wrong number of arguments (2 for 3) for `rgb'", e.message)
|
1322
1322
|
end
|
1323
1323
|
|
1324
1324
|
def test_keyword_args_with_extra_argument
|
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.5.
|
4
|
+
version: 3.5.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Natalie Weizenbaum
|
@@ -10,76 +10,76 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2018-
|
13
|
+
date: 2018-03-23 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: sass-listen
|
17
17
|
requirement: !ruby/object:Gem::Requirement
|
18
18
|
requirements:
|
19
|
-
- - ~>
|
19
|
+
- - "~>"
|
20
20
|
- !ruby/object:Gem::Version
|
21
21
|
version: 4.0.0
|
22
22
|
type: :runtime
|
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: 4.0.0
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
30
|
name: yard
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
32
32
|
requirements:
|
33
|
-
- - ~>
|
33
|
+
- - "~>"
|
34
34
|
- !ruby/object:Gem::Version
|
35
35
|
version: 0.8.7.6
|
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.8.7.6
|
43
43
|
- !ruby/object:Gem::Dependency
|
44
44
|
name: redcarpet
|
45
45
|
requirement: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
|
-
- - ~>
|
47
|
+
- - "~>"
|
48
48
|
- !ruby/object:Gem::Version
|
49
49
|
version: '3.3'
|
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: '3.3'
|
57
57
|
- !ruby/object:Gem::Dependency
|
58
58
|
name: nokogiri
|
59
59
|
requirement: !ruby/object:Gem::Requirement
|
60
60
|
requirements:
|
61
|
-
- - ~>
|
61
|
+
- - "~>"
|
62
62
|
- !ruby/object:Gem::Version
|
63
63
|
version: 1.6.0
|
64
64
|
type: :development
|
65
65
|
prerelease: false
|
66
66
|
version_requirements: !ruby/object:Gem::Requirement
|
67
67
|
requirements:
|
68
|
-
- - ~>
|
68
|
+
- - "~>"
|
69
69
|
- !ruby/object:Gem::Version
|
70
70
|
version: 1.6.0
|
71
71
|
- !ruby/object:Gem::Dependency
|
72
72
|
name: minitest
|
73
73
|
requirement: !ruby/object:Gem::Requirement
|
74
74
|
requirements:
|
75
|
-
- -
|
75
|
+
- - ">="
|
76
76
|
- !ruby/object:Gem::Version
|
77
77
|
version: '5'
|
78
78
|
type: :development
|
79
79
|
prerelease: false
|
80
80
|
version_requirements: !ruby/object:Gem::Requirement
|
81
81
|
requirements:
|
82
|
-
- -
|
82
|
+
- - ">="
|
83
83
|
- !ruby/object:Gem::Version
|
84
84
|
version: '5'
|
85
85
|
description: |2
|
@@ -95,7 +95,7 @@ executables:
|
|
95
95
|
extensions: []
|
96
96
|
extra_rdoc_files: []
|
97
97
|
files:
|
98
|
-
- .yardopts
|
98
|
+
- ".yardopts"
|
99
99
|
- CODE_OF_CONDUCT.md
|
100
100
|
- CONTRIBUTING.md
|
101
101
|
- MIT-LICENSE
|
@@ -376,17 +376,17 @@ require_paths:
|
|
376
376
|
- lib
|
377
377
|
required_ruby_version: !ruby/object:Gem::Requirement
|
378
378
|
requirements:
|
379
|
-
- -
|
379
|
+
- - ">="
|
380
380
|
- !ruby/object:Gem::Version
|
381
381
|
version: 2.0.0
|
382
382
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
383
383
|
requirements:
|
384
|
-
- -
|
384
|
+
- - ">="
|
385
385
|
- !ruby/object:Gem::Version
|
386
386
|
version: '0'
|
387
387
|
requirements: []
|
388
388
|
rubyforge_project: sass
|
389
|
-
rubygems_version: 2.
|
389
|
+
rubygems_version: 2.6.14
|
390
390
|
signing_key:
|
391
391
|
specification_version: 4
|
392
392
|
summary: A powerful but elegant CSS compiler that makes CSS fun again.
|