sass 3.2.0.alpha.259 → 3.2.0.alpha.260
Sign up to get free protection for your applications and to get access to all the features.
- data/REVISION +1 -1
- data/VERSION +1 -1
- data/lib/sass/script/functions.rb +34 -28
- data/lib/sass/scss/rx.rb +2 -0
- data/lib/sass/tree/visitors/deep_copy.rb +1 -1
- data/lib/sass/util.rb +7 -0
- data/test/sass/functions_test.rb +14 -0
- metadata +3 -3
data/REVISION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
8616d4cac0394349552d5efc9d69c072e2d0f529
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.2.0.alpha.
|
1
|
+
3.2.0.alpha.260
|
@@ -144,6 +144,9 @@ module Sass::Script
|
|
144
144
|
# \{#join join($list1, $list2, \[$separator\])}
|
145
145
|
# : Joins together two lists into one.
|
146
146
|
#
|
147
|
+
# \{#append append($list1, $val, \[$separator\])}
|
148
|
+
# : Appends a single value onto the end of a list.
|
149
|
+
#
|
147
150
|
# ## Introspection Functions
|
148
151
|
#
|
149
152
|
# \{#type_of type-of($value)}
|
@@ -582,7 +585,10 @@ module Sass::Script
|
|
582
585
|
return Sass::Script::String.new("alpha(#{args.map {|a| a.to_s}.join(", ")})")
|
583
586
|
end
|
584
587
|
|
585
|
-
|
588
|
+
raise ArgumentError.new("wrong number of arguments (#{args.size} for 1)") if args.size != 1
|
589
|
+
|
590
|
+
assert_type args.first, :Color
|
591
|
+
Sass::Script::Number.new(args.first.alpha)
|
586
592
|
end
|
587
593
|
declare :alpha, [:color]
|
588
594
|
|
@@ -595,6 +601,7 @@ module Sass::Script
|
|
595
601
|
# @see #transparentize
|
596
602
|
# @raise [ArgumentError] If `color` isn't a color
|
597
603
|
def opacity(color)
|
604
|
+
return Sass::Script::String.new("opacity(#{color})") if color.is_a?(Sass::Script::Number)
|
598
605
|
assert_type color, :Color
|
599
606
|
Sass::Script::Number.new(color.alpha)
|
600
607
|
end
|
@@ -685,16 +692,21 @@ module Sass::Script
|
|
685
692
|
# @example
|
686
693
|
# saturate(hsl(120, 30%, 90%), 20%) => hsl(120, 50%, 90%)
|
687
694
|
# saturate(#855, 20%) => #9e3f3f
|
688
|
-
# @
|
689
|
-
#
|
690
|
-
#
|
691
|
-
#
|
692
|
-
#
|
693
|
-
#
|
694
|
-
|
695
|
+
# @overload saturate(color, amount)
|
696
|
+
# @param color [Color]
|
697
|
+
# @param amount [Number]
|
698
|
+
# @return [Color]
|
699
|
+
# @see #desaturate
|
700
|
+
# @raise [ArgumentError] If `color` isn't a color,
|
701
|
+
# or `number` isn't a number between 0% and 100%
|
702
|
+
def saturate(color, amount = nil)
|
703
|
+
# Support the filter effects definition of saturate.
|
704
|
+
# https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html
|
705
|
+
return Sass::Script::String.new("saturate(#{color})") if amount.nil?
|
695
706
|
_adjust(color, amount, :saturation, 0..100, :+, "%")
|
696
707
|
end
|
697
708
|
declare :saturate, [:color, :amount]
|
709
|
+
declare :saturate, [:amount]
|
698
710
|
|
699
711
|
# Makes a color less saturated.
|
700
712
|
# Takes a color and an amount between 0% and 100%,
|
@@ -995,21 +1007,13 @@ module Sass::Script
|
|
995
1007
|
declare :mix, [:color_1, :color_2]
|
996
1008
|
declare :mix, [:color_1, :color_2, :weight]
|
997
1009
|
|
998
|
-
#
|
999
|
-
#
|
1000
|
-
# This is identical to `desaturate(color, 100%)`.
|
1001
|
-
#
|
1002
|
-
# @param color [Color]
|
1003
|
-
# @return [Color]
|
1004
|
-
# @raise [ArgumentError] if `color` isn't a color
|
1005
|
-
# @see #desaturate
|
1006
|
-
# @overload grayscale(number)
|
1007
|
-
# Returns an unquoted string `grayscale(number)`, as though the function
|
1008
|
-
# were not defined. This is for the `grayscale` function used in
|
1009
|
-
# `-webkit-filter`.
|
1010
|
+
# Converts a color to grayscale.
|
1011
|
+
# This is identical to `desaturate(color, 100%)`.
|
1010
1012
|
#
|
1011
|
-
#
|
1012
|
-
#
|
1013
|
+
# @param color [Color]
|
1014
|
+
# @return [Color]
|
1015
|
+
# @raise [ArgumentError] if `color` isn't a color
|
1016
|
+
# @see #desaturate
|
1013
1017
|
def grayscale(color)
|
1014
1018
|
return Sass::Script::String.new("grayscale(#{color})") if color.is_a?(Sass::Script::Number)
|
1015
1019
|
desaturate color, Number.new(100)
|
@@ -1035,6 +1039,8 @@ module Sass::Script
|
|
1035
1039
|
# @return [Color]
|
1036
1040
|
# @raise [ArgumentError] if `color` isn't a color
|
1037
1041
|
def invert(color)
|
1042
|
+
return Sass::Script::String.new("invert(#{color})") if color.is_a?(Sass::Script::Number)
|
1043
|
+
|
1038
1044
|
assert_type color, :Color
|
1039
1045
|
color.with(
|
1040
1046
|
:red => (255 - color.red),
|
@@ -1328,14 +1334,14 @@ module Sass::Script
|
|
1328
1334
|
# append(10px 20px, 30px) => 10px 20px 30px
|
1329
1335
|
# append((blue, red), green) => blue, red, green
|
1330
1336
|
# append(10px 20px, 30px 40px) => 10px 20px (30px 40px)
|
1331
|
-
#
|
1332
|
-
#
|
1333
|
-
# @overload
|
1334
|
-
# @param
|
1335
|
-
# @param
|
1337
|
+
# append(10px, 20px, comma) => 10px, 20px
|
1338
|
+
# append((blue, red), green, space) => blue red green
|
1339
|
+
# @overload append(list, val, separator: auto)
|
1340
|
+
# @param list [Literal] The list to add the value to
|
1341
|
+
# @param val [Literal] The value to add to the end of the list
|
1336
1342
|
# @param separator [String] How the list separator (comma or space) should be determined.
|
1337
1343
|
# If this is `comma` or `space`, that is always the separator;
|
1338
|
-
# if this is `auto` (the default), the separator is
|
1344
|
+
# if this is `auto` (the default), the separator is the same as that used by the list.
|
1339
1345
|
def append(list, val, separator = Sass::Script::String.new("auto"))
|
1340
1346
|
assert_type separator, :String
|
1341
1347
|
unless %w[auto space comma].include?(separator.value)
|
data/lib/sass/scss/rx.rb
CHANGED
data/lib/sass/util.rb
CHANGED
@@ -489,6 +489,13 @@ module Sass
|
|
489
489
|
ruby1_8? && Sass::Util::RUBY_VERSION[2] < 7
|
490
490
|
end
|
491
491
|
|
492
|
+
# Whether or not this is running under MacRuby.
|
493
|
+
#
|
494
|
+
# @return [Boolean]
|
495
|
+
def macruby?
|
496
|
+
RUBY_ENGINE == 'macruby'
|
497
|
+
end
|
498
|
+
|
492
499
|
# Checks that the encoding of a string is valid in Ruby 1.9
|
493
500
|
# and cleans up potential encoding gotchas like the UTF-8 BOM.
|
494
501
|
# If it's not, yields an error string describing the invalid character
|
data/test/sass/functions_test.rb
CHANGED
@@ -336,6 +336,18 @@ class SassFunctionTest < Test::Unit::TestCase
|
|
336
336
|
assert_error_message("12 is not a color for `alpha'", "alpha(12)")
|
337
337
|
end
|
338
338
|
|
339
|
+
def test_opacity
|
340
|
+
assert_equal("1", evaluate("opacity(#123456)"))
|
341
|
+
assert_equal("0.34", evaluate("opacity(rgba(0, 1, 2, 0.34))"))
|
342
|
+
assert_equal("0", evaluate("opacity(hsla(0, 1, 2, 0))"))
|
343
|
+
assert_equal("0", evaluate("opacity($color: hsla(0, 1, 2, 0))"))
|
344
|
+
assert_equal("opacity(20%)", evaluate("opacity(20%)"))
|
345
|
+
end
|
346
|
+
|
347
|
+
def test_opacity_exception
|
348
|
+
assert_error_message("\"foo\" is not a color for `opacity'", "opacity(foo)")
|
349
|
+
end
|
350
|
+
|
339
351
|
def test_opacify
|
340
352
|
assert_equal("rgba(0, 0, 0, 0.75)", evaluate("opacify(rgba(0, 0, 0, 0.5), 0.25)"))
|
341
353
|
assert_equal("rgba(0, 0, 0, 0.3)", evaluate("opacify(rgba(0, 0, 0, 0.2), 0.1)"))
|
@@ -435,6 +447,7 @@ class SassFunctionTest < Test::Unit::TestCase
|
|
435
447
|
assert_equal("#88aa88", evaluate("saturate(#8a8, 0%)"))
|
436
448
|
assert_equal("rgba(158, 63, 63, 0.5)", evaluate("saturate(rgba(136, 85, 85, 0.5), 20%)"))
|
437
449
|
assert_equal("rgba(158, 63, 63, 0.5)", evaluate("saturate($color: rgba(136, 85, 85, 0.5), $amount: 20%)"))
|
450
|
+
assert_equal("saturate(50%)", evaluate("saturate(50%)"))
|
438
451
|
end
|
439
452
|
|
440
453
|
def test_saturate_tests_bounds
|
@@ -828,6 +841,7 @@ class SassFunctionTest < Test::Unit::TestCase
|
|
828
841
|
def test_invert
|
829
842
|
assert_equal("#112233", evaluate("invert(#edc)"))
|
830
843
|
assert_equal("rgba(245, 235, 225, 0.5)", evaluate("invert(rgba(10, 20, 30, 0.5))"))
|
844
|
+
assert_equal("invert(20%)", evaluate("invert(20%)"))
|
831
845
|
end
|
832
846
|
|
833
847
|
def test_invert_tests_types
|
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: 592302357
|
5
5
|
prerelease: 6
|
6
6
|
segments:
|
7
7
|
- 3
|
8
8
|
- 2
|
9
9
|
- 0
|
10
10
|
- alpha
|
11
|
-
-
|
12
|
-
version: 3.2.0.alpha.
|
11
|
+
- 260
|
12
|
+
version: 3.2.0.alpha.260
|
13
13
|
platform: ruby
|
14
14
|
authors:
|
15
15
|
- Nathan Weizenbaum
|