sass 3.3.2 → 3.3.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0fe659bdbeee8744bbec5d6cffcd6ef954c4b167
4
- data.tar.gz: 7e56e19609238fae7a593ee4d94fdb4e6355d673
3
+ metadata.gz: 3b1f65147a1c8475b358cc3769c042b4e61b3973
4
+ data.tar.gz: 8bef79f9df38193e0891505f82f1d523d6229383
5
5
  SHA512:
6
- metadata.gz: 3a70b294c6b3a677269d507d136c8bc0ba84a474f33ad4a7df9f2a997b575d7a19a63786201182f18d8336e1a654ef09ea3201e17c96f7cccd1e9c57b0a29ab3
7
- data.tar.gz: e04c745d1700a87f822300cddbe4f958ce9b39c93d64795cab50b603f93f6d5c78728caf603f12a72e73fe30f0c76316fc63ce992e50700c5e6a8f2561fe341f
6
+ metadata.gz: fbb1fa87bbd19535fcf56757318b75946833c85b1bf17caced90dddbad38ae0e6738c0e9b8d5480942f8a0e8a8014f9f40b4814a47fac6312ddc8b361da4b3db
7
+ data.tar.gz: 21b79150a581f91e5d92161cb41a85b85ae35ee45e3750034c23a85ae046f6c50d5d8b084eafa68d328588ebcdb2e1253878bbfcb7fa74f9367e5bbc6c190b5a
data/VERSION CHANGED
@@ -1 +1 @@
1
- 3.3.2
1
+ 3.3.3
@@ -1 +1 @@
1
- 11 March 2014 21:43:52 UTC
1
+ 14 March 2014 23:31:57 UTC
@@ -1,6 +1,9 @@
1
1
  require 'sass/script/value/helpers'
2
2
 
3
3
  module Sass::Script
4
+ # @comment
5
+ # YARD can't handle some multiline tags, and we need really long tags for function declarations.
6
+ # rubocop:disable LineLength
4
7
  # Methods in this module are accessible from the SassScript context.
5
8
  # For example, you can write
6
9
  #
@@ -93,16 +96,13 @@ module Sass::Script
93
96
  #
94
97
  # ## Other Color Functions
95
98
  #
96
- # \{#adjust_color adjust-color($color, \[$red\], \[$green\], \[$blue\],
97
- # \[$hue\], \[$saturation\], \[$lightness\], \[$alpha\])}
99
+ # \{#adjust_color adjust-color($color, \[$red\], \[$green\], \[$blue\], \[$hue\], \[$saturation\], \[$lightness\], \[$alpha\])}
98
100
  # : Increases or decreases one or more components of a color.
99
101
  #
100
- # \{#scale_color scale-color($color, \[$red\], \[$green\], \[$blue\],
101
- # \[$saturation\], \[$lightness\], \[$alpha\])}
102
+ # \{#scale_color scale-color($color, \[$red\], \[$green\], \[$blue\], \[$saturation\], \[$lightness\], \[$alpha\])}
102
103
  # : Fluidly scales one or more properties of a color.
103
104
  #
104
- # \{#change_color change-color($color, \[$red\], \[$green\], \[$blue\],
105
- # \[$hue\], \[$saturation\], \[$lightness\], \[$alpha\])}
105
+ # \{#change_color change-color($color, \[$red\], \[$green\], \[$blue\], \[$hue\], \[$saturation\], \[$lightness\], \[$alpha\])}
106
106
  # : Changes one or more properties of a color.
107
107
  #
108
108
  # \{#ie_hex_str ie-hex-str($color)}
@@ -302,6 +302,9 @@ module Sass::Script
302
302
  # safe to call {Value::Base#to_s #to_s} (or other methods that use the string
303
303
  # representation) on those objects without first setting {Tree::Node#options=
304
304
  # the #options attribute}.
305
+ #
306
+ # @comment
307
+ # rubocop:enable LineLength
305
308
  module Functions
306
309
  @signatures = {}
307
310
 
@@ -565,15 +568,15 @@ module Sass::Script
565
568
  #
566
569
  # @see #rgba
567
570
  # @overload rgb($red, $green, $blue)
568
- # @param $red [Sass::Script::Value::Number] The amount of red in the color.
569
- # Must be between 0 and 255 inclusive, or between `0%` and `100%`
570
- # inclusive
571
- # @param $green [Sass::Script::Value::Number] The amount of green in the
572
- # color. Must be between 0 and 255 inclusive, or between `0%` and `100%`
573
- # inclusive
574
- # @param $blue [Sass::Script::Value::Number] The amount of blue in the
575
- # color. Must be between 0 and 255 inclusive, or between `0%` and `100%`
576
- # inclusive
571
+ # @param $red [Sass::Script::Value::Number] The amount of red in the color.
572
+ # Must be between 0 and 255 inclusive, or between `0%` and `100%`
573
+ # inclusive
574
+ # @param $green [Sass::Script::Value::Number] The amount of green in the
575
+ # color. Must be between 0 and 255 inclusive, or between `0%` and `100%`
576
+ # inclusive
577
+ # @param $blue [Sass::Script::Value::Number] The amount of blue in the
578
+ # color. Must be between 0 and 255 inclusive, or between `0%` and `100%`
579
+ # inclusive
577
580
  # @return [Sass::Script::Value::Color]
578
581
  # @raise [ArgumentError] if any parameter is the wrong type or out of bounds
579
582
  def rgb(red, green, blue)
@@ -653,12 +656,12 @@ module Sass::Script
653
656
  #
654
657
  # @see #hsla
655
658
  # @overload hsl($hue, $saturation, $lightness)
656
- # @param $hue [Sass::Script::Value::Number] The hue of the color. Should be
657
- # between 0 and 360 degrees, inclusive
658
- # @param $saturation [Sass::Script::Value::Number] The saturation of the
659
- # color. Must be between `0%` and `100%`, inclusive
660
- # @param $lightness [Sass::Script::Value::Number] The lightness of the
661
- # color. Must be between `0%` and `100%`, inclusive
659
+ # @param $hue [Sass::Script::Value::Number] The hue of the color. Should be
660
+ # between 0 and 360 degrees, inclusive
661
+ # @param $saturation [Sass::Script::Value::Number] The saturation of the
662
+ # color. Must be between `0%` and `100%`, inclusive
663
+ # @param $lightness [Sass::Script::Value::Number] The lightness of the
664
+ # color. Must be between `0%` and `100%`, inclusive
662
665
  # @return [Sass::Script::Value::Color]
663
666
  # @raise [ArgumentError] if `$saturation` or `$lightness` are out of bounds
664
667
  # or any parameter is the wrong type
@@ -675,14 +678,14 @@ module Sass::Script
675
678
  #
676
679
  # @see #hsl
677
680
  # @overload hsla($hue, $saturation, $lightness, $alpha)
678
- # @param $hue [Sass::Script::Value::Number] The hue of the color. Should be
679
- # between 0 and 360 degrees, inclusive
680
- # @param $saturation [Sass::Script::Value::Number] The saturation of the
681
- # color. Must be between `0%` and `100%`, inclusive
682
- # @param $lightness [Sass::Script::Value::Number] The lightness of the
683
- # color. Must be between `0%` and `100%`, inclusive
684
- # @param $alpha [Sass::Script::Value::Number] The opacity of the color. Must
685
- # be between 0 and 1, inclusive
681
+ # @param $hue [Sass::Script::Value::Number] The hue of the color. Should be
682
+ # between 0 and 360 degrees, inclusive
683
+ # @param $saturation [Sass::Script::Value::Number] The saturation of the
684
+ # color. Must be between `0%` and `100%`, inclusive
685
+ # @param $lightness [Sass::Script::Value::Number] The lightness of the
686
+ # color. Must be between `0%` and `100%`, inclusive
687
+ # @param $alpha [Sass::Script::Value::Number] The opacity of the color. Must
688
+ # be between 0 and 1, inclusive
686
689
  # @return [Sass::Script::Value::Color]
687
690
  # @raise [ArgumentError] if `$saturation`, `$lightness`, or `$alpha` are out
688
691
  # of bounds or any parameter is the wrong type
@@ -709,7 +712,7 @@ module Sass::Script
709
712
  # [hsl-to-rgb]: http://www.w3.org/TR/css3-color/#hsl-color
710
713
  #
711
714
  # @overload red($color)
712
- # @param $color [Sass::Script::Value::Color]
715
+ # @param $color [Sass::Script::Value::Color]
713
716
  # @return [Sass::Script::Value::Number] The red component, between 0 and 255
714
717
  # inclusive
715
718
  # @raise [ArgumentError] if `$color` isn't a color
@@ -725,7 +728,7 @@ module Sass::Script
725
728
  # [hsl-to-rgb]: http://www.w3.org/TR/css3-color/#hsl-color
726
729
  #
727
730
  # @overload green($color)
728
- # @param $color [Sass::Script::Value::Color]
731
+ # @param $color [Sass::Script::Value::Color]
729
732
  # @return [Sass::Script::Value::Number] The green component, between 0 and
730
733
  # 255 inclusive
731
734
  # @raise [ArgumentError] if `$color` isn't a color
@@ -741,7 +744,7 @@ module Sass::Script
741
744
  # [hsl-to-rgb]: http://www.w3.org/TR/css3-color/#hsl-color
742
745
  #
743
746
  # @overload blue($color)
744
- # @param $color [Sass::Script::Value::Color]
747
+ # @param $color [Sass::Script::Value::Color]
745
748
  # @return [Sass::Script::Value::Number] The blue component, between 0 and
746
749
  # 255 inclusive
747
750
  # @raise [ArgumentError] if `$color` isn't a color
@@ -759,7 +762,7 @@ module Sass::Script
759
762
  # [rgb-to-hsl]: http://en.wikipedia.org/wiki/HSL_and_HSV#Conversion_from_RGB_to_HSL_or_HSV
760
763
  #
761
764
  # @overload hue($color)
762
- # @param $color [Sass::Script::Value::Color]
765
+ # @param $color [Sass::Script::Value::Color]
763
766
  # @return [Sass::Script::Value::Number] The hue component, between 0deg and
764
767
  # 360deg
765
768
  # @raise [ArgumentError] if `$color` isn't a color
@@ -777,7 +780,7 @@ module Sass::Script
777
780
  # [rgb-to-hsl]: http://en.wikipedia.org/wiki/HSL_and_HSV#Conversion_from_RGB_to_HSL_or_HSV
778
781
  #
779
782
  # @overload saturation($color)
780
- # @param $color [Sass::Script::Value::Color]
783
+ # @param $color [Sass::Script::Value::Color]
781
784
  # @return [Sass::Script::Value::Number] The saturation component, between 0%
782
785
  # and 100%
783
786
  # @raise [ArgumentError] if `$color` isn't a color
@@ -795,7 +798,7 @@ module Sass::Script
795
798
  # [rgb-to-hsl]: http://en.wikipedia.org/wiki/HSL_and_HSV#Conversion_from_RGB_to_HSL_or_HSV
796
799
  #
797
800
  # @overload lightness($color)
798
- # @param $color [Sass::Script::Value::Color]
801
+ # @param $color [Sass::Script::Value::Color]
799
802
  # @return [Sass::Script::Value::Number] The lightness component, between 0%
800
803
  # and 100%
801
804
  # @raise [ArgumentError] if `$color` isn't a color
@@ -812,7 +815,7 @@ module Sass::Script
812
815
  # syntax as a special case.
813
816
  #
814
817
  # @overload alpha($color)
815
- # @param $color [Sass::Script::Value::Color]
818
+ # @param $color [Sass::Script::Value::Color]
816
819
  # @return [Sass::Script::Value::Number] The alpha component, between 0 and 1
817
820
  # @raise [ArgumentError] if `$color` isn't a color
818
821
  def alpha(*args)
@@ -835,7 +838,7 @@ module Sass::Script
835
838
  # otherwise specified.
836
839
  #
837
840
  # @overload opacity($color)
838
- # @param $color [Sass::Script::Value::Color]
841
+ # @param $color [Sass::Script::Value::Color]
839
842
  # @return [Sass::Script::Value::Number] The alpha component, between 0 and 1
840
843
  # @raise [ArgumentError] if `$color` isn't a color
841
844
  def opacity(color)
@@ -855,9 +858,9 @@ module Sass::Script
855
858
  # opacify(rgba(0, 0, 0, 0.5), 0.1) => rgba(0, 0, 0, 0.6)
856
859
  # opacify(rgba(0, 0, 17, 0.8), 0.2) => #001
857
860
  # @overload opacify($color, $amount)
858
- # @param $color [Sass::Script::Value::Color]
859
- # @param $amount [Sass::Script::Value::Number] The amount to increase the
860
- # opacity by, between 0 and 1
861
+ # @param $color [Sass::Script::Value::Color]
862
+ # @param $amount [Sass::Script::Value::Number] The amount to increase the
863
+ # opacity by, between 0 and 1
861
864
  # @return [Sass::Script::Value::Color]
862
865
  # @raise [ArgumentError] if `$amount` is out of bounds, or either parameter
863
866
  # is the wrong type
@@ -877,9 +880,9 @@ module Sass::Script
877
880
  # transparentize(rgba(0, 0, 0, 0.5), 0.1) => rgba(0, 0, 0, 0.4)
878
881
  # transparentize(rgba(0, 0, 0, 0.8), 0.2) => rgba(0, 0, 0, 0.6)
879
882
  # @overload transparentize($color, $amount)
880
- # @param $color [Sass::Script::Value::Color]
881
- # @param $amount [Sass::Script::Value::Number] The amount to decrease the
882
- # opacity by, between 0 and 1
883
+ # @param $color [Sass::Script::Value::Color]
884
+ # @param $amount [Sass::Script::Value::Number] The amount to decrease the
885
+ # opacity by, between 0 and 1
883
886
  # @return [Sass::Script::Value::Color]
884
887
  # @raise [ArgumentError] if `$amount` is out of bounds, or either parameter
885
888
  # is the wrong type
@@ -899,9 +902,9 @@ module Sass::Script
899
902
  # lighten(hsl(0, 0%, 0%), 30%) => hsl(0, 0, 30)
900
903
  # lighten(#800, 20%) => #e00
901
904
  # @overload lighten($color, $amount)
902
- # @param $color [Sass::Script::Value::Color]
903
- # @param $amount [Sass::Script::Value::Number] The amount to increase the
904
- # lightness by, between `0%` and `100%`
905
+ # @param $color [Sass::Script::Value::Color]
906
+ # @param $amount [Sass::Script::Value::Number] The amount to increase the
907
+ # lightness by, between `0%` and `100%`
905
908
  # @return [Sass::Script::Value::Color]
906
909
  # @raise [ArgumentError] if `$amount` is out of bounds, or either parameter
907
910
  # is the wrong type
@@ -918,9 +921,9 @@ module Sass::Script
918
921
  # darken(hsl(25, 100%, 80%), 30%) => hsl(25, 100%, 50%)
919
922
  # darken(#800, 20%) => #200
920
923
  # @overload darken($color, $amount)
921
- # @param $color [Sass::Script::Value::Color]
922
- # @param $amount [Sass::Script::Value::Number] The amount to dencrease the
923
- # lightness by, between `0%` and `100%`
924
+ # @param $color [Sass::Script::Value::Color]
925
+ # @param $amount [Sass::Script::Value::Number] The amount to dencrease the
926
+ # lightness by, between `0%` and `100%`
924
927
  # @return [Sass::Script::Value::Color]
925
928
  # @raise [ArgumentError] if `$amount` is out of bounds, or either parameter
926
929
  # is the wrong type
@@ -937,9 +940,9 @@ module Sass::Script
937
940
  # saturate(hsl(120, 30%, 90%), 20%) => hsl(120, 50%, 90%)
938
941
  # saturate(#855, 20%) => #9e3f3f
939
942
  # @overload saturate($color, $amount)
940
- # @param $color [Sass::Script::Value::Color]
941
- # @param $amount [Sass::Script::Value::Number] The amount to increase the
942
- # saturation by, between `0%` and `100%`
943
+ # @param $color [Sass::Script::Value::Color]
944
+ # @param $amount [Sass::Script::Value::Number] The amount to increase the
945
+ # saturation by, between `0%` and `100%`
943
946
  # @return [Sass::Script::Value::Color]
944
947
  # @raise [ArgumentError] if `$amount` is out of bounds, or either parameter
945
948
  # is the wrong type
@@ -960,9 +963,9 @@ module Sass::Script
960
963
  # desaturate(hsl(120, 30%, 90%), 20%) => hsl(120, 10%, 90%)
961
964
  # desaturate(#855, 20%) => #726b6b
962
965
  # @overload desaturate($color, $amount)
963
- # @param $color [Sass::Script::Value::Color]
964
- # @param $amount [Sass::Script::Value::Number] The amount to decrease the
965
- # saturation by, between `0%` and `100%`
966
+ # @param $color [Sass::Script::Value::Color]
967
+ # @param $amount [Sass::Script::Value::Number] The amount to decrease the
968
+ # saturation by, between `0%` and `100%`
966
969
  # @return [Sass::Script::Value::Color]
967
970
  # @raise [ArgumentError] if `$amount` is out of bounds, or either parameter
968
971
  # is the wrong type
@@ -980,9 +983,9 @@ module Sass::Script
980
983
  # adjust-hue(hsl(120, 30%, 90%), 060deg) => hsl(60, 30%, 90%)
981
984
  # adjust-hue(#811, 45deg) => #886a11
982
985
  # @overload adjust_hue($color, $degrees)
983
- # @param $color [Sass::Script::Value::Color]
984
- # @param $degrees [Sass::Script::Value::Number] The number of degrees to
985
- # rotate the hue
986
+ # @param $color [Sass::Script::Value::Color]
987
+ # @param $degrees [Sass::Script::Value::Number] The number of degrees to
988
+ # rotate the hue
986
989
  # @return [Sass::Script::Value::Color]
987
990
  # @raise [ArgumentError] if either parameter is the wrong type
988
991
  def adjust_hue(color, degrees)
@@ -999,7 +1002,7 @@ module Sass::Script
999
1002
  # ie-hex-str(#3322BB) => #FF3322BB
1000
1003
  # ie-hex-str(rgba(0, 255, 0, 0.5)) => #8000FF00
1001
1004
  # @overload ie_hex_str($color)
1002
- # @param $color [Sass::Script::Value::Color]
1005
+ # @param $color [Sass::Script::Value::Color]
1003
1006
  # @return [Sass::Script::Value::String] The IE-formatted string
1004
1007
  # representation of the color
1005
1008
  # @raise [ArgumentError] if `$color` isn't a color
@@ -1023,23 +1026,26 @@ module Sass::Script
1023
1026
  # adjust-color(#102030, $blue: 5) => #102035
1024
1027
  # adjust-color(#102030, $red: -5, $blue: 5) => #0b2035
1025
1028
  # adjust-color(hsl(25, 100%, 80%), $lightness: -30%, $alpha: -0.4) => hsla(25, 100%, 50%, 0.6)
1026
- # @overload adjust_color($color, [$red], [$green], [$blue],
1027
- # [$hue], [$saturation], [$lightness], [$alpha])
1028
- # @param $color [Sass::Script::Value::Color]
1029
- # @param $red [Sass::Script::Value::Number] The adjustment to make on the
1030
- # red component, between -255 and 255 inclusive
1031
- # @param $green [Sass::Script::Value::Number] The adjustment to make on the
1032
- # green component, between -255 and 255 inclusive
1033
- # @param $blue [Sass::Script::Value::Number] The adjustment to make on the
1034
- # blue component, between -255 and 255 inclusive
1035
- # @param $hue [Sass::Script::Value::Number] The adjustment to make on the
1036
- # hue component, in degrees
1037
- # @param $saturation [Sass::Script::Value::Number] The adjustment to make on
1038
- # the saturation component, between `-100%` and `100%` inclusive
1039
- # @param $lightness [Sass::Script::Value::Number] The adjustment to make on
1040
- # the lightness component, between `-100%` and `100%` inclusive
1041
- # @param $alpha [Sass::Script::Value::Number] The adjustment to make on the
1042
- # alpha component, between -1 and 1 inclusive
1029
+ # @comment
1030
+ # rubocop:disable LineLength
1031
+ # @overload adjust_color($color, [$red], [$green], [$blue], [$hue], [$saturation], [$lightness], [$alpha])
1032
+ # @comment
1033
+ # rubocop:disable LineLength
1034
+ # @param $color [Sass::Script::Value::Color]
1035
+ # @param $red [Sass::Script::Value::Number] The adjustment to make on the
1036
+ # red component, between -255 and 255 inclusive
1037
+ # @param $green [Sass::Script::Value::Number] The adjustment to make on the
1038
+ # green component, between -255 and 255 inclusive
1039
+ # @param $blue [Sass::Script::Value::Number] The adjustment to make on the
1040
+ # blue component, between -255 and 255 inclusive
1041
+ # @param $hue [Sass::Script::Value::Number] The adjustment to make on the
1042
+ # hue component, in degrees
1043
+ # @param $saturation [Sass::Script::Value::Number] The adjustment to make on
1044
+ # the saturation component, between `-100%` and `100%` inclusive
1045
+ # @param $lightness [Sass::Script::Value::Number] The adjustment to make on
1046
+ # the lightness component, between `-100%` and `100%` inclusive
1047
+ # @param $alpha [Sass::Script::Value::Number] The adjustment to make on the
1048
+ # alpha component, between -1 and 1 inclusive
1043
1049
  # @return [Sass::Script::Value::Color]
1044
1050
  # @raise [ArgumentError] if any parameter is the wrong type or out-of
1045
1051
  # bounds, or if RGB properties and HSL properties are adjusted at the
@@ -1101,15 +1107,18 @@ module Sass::Script
1101
1107
  # scale-color(hsl(120, 70%, 80%), $lightness: 50%) => hsl(120, 70%, 90%)
1102
1108
  # scale-color(rgb(200, 150%, 170%), $green: -40%, $blue: 70%) => rgb(200, 90, 229)
1103
1109
  # scale-color(hsl(200, 70%, 80%), $saturation: -90%, $alpha: -30%) => hsla(200, 7%, 80%, 0.7)
1104
- # @overload scale_color($color, [$red], [$green], [$blue],
1105
- # [$saturation], [$lightness], [$alpha])
1106
- # @param $color [Sass::Script::Value::Color]
1107
- # @param $red [Sass::Script::Value::Number]
1108
- # @param $green [Sass::Script::Value::Number]
1109
- # @param $blue [Sass::Script::Value::Number]
1110
- # @param $saturation [Sass::Script::Value::Number]
1111
- # @param $lightness [Sass::Script::Value::Number]
1112
- # @param $alpha [Sass::Script::Value::Number]
1110
+ # @comment
1111
+ # rubocop:disable LineLength
1112
+ # @overload scale_color($color, [$red], [$green], [$blue], [$saturation], [$lightness], [$alpha])
1113
+ # @comment
1114
+ # rubocop:disable LineLength
1115
+ # @param $color [Sass::Script::Value::Color]
1116
+ # @param $red [Sass::Script::Value::Number]
1117
+ # @param $green [Sass::Script::Value::Number]
1118
+ # @param $blue [Sass::Script::Value::Number]
1119
+ # @param $saturation [Sass::Script::Value::Number]
1120
+ # @param $lightness [Sass::Script::Value::Number]
1121
+ # @param $alpha [Sass::Script::Value::Number]
1113
1122
  # @return [Sass::Script::Value::Color]
1114
1123
  # @raise [ArgumentError] if any parameter is the wrong type or out-of
1115
1124
  # bounds, or if RGB properties and HSL properties are adjusted at the
@@ -1159,23 +1168,26 @@ module Sass::Script
1159
1168
  # change-color(#102030, $blue: 5) => #102005
1160
1169
  # change-color(#102030, $red: 120, $blue: 5) => #782005
1161
1170
  # change-color(hsl(25, 100%, 80%), $lightness: 40%, $alpha: 0.8) => hsla(25, 100%, 40%, 0.8)
1162
- # @overload change_color($color, [$red], [$green], [$blue], [$hue],
1163
- # [$saturation], [$lightness], [$alpha])
1164
- # @param $color [Sass::Script::Value::Color]
1165
- # @param $red [Sass::Script::Value::Number] The new red component for the
1166
- # color, within 0 and 255 inclusive
1167
- # @param $green [Sass::Script::Value::Number] The new green component for
1168
- # the color, within 0 and 255 inclusive
1169
- # @param $blue [Sass::Script::Value::Number] The new blue component for the
1170
- # color, within 0 and 255 inclusive
1171
- # @param $hue [Sass::Script::Value::Number] The new hue component for the
1172
- # color, in degrees
1173
- # @param $saturation [Sass::Script::Value::Number] The new saturation
1174
- # component for the color, between `0%` and `100%` inclusive
1175
- # @param $lightness [Sass::Script::Value::Number] The new lightness
1176
- # component for the color, within `0%` and `100%` inclusive
1177
- # @param $alpha [Sass::Script::Value::Number] The new alpha component for
1178
- # the color, within 0 and 1 inclusive
1171
+ # @comment
1172
+ # rubocop:disable LineLength
1173
+ # @overload change_color($color, [$red], [$green], [$blue], [$hue], [$saturation], [$lightness], [$alpha])
1174
+ # @comment
1175
+ # rubocop:disable LineLength
1176
+ # @param $color [Sass::Script::Value::Color]
1177
+ # @param $red [Sass::Script::Value::Number] The new red component for the
1178
+ # color, within 0 and 255 inclusive
1179
+ # @param $green [Sass::Script::Value::Number] The new green component for
1180
+ # the color, within 0 and 255 inclusive
1181
+ # @param $blue [Sass::Script::Value::Number] The new blue component for the
1182
+ # color, within 0 and 255 inclusive
1183
+ # @param $hue [Sass::Script::Value::Number] The new hue component for the
1184
+ # color, in degrees
1185
+ # @param $saturation [Sass::Script::Value::Number] The new saturation
1186
+ # component for the color, between `0%` and `100%` inclusive
1187
+ # @param $lightness [Sass::Script::Value::Number] The new lightness
1188
+ # component for the color, within `0%` and `100%` inclusive
1189
+ # @param $alpha [Sass::Script::Value::Number] The new alpha component for
1190
+ # the color, within 0 and 1 inclusive
1179
1191
  # @return [Sass::Script::Value::Color]
1180
1192
  # @raise [ArgumentError] if any parameter is the wrong type or out-of
1181
1193
  # bounds, or if RGB properties and HSL properties are adjusted at the
@@ -1212,11 +1224,11 @@ module Sass::Script
1212
1224
  # mix(#f00, #00f, 25%) => #3f00bf
1213
1225
  # mix(rgba(255, 0, 0, 0.5), #00f) => rgba(63, 0, 191, 0.75)
1214
1226
  # @overload mix($color1, $color2, $weight: 50%)
1215
- # @param $color1 [Sass::Script::Value::Color]
1216
- # @param $color2 [Sass::Script::Value::Color]
1217
- # @param $weight [Sass::Script::Value::Number] The relative weight of each
1218
- # color. Closer to `0%` gives more weight to `$color`, closer to `100%`
1219
- # gives more weight to `$color2`
1227
+ # @param $color1 [Sass::Script::Value::Color]
1228
+ # @param $color2 [Sass::Script::Value::Color]
1229
+ # @param $weight [Sass::Script::Value::Number] The relative weight of each
1230
+ # color. Closer to `0%` gives more weight to `$color`, closer to `100%`
1231
+ # gives more weight to `$color2`
1220
1232
  # @return [Sass::Script::Value::Color]
1221
1233
  # @raise [ArgumentError] if `$weight` is out of bounds or any parameter is
1222
1234
  # the wrong type
@@ -1265,7 +1277,7 @@ module Sass::Script
1265
1277
  #
1266
1278
  # @see #desaturate
1267
1279
  # @overload grayscale($color)
1268
- # @param $color [Sass::Script::Value::Color]
1280
+ # @param $color [Sass::Script::Value::Color]
1269
1281
  # @return [Sass::Script::Value::Color]
1270
1282
  # @raise [ArgumentError] if `$color` isn't a color
1271
1283
  def grayscale(color)
@@ -1281,7 +1293,7 @@ module Sass::Script
1281
1293
  #
1282
1294
  # @see #adjust_hue #adjust-hue
1283
1295
  # @overload complement($color)
1284
- # @param $color [Sass::Script::Value::Color]
1296
+ # @param $color [Sass::Script::Value::Color]
1285
1297
  # @return [Sass::Script::Value::Color]
1286
1298
  # @raise [ArgumentError] if `$color` isn't a color
1287
1299
  def complement(color)
@@ -1293,7 +1305,7 @@ module Sass::Script
1293
1305
  # are inverted, while the opacity is left alone.
1294
1306
  #
1295
1307
  # @overload invert($color)
1296
- # @param $color [Sass::Script::Value::Color]
1308
+ # @param $color [Sass::Script::Value::Color]
1297
1309
  # @return [Sass::Script::Value::Color]
1298
1310
  # @raise [ArgumentError] if `$color` isn't a color
1299
1311
  def invert(color)
@@ -1317,7 +1329,7 @@ module Sass::Script
1317
1329
  # unquote("foo") => foo
1318
1330
  # unquote(foo) => foo
1319
1331
  # @overload unquote($string)
1320
- # @param $string [Sass::Script::Value::String]
1332
+ # @param $string [Sass::Script::Value::String]
1321
1333
  # @return [Sass::Script::Value::String]
1322
1334
  # @raise [ArgumentError] if `$string` isn't a string
1323
1335
  def unquote(string)
@@ -1337,7 +1349,7 @@ module Sass::Script
1337
1349
  # quote("foo") => "foo"
1338
1350
  # quote(foo) => "foo"
1339
1351
  # @overload quote($string)
1340
- # @param $string [Sass::Script::Value::String]
1352
+ # @param $string [Sass::Script::Value::String]
1341
1353
  # @return [Sass::Script::Value::String]
1342
1354
  # @raise [ArgumentError] if `$string` isn't a string
1343
1355
  def quote(string)
@@ -1355,7 +1367,7 @@ module Sass::Script
1355
1367
  # @example
1356
1368
  # str-length("foo") => 3
1357
1369
  # @overload str_length($string)
1358
- # @param $string [Sass::Script::Value::String]
1370
+ # @param $string [Sass::Script::Value::String]
1359
1371
  # @return [Sass::Script::Value::Number]
1360
1372
  # @raise [ArgumentError] if `$string` isn't a string
1361
1373
  def str_length(string)
@@ -1375,12 +1387,12 @@ module Sass::Script
1375
1387
  # str-insert("abcd", "X", 5) => "abcdX"
1376
1388
  #
1377
1389
  # @overload str_insert($string, $insert, $index)
1378
- # @param $string [Sass::Script::Value::String]
1379
- # @param $insert [Sass::Script::Value::String]
1380
- # @param $index [Sass::Script::Value::Number] The position at which
1381
- # `$insert` will be inserted. Negative indices count from the end of
1382
- # `$string`. An index that's outside the bounds of the string will insert
1383
- # `$insert` at the front or back of the string
1390
+ # @param $string [Sass::Script::Value::String]
1391
+ # @param $insert [Sass::Script::Value::String]
1392
+ # @param $index [Sass::Script::Value::Number] The position at which
1393
+ # `$insert` will be inserted. Negative indices count from the end of
1394
+ # `$string`. An index that's outside the bounds of the string will insert
1395
+ # `$insert` at the front or back of the string
1384
1396
  # @return [Sass::Script::Value::String] The result string. This will be
1385
1397
  # quoted if and only if `$string` was quoted
1386
1398
  # @raise [ArgumentError] if any parameter is the wrong type
@@ -1412,8 +1424,8 @@ module Sass::Script
1412
1424
  # str-index(abcd, c) => 3
1413
1425
  #
1414
1426
  # @overload str_index($string, $substring)
1415
- # @param $string [Sass::Script::Value::String]
1416
- # @param $substring [Sass::Script::Value::String]
1427
+ # @param $string [Sass::Script::Value::String]
1428
+ # @param $substring [Sass::Script::Value::String]
1417
1429
  # @return [Sass::Script::Value::Number, Sass::Script::Value::Null]
1418
1430
  # @raise [ArgumentError] if any parameter is the wrong type
1419
1431
  def str_index(string, substring)
@@ -1437,14 +1449,14 @@ module Sass::Script
1437
1449
  # str-slice("abcd", 2, -2) => "bc"
1438
1450
  #
1439
1451
  # @overload str_slice($string, $start-at, $end-at: -1)
1440
- # @param $start-at [Sass::Script::Value::Number] The index of the first
1441
- # character of the substring. If this is negative, it counts from the end
1442
- # of `$string`
1443
- # @param $end-before [Sass::Script::Value::Number] The index of the last
1444
- # character of the substring. If this is negative, it counts from the end
1445
- # of `$string`. Defaults to -1
1446
- # @return [Sass::Script::Value::String] The substring. This will be quoted
1447
- # if and only if `$string` was quoted
1452
+ # @param $start-at [Sass::Script::Value::Number] The index of the first
1453
+ # character of the substring. If this is negative, it counts from the end
1454
+ # of `$string`
1455
+ # @param $end-before [Sass::Script::Value::Number] The index of the last
1456
+ # character of the substring. If this is negative, it counts from the end
1457
+ # of `$string`. Defaults to -1
1458
+ # @return [Sass::Script::Value::String] The substring. This will be quoted
1459
+ # if and only if `$string` was quoted
1448
1460
  # @raise [ArgumentError] if any parameter is the wrong type
1449
1461
  def str_slice(string, start_at, end_at = nil)
1450
1462
  assert_type string, :String, :string
@@ -1471,7 +1483,7 @@ module Sass::Script
1471
1483
  # to-upper-case(abcd) => ABCD
1472
1484
  #
1473
1485
  # @overload to_upper_case($string)
1474
- # @param $string [Sass::Script::Value::String]
1486
+ # @param $string [Sass::Script::Value::String]
1475
1487
  # @return [Sass::Script::Value::String]
1476
1488
  # @raise [ArgumentError] if `$string` isn't a string
1477
1489
  def to_upper_case(string)
@@ -1486,7 +1498,7 @@ module Sass::Script
1486
1498
  # to-lower-case(ABCD) => abcd
1487
1499
  #
1488
1500
  # @overload to_lower_case($string)
1489
- # @param $string [Sass::Script::Value::String]
1501
+ # @param $string [Sass::Script::Value::String]
1490
1502
  # @return [Sass::Script::Value::String]
1491
1503
  # @raise [ArgumentError] if `$string` isn't a string
1492
1504
  def to_lower_case(string)
@@ -1505,7 +1517,7 @@ module Sass::Script
1505
1517
  # type-of(#fff) => color
1506
1518
  # type-of(blue) => color
1507
1519
  # @overload type_of($value)
1508
- # @param $value [Sass::Script::Value::Base] The value to inspect
1520
+ # @param $value [Sass::Script::Value::Base] The value to inspect
1509
1521
  # @return [Sass::Script::Value::String] The unquoted string name of the
1510
1522
  # value's type
1511
1523
  def type_of(value)
@@ -1520,7 +1532,7 @@ module Sass::Script
1520
1532
  # feature-exists(what-is-this-i-dont-know) => false
1521
1533
  #
1522
1534
  # @overload feature_exists($feature)
1523
- # @param $feature [Sass::Script::Value::String] The name of the feature
1535
+ # @param $feature [Sass::Script::Value::String] The name of the feature
1524
1536
  # @return [Sass::Script::Value::Bool] Whether the feature is supported in this version of Sass
1525
1537
  # @raise [ArgumentError] if `$feature` isn't a string
1526
1538
  def feature_exists(feature)
@@ -1539,7 +1551,7 @@ module Sass::Script
1539
1551
  # unit(10px * 5em) => "em*px"
1540
1552
  # unit(10px * 5em / 30cm / 1rem) => "em*px/cm*rem"
1541
1553
  # @overload unit($number)
1542
- # @param $number [Sass::Script::Value::Number]
1554
+ # @param $number [Sass::Script::Value::Number]
1543
1555
  # @return [Sass::Script::Value::String] The unit(s) of the number, as a
1544
1556
  # quoted string
1545
1557
  # @raise [ArgumentError] if `$number` isn't a number
@@ -1555,7 +1567,7 @@ module Sass::Script
1555
1567
  # unitless(100) => true
1556
1568
  # unitless(100px) => false
1557
1569
  # @overload unitless($number)
1558
- # @param $number [Sass::Script::Value::Number]
1570
+ # @param $number [Sass::Script::Value::Number]
1559
1571
  # @return [Sass::Script::Value::Bool]
1560
1572
  # @raise [ArgumentError] if `$number` isn't a number
1561
1573
  def unitless(number)
@@ -1571,8 +1583,8 @@ module Sass::Script
1571
1583
  # comparable(100px, 3em) => false
1572
1584
  # comparable(10cm, 3mm) => true
1573
1585
  # @overload comparable($number1, $number2)
1574
- # @param $number1 [Sass::Script::Value::Number]
1575
- # @param $number2 [Sass::Script::Value::Number]
1586
+ # @param $number1 [Sass::Script::Value::Number]
1587
+ # @param $number2 [Sass::Script::Value::Number]
1576
1588
  # @return [Sass::Script::Value::Bool]
1577
1589
  # @raise [ArgumentError] if either parameter is the wrong type
1578
1590
  def comparable(number1, number2)
@@ -1588,7 +1600,7 @@ module Sass::Script
1588
1600
  # percentage(0.2) => 20%
1589
1601
  # percentage(100px / 50px) => 200%
1590
1602
  # @overload percentage($number)
1591
- # @param $number [Sass::Script::Value::Number]
1603
+ # @param $number [Sass::Script::Value::Number]
1592
1604
  # @return [Sass::Script::Value::Number]
1593
1605
  # @raise [ArgumentError] if `$number` isn't a unitless number
1594
1606
  def percentage(number)
@@ -1605,7 +1617,7 @@ module Sass::Script
1605
1617
  # round(10.4px) => 10px
1606
1618
  # round(10.6px) => 11px
1607
1619
  # @overload round($number)
1608
- # @param $number [Sass::Script::Value::Number]
1620
+ # @param $number [Sass::Script::Value::Number]
1609
1621
  # @return [Sass::Script::Value::Number]
1610
1622
  # @raise [ArgumentError] if `$number` isn't a number
1611
1623
  def round(number)
@@ -1619,7 +1631,7 @@ module Sass::Script
1619
1631
  # ceil(10.4px) => 11px
1620
1632
  # ceil(10.6px) => 11px
1621
1633
  # @overload ceil($number)
1622
- # @param $number [Sass::Script::Value::Number]
1634
+ # @param $number [Sass::Script::Value::Number]
1623
1635
  # @return [Sass::Script::Value::Number]
1624
1636
  # @raise [ArgumentError] if `$number` isn't a number
1625
1637
  def ceil(number)
@@ -1633,7 +1645,7 @@ module Sass::Script
1633
1645
  # floor(10.4px) => 10px
1634
1646
  # floor(10.6px) => 10px
1635
1647
  # @overload floor($number)
1636
- # @param $number [Sass::Script::Value::Number]
1648
+ # @param $number [Sass::Script::Value::Number]
1637
1649
  # @return [Sass::Script::Value::Number]
1638
1650
  # @raise [ArgumentError] if `$number` isn't a number
1639
1651
  def floor(number)
@@ -1647,7 +1659,7 @@ module Sass::Script
1647
1659
  # abs(10px) => 10px
1648
1660
  # abs(-10px) => 10px
1649
1661
  # @overload abs($number)
1650
- # @param $number [Sass::Script::Value::Number]
1662
+ # @param $number [Sass::Script::Value::Number]
1651
1663
  # @return [Sass::Script::Value::Number]
1652
1664
  # @raise [ArgumentError] if `$number` isn't a number
1653
1665
  def abs(number)
@@ -1662,7 +1674,7 @@ module Sass::Script
1662
1674
  # min(1px, 4px) => 1px
1663
1675
  # min(5em, 3em, 4em) => 3em
1664
1676
  # @overload min($numbers...)
1665
- # @param $numbers [[Sass::Script::Value::Number]]
1677
+ # @param $numbers [[Sass::Script::Value::Number]]
1666
1678
  # @return [Sass::Script::Value::Number]
1667
1679
  # @raise [ArgumentError] if any argument isn't a number, or if not all of
1668
1680
  # the arguments have comparable units
@@ -1679,7 +1691,7 @@ module Sass::Script
1679
1691
  # max(1px, 4px) => 4px
1680
1692
  # max(5em, 3em, 4em) => 5em
1681
1693
  # @overload max($numbers...)
1682
- # @param $numbers [[Sass::Script::Value::Number]]
1694
+ # @param $numbers [[Sass::Script::Value::Number]]
1683
1695
  # @return [Sass::Script::Value::Number]
1684
1696
  # @raise [ArgumentError] if any argument isn't a number, or if not all of
1685
1697
  # the arguments have comparable units
@@ -1698,7 +1710,7 @@ module Sass::Script
1698
1710
  # length(10px 20px 30px) => 3
1699
1711
  # length((width: 10px, height: 20px)) => 2
1700
1712
  # @overload length($list)
1701
- # @param $list [Sass::Script::Value::Base]
1713
+ # @param $list [Sass::Script::Value::Base]
1702
1714
  # @return [Sass::Script::Value::Number]
1703
1715
  def length(list)
1704
1716
  number(list.to_a.size)
@@ -1717,11 +1729,11 @@ module Sass::Script
1717
1729
  # @example
1718
1730
  # set-nth($list: 10px 20px 30px, $n: 2, $value: -20px) => 10px -20px 30px
1719
1731
  # @overload set-nth($list, $n, $value)
1720
- # @param $list [Sass::Script::Value::Base] The list that will be copied, having the element
1721
- # at index `$n` changed.
1722
- # @param $n [Sass::Script::Value::Number] The index of the item to set.
1723
- # Negative indices count from the end of the list.
1724
- # @param $value [Sass::Script::Value::Base] The new value at index `$n`.
1732
+ # @param $list [Sass::Script::Value::Base] The list that will be copied, having the element
1733
+ # at index `$n` changed.
1734
+ # @param $n [Sass::Script::Value::Number] The index of the item to set.
1735
+ # Negative indices count from the end of the list.
1736
+ # @param $value [Sass::Script::Value::Base] The new value at index `$n`.
1725
1737
  # @return [Sass::Script::Value::List]
1726
1738
  # @raise [ArgumentError] if `$n` isn't an integer between 1 and the length
1727
1739
  # of `$list`
@@ -1750,9 +1762,9 @@ module Sass::Script
1750
1762
  # nth((Helvetica, Arial, sans-serif), 3) => sans-serif
1751
1763
  # nth((width: 10px, length: 20px), 2) => length, 20px
1752
1764
  # @overload nth($list, $n)
1753
- # @param $list [Sass::Script::Value::Base]
1754
- # @param $n [Sass::Script::Value::Number] The index of the item to get.
1755
- # Negative indices count from the end of the list.
1765
+ # @param $list [Sass::Script::Value::Base]
1766
+ # @param $n [Sass::Script::Value::Number] The index of the item to get.
1767
+ # Negative indices count from the end of the list.
1756
1768
  # @return [Sass::Script::Value::Base]
1757
1769
  # @raise [ArgumentError] if `$n` isn't an integer between 1 and the length
1758
1770
  # of `$list`
@@ -1779,11 +1791,11 @@ module Sass::Script
1779
1791
  # join(10px, 20px, comma) => 10px, 20px
1780
1792
  # join((blue, red), (#abc, #def), space) => blue red #abc #def
1781
1793
  # @overload join($list1, $list2, $separator: auto)
1782
- # @param $list1 [Sass::Script::Value::Base]
1783
- # @param $list2 [Sass::Script::Value::Base]
1784
- # @param $separator [Sass::Script::Value::String] The list separator to use.
1785
- # If this is `comma` or `space`, that separator will be used. If this is
1786
- # `auto` (the default), the separator is determined as explained above.
1794
+ # @param $list1 [Sass::Script::Value::Base]
1795
+ # @param $list2 [Sass::Script::Value::Base]
1796
+ # @param $separator [Sass::Script::Value::String] The list separator to use.
1797
+ # If this is `comma` or `space`, that separator will be used. If this is
1798
+ # `auto` (the default), the separator is determined as explained above.
1787
1799
  # @return [Sass::Script::Value::List]
1788
1800
  def join(list1, list2, separator = identifier("auto"))
1789
1801
  assert_type separator, :String, :separator
@@ -1812,11 +1824,11 @@ module Sass::Script
1812
1824
  # append(10px, 20px, comma) => 10px, 20px
1813
1825
  # append((blue, red), green, space) => blue red green
1814
1826
  # @overload append($list, $val, $separator: auto)
1815
- # @param $list [Sass::Script::Value::Base]
1816
- # @param $val [Sass::Script::Value::Base]
1817
- # @param $separator [Sass::Script::Value::String] The list separator to use.
1818
- # If this is `comma` or `space`, that separator will be used. If this is
1819
- # `auto` (the default), the separator is determined as explained above.
1827
+ # @param $list [Sass::Script::Value::Base]
1828
+ # @param $val [Sass::Script::Value::Base]
1829
+ # @param $separator [Sass::Script::Value::String] The list separator to use.
1830
+ # If this is `comma` or `space`, that separator will be used. If this is
1831
+ # `auto` (the default), the separator is determined as explained above.
1820
1832
  # @return [Sass::Script::Value::List]
1821
1833
  def append(list, val, separator = identifier("auto"))
1822
1834
  assert_type separator, :String, :separator
@@ -1844,7 +1856,7 @@ module Sass::Script
1844
1856
  # zip(1px 1px 3px, solid dashed solid, red green blue)
1845
1857
  # => 1px solid red, 1px dashed green, 3px solid blue
1846
1858
  # @overload zip($lists...)
1847
- # @param $lists [[Sass::Script::Value::Base]]
1859
+ # @param $lists [[Sass::Script::Value::Base]]
1848
1860
  # @return [Sass::Script::Value::List]
1849
1861
  def zip(*lists)
1850
1862
  length = nil
@@ -1875,8 +1887,8 @@ module Sass::Script
1875
1887
  # index(1px solid red, dashed) => null
1876
1888
  # index((width: 10px, height: 20px), (height, 20px)) => 2
1877
1889
  # @overload index($list, $value)
1878
- # @param $list [Sass::Script::Value::Base]
1879
- # @param $value [Sass::Script::Value::Base]
1890
+ # @param $list [Sass::Script::Value::Base]
1891
+ # @param $value [Sass::Script::Value::Base]
1880
1892
  # @return [Sass::Script::Value::Number, Sass::Script::Value::Null] The
1881
1893
  # 1-based index of `$value` in `$list`, or `null`
1882
1894
  def index(list, value)
@@ -1894,7 +1906,7 @@ module Sass::Script
1894
1906
  # list-separator(1px, 2px, 3px) => comma
1895
1907
  # list-separator('foo') => space
1896
1908
  # @overload list_separator($list)
1897
- # @param $list [Sass::Script::Value::Base]
1909
+ # @param $list [Sass::Script::Value::Base]
1898
1910
  # @return [Sass::Script::Value::String] `comma` or `space`
1899
1911
  def list_separator(list)
1900
1912
  identifier((list.separator || :space).to_s)
@@ -1909,8 +1921,8 @@ module Sass::Script
1909
1921
  # map-get(("foo": 1, "bar": 2), "bar") => 2
1910
1922
  # map-get(("foo": 1, "bar": 2), "baz") => null
1911
1923
  # @overload map_get($map, $key)
1912
- # @param $map [Sass::Script::Value::Map]
1913
- # @param $key [Sass::Script::Value::Base]
1924
+ # @param $map [Sass::Script::Value::Map]
1925
+ # @param $key [Sass::Script::Value::Base]
1914
1926
  # @return [Sass::Script::Value::Base] The value indexed by `$key`, or `null`
1915
1927
  # if the map doesn't contain the given key
1916
1928
  # @raise [ArgumentError] if `$map` is not a map
@@ -1933,8 +1945,8 @@ module Sass::Script
1933
1945
  # map-merge(("foo": 1), ("bar": 2)) => ("foo": 1, "bar": 2)
1934
1946
  # map-merge(("foo": 1, "bar": 2), ("bar": 3)) => ("foo": 1, "bar": 3)
1935
1947
  # @overload map_merge($map1, $map2)
1936
- # @param $map1 [Sass::Script::Value::Map]
1937
- # @param $map2 [Sass::Script::Value::Map]
1948
+ # @param $map1 [Sass::Script::Value::Map]
1949
+ # @param $map2 [Sass::Script::Value::Map]
1938
1950
  # @return [Sass::Script::Value::Map]
1939
1951
  # @raise [ArgumentError] if either parameter is not a map
1940
1952
  def map_merge(map1, map2)
@@ -1950,8 +1962,8 @@ module Sass::Script
1950
1962
  # map-remove(("foo": 1, "bar": 2), "bar") => ("foo": 1)
1951
1963
  # map-remove(("foo": 1, "bar": 2), "baz") => ("foo": 1, "bar": 2)
1952
1964
  # @overload map_remove($map, $key)
1953
- # @param $map [Sass::Script::Value::Map]
1954
- # @param $key [Sass::Script::Value::Base]
1965
+ # @param $map [Sass::Script::Value::Map]
1966
+ # @param $key [Sass::Script::Value::Base]
1955
1967
  # @return [Sass::Script::Value::Map]
1956
1968
  # @raise [ArgumentError] if `$map` is not a map
1957
1969
  def map_remove(map, key)
@@ -1967,7 +1979,7 @@ module Sass::Script
1967
1979
  # @example
1968
1980
  # map-keys(("foo": 1, "bar": 2)) => "foo", "bar"
1969
1981
  # @overload map_keys($map)
1970
- # @param $map [Map]
1982
+ # @param $map [Map]
1971
1983
  # @return [List] the list of keys, comma-separated
1972
1984
  # @raise [ArgumentError] if `$map` is not a map
1973
1985
  def map_keys(map)
@@ -1983,7 +1995,7 @@ module Sass::Script
1983
1995
  # map-values(("foo": 1, "bar": 2)) => 1, 2
1984
1996
  # map-values(("foo": 1, "bar": 2, "baz": 1)) => 1, 2, 1
1985
1997
  # @overload map_values($map)
1986
- # @param $map [Map]
1998
+ # @param $map [Map]
1987
1999
  # @return [List] the list of values, comma-separated
1988
2000
  # @raise [ArgumentError] if `$map` is not a map
1989
2001
  def map_values(map)
@@ -1998,8 +2010,8 @@ module Sass::Script
1998
2010
  # map-has-key(("foo": 1, "bar": 2), "foo") => true
1999
2011
  # map-has-key(("foo": 1, "bar": 2), "baz") => false
2000
2012
  # @overload map_has_key($map, $key)
2001
- # @param $map [Sass::Script::Value::Map]
2002
- # @param $key [Sass::Script::Value::Base]
2013
+ # @param $map [Sass::Script::Value::Map]
2014
+ # @param $key [Sass::Script::Value::Base]
2003
2015
  # @return [Sass::Script::Value::Bool]
2004
2016
  # @raise [ArgumentError] if `$map` is not a map
2005
2017
  def map_has_key(map, key)
@@ -2019,7 +2031,7 @@ module Sass::Script
2019
2031
  #
2020
2032
  # @include foo($arg1: val, $arg2: val);
2021
2033
  # @overload keywords($args)
2022
- # @param $args [Sass::Script::Value::ArgList]
2034
+ # @param $args [Sass::Script::Value::ArgList]
2023
2035
  # @return [Sass::Script::Value::Map]
2024
2036
  # @raise [ArgumentError] if `$args` isn't a variable argument list
2025
2037
  def keywords(args)
@@ -2036,10 +2048,10 @@ module Sass::Script
2036
2048
  # if(true, 1px, 2px) => 1px
2037
2049
  # if(false, 1px, 2px) => 2px
2038
2050
  # @overload if($condition, $if-true, $if-false)
2039
- # @param $condition [Sass::Script::Value::Base] Whether the `$if-true` or
2040
- # `$if-false` will be returned
2041
- # @param $if-true [Sass::Script::Tree::Node]
2042
- # @param $if-false [Sass::Script::Tree::Node]
2051
+ # @param $condition [Sass::Script::Value::Base] Whether the `$if-true` or
2052
+ # `$if-false` will be returned
2053
+ # @param $if-true [Sass::Script::Tree::Node]
2054
+ # @param $if-false [Sass::Script::Tree::Node]
2043
2055
  # @return [Sass::Script::Value::Base] `$if-true` or `$if-false`
2044
2056
  def if(condition, if_true, if_false)
2045
2057
  if condition.to_bool
@@ -2079,7 +2091,7 @@ module Sass::Script
2079
2091
  # call($fn, (a b c), 2) => b
2080
2092
  #
2081
2093
  # @overload call($name, $args...)
2082
- # @param $name [String] The name of the function to call.
2094
+ # @param $name [String] The name of the function to call.
2083
2095
  def call(name, *args)
2084
2096
  assert_type name, :String, :name
2085
2097
  kwargs = args.last.is_a?(Hash) ? args.pop : {}
@@ -78,12 +78,12 @@ module Sass
78
78
  # Non-destructively extends this selector with the extensions specified in a hash
79
79
  # (which should come from {Sass::Tree::Visitors::Cssize}).
80
80
  #
81
- # @overload def do_extend(extends, parent_directives)
82
- # @param extends [Sass::Util::SubsetMap{Selector::Simple =>
83
- # Sass::Tree::Visitors::Cssize::Extend}]
84
- # The extensions to perform on this selector
85
- # @param parent_directives [Array<Sass::Tree::DirectiveNode>]
86
- # The directives containing this selector.
81
+ # @overload do_extend(extends, parent_directives)
82
+ # @param extends [Sass::Util::SubsetMap{Selector::Simple =>
83
+ # Sass::Tree::Visitors::Cssize::Extend}]
84
+ # The extensions to perform on this selector
85
+ # @param parent_directives [Array<Sass::Tree::DirectiveNode>]
86
+ # The directives containing this selector.
87
87
  # @return [Array<Sequence>] A list of selectors generated
88
88
  # by extending this selector with `extends`.
89
89
  # These correspond to a {CommaSequence}'s {CommaSequence#members members array}.
@@ -131,12 +131,12 @@ module Sass
131
131
  # Non-destrucively extends this selector with the extensions specified in a hash
132
132
  # (which should come from {Sass::Tree::Visitors::Cssize}).
133
133
  #
134
- # @overload def do_extend(extends, parent_directives)
135
- # @param extends [{Selector::Simple =>
136
- # Sass::Tree::Visitors::Cssize::Extend}]
137
- # The extensions to perform on this selector
138
- # @param parent_directives [Array<Sass::Tree::DirectiveNode>]
139
- # The directives containing this selector.
134
+ # @overload do_extend(extends, parent_directives)
135
+ # @param extends [{Selector::Simple =>
136
+ # Sass::Tree::Visitors::Cssize::Extend}]
137
+ # The extensions to perform on this selector
138
+ # @param parent_directives [Array<Sass::Tree::DirectiveNode>]
139
+ # The directives containing this selector.
140
140
  # @return [Array<Sequence>] A list of selectors generated
141
141
  # by extending this selector with `extends`.
142
142
  # @see CommaSequence#do_extend
@@ -41,6 +41,7 @@ class Sass::Tree::Visitors::SetOptions < Sass::Tree::Visitors::Base
41
41
  k.options = @options
42
42
  v.options = @options if v
43
43
  end
44
+ node.splat.options = @options if node.splat
44
45
  yield
45
46
  end
46
47
 
@@ -63,12 +64,15 @@ class Sass::Tree::Visitors::SetOptions < Sass::Tree::Visitors::Base
63
64
  k.options = @options
64
65
  v.options = @options if v
65
66
  end
67
+ node.splat.options = @options if node.splat
66
68
  yield
67
69
  end
68
70
 
69
71
  def visit_mixin(node)
70
72
  node.args.each {|a| a.options = @options}
71
73
  node.keywords.each {|k, v| v.options = @options}
74
+ node.splat.options = @options if node.splat
75
+ node.kwarg_splat.options = @options if node.kwarg_splat
72
76
  yield
73
77
  end
74
78
 
@@ -512,7 +512,7 @@ module Sass
512
512
  begin
513
513
  require 'listen/version'
514
514
  version_geq(::Listen::VERSION, '2.0.0')
515
- rescue LoadError => e
515
+ rescue LoadError
516
516
  false
517
517
  end
518
518
  end
@@ -66,17 +66,52 @@ class CacheTest < Test::Unit::TestCase
66
66
  assert_equal an_object, cache.retrieve("an_object", "")
67
67
  end
68
68
 
69
- class Unmarshalable
70
- def _dump(_)
71
- raise 'Unmarshalable'
72
- end
69
+ def test_cache_node_with_unmarshalable_option
70
+ engine_with_unmarshalable_options("foo {a: b + c}").to_tree
73
71
  end
74
72
 
75
- def test_cache_node_with_unmarshalable_option
76
- engine = Sass::Engine.new("foo {a: b + c}",
77
- :syntax => :scss, :object => Unmarshalable.new, :filename => 'file.scss',
78
- :importer => Sass::Importers::Filesystem.new(absolutize('templates')))
79
- engine.to_tree
73
+ # Regression tests
74
+
75
+ def test_cache_mixin_def_splat_sass_node_with_unmarshalable_option
76
+ engine_with_unmarshalable_options(<<SASS, :syntax => :sass).to_tree
77
+ =color($args...)
78
+ color: red
79
+ SASS
80
+ end
81
+
82
+ def test_cache_mixin_def_splat_scss_node_with_unmarshalable_option
83
+ engine_with_unmarshalable_options(<<SCSS, :syntax => :scss).to_tree
84
+ @mixin color($args...) {
85
+ color: red;
86
+ }
87
+ SCSS
88
+ end
89
+
90
+ def test_cache_function_splat_sass_node_with_unmarshalable_option
91
+ engine_with_unmarshalable_options(<<SASS, :syntax => :sass).to_tree
92
+ @function color($args...)
93
+ @return red
94
+ SASS
95
+ end
96
+
97
+ def test_cache_function_splat_scss_node_with_unmarshalable_option
98
+ engine_with_unmarshalable_options(<<SCSS, :syntax => :scss).to_tree
99
+ @function color($args...) {
100
+ @return red;
101
+ }
102
+ SCSS
103
+ end
104
+
105
+ def test_cache_include_splat_sass_node_with_unmarshalable_option
106
+ engine_with_unmarshalable_options(<<SASS, :syntax => :sass).to_tree
107
+ @include color($args..., $kwargs...)
108
+ SASS
109
+ end
110
+
111
+ def test_cache_include_splat_scss_node_with_unmarshalable_option
112
+ engine_with_unmarshalable_options(<<SCSS, :syntax => :scss).to_tree
113
+ @include color($args..., $kwargs...);
114
+ SCSS
80
115
  end
81
116
 
82
117
  private
@@ -86,4 +121,11 @@ class CacheTest < Test::Unit::TestCase
86
121
  div { @include color(red); }
87
122
  SCSS
88
123
  end
124
+
125
+ def engine_with_unmarshalable_options(src, options={})
126
+ Sass::Engine.new(src, {
127
+ :syntax => :scss, :object => Class.new.new, :filename => 'file.scss',
128
+ :importer => Sass::Importers::Filesystem.new(absolutize('templates'))
129
+ }.merge(options))
130
+ end
89
131
  end
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.3.2
4
+ version: 3.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Weizenbaum
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2014-03-11 00:00:00.000000000 Z
13
+ date: 2014-03-14 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: yard