SassyLists 1.1.1 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -1
  3. data/README.md +73 -0
  4. data/lib/SassyLists.rb +15 -8
  5. data/stylesheets/SassyLists/_chunk.scss +6 -6
  6. data/stylesheets/SassyLists/_contain.scss +5 -5
  7. data/stylesheets/SassyLists/_count-values.scss +2 -2
  8. data/stylesheets/SassyLists/_debug.scss +6 -6
  9. data/stylesheets/SassyLists/_every.scss +17 -0
  10. data/stylesheets/SassyLists/_explode.scss +12 -9
  11. data/stylesheets/SassyLists/_first.scss +6 -6
  12. data/stylesheets/SassyLists/_flatten.scss +6 -6
  13. data/stylesheets/SassyLists/_insert-nth.scss +13 -11
  14. data/stylesheets/SassyLists/_intersection.scss +6 -4
  15. data/stylesheets/SassyLists/_is-symmetrical.scss +9 -7
  16. data/stylesheets/SassyLists/_last-index.scss +4 -4
  17. data/stylesheets/SassyLists/_last.scss +3 -3
  18. data/stylesheets/SassyLists/_loop.scss +10 -8
  19. data/stylesheets/SassyLists/_prepend.scss +8 -6
  20. data/stylesheets/SassyLists/_purge.scss +9 -7
  21. data/stylesheets/SassyLists/_random-value.scss +10 -10
  22. data/stylesheets/SassyLists/_remove-duplicates.scss +5 -5
  23. data/stylesheets/SassyLists/_remove-nth.scss +10 -8
  24. data/stylesheets/SassyLists/_remove.scss +9 -7
  25. data/stylesheets/SassyLists/_replace-nth.scss +11 -9
  26. data/stylesheets/SassyLists/_replace.scss +7 -4
  27. data/stylesheets/SassyLists/_reverse.scss +6 -6
  28. data/stylesheets/SassyLists/_shuffle.scss +6 -5
  29. data/stylesheets/SassyLists/_slice.scss +23 -18
  30. data/stylesheets/SassyLists/_some.scss +17 -0
  31. data/stylesheets/SassyLists/_sort.scss +11 -9
  32. data/stylesheets/SassyLists/_sum.scss +2 -2
  33. data/stylesheets/SassyLists/_tail.scss +10 -8
  34. data/stylesheets/SassyLists/_to-map.scss +51 -0
  35. data/stylesheets/SassyLists/_to-string.scss +6 -6
  36. data/stylesheets/SassyLists/_union.scss +11 -8
  37. data/stylesheets/SassyLists/_walk.scss +4 -4
  38. data/stylesheets/SassyLists/helpers/_missing-dependencies.scss +23 -0
  39. data/stylesheets/SassyLists/helpers/_str-compare.scss +5 -2
  40. data/stylesheets/SassyLists/helpers/_true.scss +2 -2
  41. data/stylesheets/_SassyLists.scss +5 -1
  42. metadata +13 -21
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9188bd3fa596049952a7632069d04150021289bb
4
- data.tar.gz: 2b8cd2fddcbe99bcaffa6e11c552eba1f9468bbe
3
+ metadata.gz: a296e7541de900b0667d9adc5982680695baf408
4
+ data.tar.gz: cfe6a3f3016520920a2109556c0315bef0fa0f59
5
5
  SHA512:
6
- metadata.gz: 73b07f9d83ce6bfb68b36fda09a3d9ba3f1a3209d571dc8c3d383cf5c6b34cec1ca62438952e2b0f26ca03ce6145ef3384d59497d8c961dc5b1401736899b4d8
7
- data.tar.gz: 9a6b283f587c8ed177db46f4b5beb675da1687e38f6fd2a07a19577736700c9714c53a6ed9320398f8a4ff705c7d28a4980ba5dbb06c77ab316a2a9466a12217
6
+ metadata.gz: 130887373e83c97df31b98774bc78f8becd565fedbe99b2cb29278938ea0b1b7b95bbbda4038aded18c2881bc3c9ceea66d1ec6431e1c9d8580475867b4193dd
7
+ data.tar.gz: c832a9b26caee25bae587bf9519fd3b0d1a49d8256ec4c88837f24e7dcee0e1ecc40f210449ccb90628e4a1e364467cbe78ef6c2973c4e19c7554f48f45397cb
data/CHANGELOG.md CHANGED
@@ -1,6 +1,13 @@
1
1
  # Changelog
2
2
 
3
- * `1.1.0`: added `walk()` and `tail()`, updated backward loops and fixed broken tests
3
+ * `2.0.0`:
4
+ * adding `to-map()`, `every()` and `some()`
5
+ * adding and improved tests
6
+ * prefixing all functions with `sl-`
7
+ * fixing an issue with `random-value()` sometimes failing
8
+ * changing all `false` returns into `null` in case of error
9
+ * removing Compass dependency
10
+ * `1.1.0`: adding `walk()` and `tail()`, updated backward loops and fixed broken tests
4
11
  * `1.0.0`: moving code base to Sass 3.3 + adding a Grunt workflow
5
12
  * adding `explode`
6
13
  * making use of `list-separator()` and `set-nth()`
data/README.md ADDED
@@ -0,0 +1,73 @@
1
+ # SassyLists [![Gem Version](https://badge.fury.io/rb/SassyLists.png)](http://badge.fury.io/rb/SassyLists)
2
+
3
+ Here is a [Compass Extension](http://compass-style.org/) providing you all functions you need to manipulate your [Sass](http://sass-lang.com/) lists. See complete documentation [here](http://sassylists.com/).
4
+
5
+ ## How to use it
6
+
7
+ ### Install with Gem
8
+
9
+ 1. `gem install SassyLists`
10
+ 2. Add `require 'SassyLists'` to your `config.rb`
11
+ 3. Import it in your stylesheets with `@import 'SassyLists'`
12
+
13
+ ### Install with [Bower](http://bower.io/ "BOWER: A package manager for the web")
14
+ 1. `bower install SassyLists --save-dev`
15
+ 2. Import the partial in your Sass files
16
+
17
+ ## What's in there?
18
+
19
+ * `sl-chunk()`: returns whether list contains $value
20
+ * `sl-contain()`: returns whether the list contains the value
21
+ * `sl-count-values()`: counts the number of occurrences of each value of list
22
+ * `sl-debug()`: returns list as a string
23
+ * `sl-every()`: returns whether all items from list pass test from given function
24
+ * `sl-explode()`: explodes a string into a list using a string as a delimiter
25
+ * `sl-first()`: returns first item in list
26
+ * `sl-flatten()`: turns multidimensional list into a one-level list
27
+ * `sl-insert-nth()`: inserts value at index
28
+ * `sl-intersection()`: returns a list of shared values across all given lists
29
+ * `sl-is-symmetrical()`: checks if list is symmetrical
30
+ * `sl-last()`: returns last item in list
31
+ * `sl-last-index()`: returns last index of value in list
32
+ * `sl-loop()`: shifts indexes in list
33
+ * `sl-prepend()`: prepends value to list
34
+ * `sl-purge()`: removes all `false` and `null` values from list
35
+ * `sl-random-value()`: returns random value from list
36
+ * `sl-remove()`: removes value in list
37
+ * `sl-remove-duplicates()`: removes duplicate values from list
38
+ * `sl-remove-nth()`: removes value at index
39
+ * `sl-replace()`: replaces value in list
40
+ * `sl-replace-nth()`: replaces value at index
41
+ * `sl-reverse()`: reverses list
42
+ * `sl-shuffle()`: shuffles list
43
+ * `sl-slice()`: slices list
44
+ * `sl-sort()`: sorts list
45
+ * `sl-some()`: returns whether some items from list pass test from given function
46
+ * `sl-sum()`: sums all unitless values in list
47
+ * `sl-tail()`: returns anything but the first element in list
48
+ * `sl-to-map()`: casts list as map using indexes as keys
49
+ * `sl-to-string()`: casts list as string (JS `.join()`)
50
+ * `sl-union()`: returns a list of values from given lists minus duplicates
51
+ * `sl-walk()`: applies a function to every item of list
52
+
53
+ If you feel like an explorer, you can have a look at the code [here](https://github.com/Team-Sass/SassyLists/tree/master/stylesheets).
54
+
55
+ ## Requirements
56
+
57
+ * Sass ~> 3.3.0
58
+ * Compass ~> 1.0.0
59
+
60
+ If you are looking for the last version of SassyLists running on Sass 3.2, install `0.4.9`.
61
+
62
+ Some functions depend on other functions. If you include functions individually, make sure to check for these dependencies in their respective docs.
63
+
64
+ ## Also read
65
+
66
+ * [Official site](http://sassylists.com)
67
+ * [Advanced Sass list functions](http://hugogiraudel.com/2013/08/08/advanced-sass-list-functions/)
68
+ * [Advanced Sass list functions again](http://hugogiraudel.com/2013/10/09/advanced-sass-list-functions-again/)
69
+ * [How I made a Sass debug function](http://hugogiraudel.com/2013/10/21/sass-debug/)
70
+
71
+ ## Credits
72
+
73
+ A million thanks to [Vinay Raghu](http://viii.in/) for making this Compass extension out of my original work and to [Team-Sass](https://github.com/Team-Sass) for their [Compass Extension template](https://github.com/Team-Sass/Compass-Extension-Template).
data/lib/SassyLists.rb CHANGED
@@ -1,14 +1,21 @@
1
- require 'compass'
2
- extension_path = File.expand_path(File.join(File.dirname(__FILE__), ".."))
3
- Compass::Frameworks.register('SassyLists', :path => extension_path)
1
+ extension_path = File.expand_path(File.join(File.dirname(__FILE__), '..'))
2
+ stylesheets_path = File.join(extension_path, 'stylesheets')
3
+
4
+ if (defined? Compass)
5
+ Compass::Frameworks.register('SassyLists', :path => extension_path)
6
+ else
7
+ # compass not found, register on the Sass path via the environment.
8
+ if ENV.has_key?("SASS_PATH")
9
+ ENV["SASS_PATH"] = ENV["SASS_PATH"] + File::PATH_SEPARATOR + stylesheets_path
10
+ else
11
+ ENV["SASS_PATH"] = stylesheets_path
12
+ end
13
+ end
4
14
 
5
15
  # Version is a number. If a version contains alphas, it will be created as a prerelease version
6
16
  # Date is in the form of YYYY-MM-DD
7
17
  module SassyLists
8
- VERSION = "1.1.1"
9
- DATE = "2014-06-28"
18
+ VERSION = "2.0.0"
19
+ DATE = "2014-06-30"
10
20
  end
11
21
 
12
- module Sass::Script::Functions
13
-
14
- end
@@ -1,18 +1,18 @@
1
- // Chunks $list into $size large lists
1
+ // Chunks `$list` into `$size` large lists.
2
2
  //
3
3
  // @ignore Documentation: http://sassylists.com/documentation/#chunk
4
4
  //
5
5
  // @param {List} $list - list to chunk
6
6
  // @param {Number} $size - length of lists
7
7
  //
8
- // @throws $size is not a number for `chunk`.
8
+ // @throws $size is not a number for `sl-chunk`.
9
9
  //
10
- // @return {List | Bool}
10
+ // @return {List | Null}
11
11
 
12
- @function chunk($list, $size) {
12
+ @function sl-chunk($list, $size) {
13
13
  @if type-of($size) != "number" {
14
- @warn "#{$size} is not a number for `chunk`.";
15
- @return false;
14
+ @warn "#{$size} is not a number for `sl-chunk`.";
15
+ @return null;
16
16
  }
17
17
 
18
18
  @if $size >= length($list) {
@@ -1,4 +1,4 @@
1
- // Returns whether $list contains $value
1
+ // Returns whether `$list` contains `$value`.
2
2
  //
3
3
  // @ignore Documentation: http://sassylists.com/documentation/#contain
4
4
  //
@@ -7,12 +7,12 @@
7
7
  //
8
8
  // @return {Bool}
9
9
 
10
- @function contain($list, $value) {
10
+ @function sl-contain($list, $value) {
11
11
  @return not not index($list, $value);
12
12
  }
13
13
 
14
- // @alias contain
14
+ // @alias sl-contain
15
15
 
16
- @function include($list, $value) {
17
- @return contain($list, $value);
16
+ @function sl-include($list, $value) {
17
+ @return sl-contain($list, $value);
18
18
  }
@@ -1,4 +1,4 @@
1
- // Counts the number of occurrences of each value of $list
1
+ // Counts the number of occurrences of each value of `$list`.
2
2
  //
3
3
  // @ignore Documentation: http://sassylists.com/documentation/#count-values
4
4
  //
@@ -6,7 +6,7 @@
6
6
  //
7
7
  // @return {Map} Values mapped to their count
8
8
 
9
- @function count-values($list) {
9
+ @function sl-count-values($list) {
10
10
  $map: ();
11
11
 
12
12
  @each $item in $list {
@@ -1,4 +1,4 @@
1
- // Returns $list as a string
1
+ // Returns `$list` as a string, prettified if `$pre` is set to true.
2
2
  //
3
3
  // @ignore Documentation: http://sassylists.com/documentation/#debug
4
4
  //
@@ -8,7 +8,7 @@
8
8
  //
9
9
  // @return {String}
10
10
 
11
- @function debug($list, $pre: false, $level: 1) {
11
+ @function sl-debug($list, $pre: false, $level: 1) {
12
12
  @if length($list) == 0 {
13
13
  @return "( )";
14
14
  }
@@ -35,7 +35,7 @@
35
35
  @if length($item) > 1 {
36
36
  $result: $result
37
37
  + if($pre, "(list: " + length($item) + ") ", "")
38
- + debug($item, $pre, $level + 1);
38
+ + sl-debug($item, $pre, $level + 1);
39
39
  }
40
40
 
41
41
  @else {
@@ -74,11 +74,11 @@
74
74
  //
75
75
  // @param {List} $list - list
76
76
  //
77
- // @requires {function} debug
77
+ // @requires {function} sl-debug
78
78
 
79
- @mixin debug($list) {
79
+ @mixin sl-debug($list) {
80
80
  body:before {
81
- content: debug($list, true) !important;
81
+ content: sl-debug($list, true) !important;
82
82
 
83
83
  display: block !important;
84
84
  margin: 1em !important;
@@ -0,0 +1,17 @@
1
+ // Tests whether all items from `$list` pass the test implemented by `$function`.
2
+ //
3
+ // @param {List} $list - list to run test against
4
+ // @param {String} $function - function to run against every item from list
5
+ // @param {ArgList} $args - extra arguments to pass to the function
6
+ //
7
+ // @return {Bool}
8
+
9
+ @function sl-every($list, $function, $args...) {
10
+ @each $item in $list {
11
+ @if not call($function, $item, $args...) {
12
+ @return false;
13
+ }
14
+ }
15
+
16
+ @return true;
17
+ }
@@ -1,24 +1,24 @@
1
- // Explode $string into a list using $break as a breaker
1
+ // Explode `$string` into a list using `$delimiter` as a delimiter.
2
2
  //
3
3
  // @ignore Documentation: http://sassylists.com/documentation/#explode
4
4
  //
5
5
  // @param {String} $string - string to explode
6
6
  // @param {String} $separator ('') - string to use as a delimiter
7
7
  //
8
- // @throws $string is not a string for `explode`.
9
- // @throws $delimiter is not a string for `explode`.
8
+ // @throws $string is not a string for `sl-explode`.
9
+ // @throws $delimiter is not a string for `sl-explode`.
10
10
  //
11
- // @return {List | Bool}
11
+ // @return {List | Null}
12
12
 
13
- @function explode($string, $delimiter: '') {
13
+ @function sl-explode($string, $delimiter: '') {
14
14
  @if type-of($string) != "string" {
15
- @warn "`explode` function expecting a string; #{type-of($string)} given.";
16
- @return false;
15
+ @warn "`sl-explode` function expecting a string; #{type-of($string)} given.";
16
+ @return null;
17
17
  }
18
18
 
19
19
  @if type-of($delimiter) != "string" {
20
- @warn "`explode` function expecting a string; #{type-of($delimiter)} given.";
21
- @return false;
20
+ @warn "`sl-explode` function expecting a string; #{type-of($delimiter)} given.";
21
+ @return null;
22
22
  }
23
23
 
24
24
  $result: ();
@@ -28,6 +28,7 @@
28
28
  @for $i from 1 through $length {
29
29
  $result: append($result, str-slice($string, $i, $i));
30
30
  }
31
+
31
32
  @return $result;
32
33
  }
33
34
 
@@ -36,9 +37,11 @@
36
37
 
37
38
  @while $running {
38
39
  $index: str-index($remaining, $delimiter);
40
+
39
41
  @if not $index or $index == 0 {
40
42
  $running: false;
41
43
  }
44
+
42
45
  @else {
43
46
  $slice: str-slice($remaining, 1, $index - 1);
44
47
  $result: append($result, $slice);
@@ -1,4 +1,4 @@
1
- // Returns first element of $list
1
+ // Returns first element of `$list`.
2
2
  //
3
3
  // @ignore Documentation: http://sassylists.com/documentation/#first
4
4
  //
@@ -8,17 +8,17 @@
8
8
  //
9
9
  // @return {*}
10
10
 
11
- @function first($list) {
11
+ @function sl-first($list) {
12
12
  @if length($list) == 0 {
13
13
  @warn "Cannot find first item of empty list.";
14
- @return false;
14
+ @return null;
15
15
  }
16
16
 
17
17
  @return nth($list, 1);
18
18
  }
19
19
 
20
- // @alias first
20
+ // @alias sl-first
21
21
 
22
- @function head($list) {
23
- @return first($list);
22
+ @function sl-head($list) {
23
+ @return sl-first($list);
24
24
  }
@@ -1,4 +1,4 @@
1
- // Turns multidimensional $list into a one-level list
1
+ // Turns multidimensional `$list` into a one-level list.
2
2
  //
3
3
  // @ignore Documentation: http://sassylists.com/documentation.html#flatten
4
4
  //
@@ -6,7 +6,7 @@
6
6
  //
7
7
  // @return {List}
8
8
 
9
- @function flatten($list) {
9
+ @function sl-flatten($list) {
10
10
  $result: ();
11
11
 
12
12
  @if length($list) == 1 {
@@ -15,7 +15,7 @@
15
15
 
16
16
  @each $item in $list {
17
17
  @if length($item) > 1 {
18
- $flatten: flatten($item);
18
+ $flatten: sl-flatten($item);
19
19
  @each $i in $flatten {
20
20
  $result: append($result, $i, list-separator($list));
21
21
  }
@@ -29,8 +29,8 @@
29
29
  @return $result;
30
30
  }
31
31
 
32
- // @alias flatten
32
+ // @alias sl-flatten
33
33
 
34
- @function unfold($list) {
35
- @return flatten($list);
34
+ @function sl-unfold($list) {
35
+ @return sl-flatten($list);
36
36
  }
@@ -1,29 +1,31 @@
1
- // Adds $value at $index in $list
1
+ // Adds `$value` at `$index` in `$list`.
2
2
  //
3
3
  // @ignore Documentation: http://sassylists.com/documentation/#insert-nth
4
4
  //
5
- // @requires is-true
5
+ // @requires sl-is-true
6
6
  //
7
7
  // @param {List} $list - list to update
8
8
  // @param {Number} $index - index to add
9
9
  // @param {*} $value - value to add
10
10
  //
11
- // @throws List index $index is not a number for `insert-nth`.
12
- // @throws List index $index must be a non-zero integer for `insert-nth`.
11
+ // @throws List index $index is not a number for `sl-insert-nth`.
12
+ // @throws List index $index must be a non-zero integer for `sl-insert-nth`.
13
13
  //
14
- // @return {List | Bool}
14
+ // @return {List | Null}
15
+
16
+ @function sl-insert-nth($list, $index, $value) {
17
+ @if sl-missing-dependencies(sl-is-true) == true { @return null; }
15
18
 
16
- @function insert-nth($list, $index, $value) {
17
19
  $length: length($list);
18
20
 
19
21
  @if type-of($index) != number {
20
- @warn "List index #{$index} is not a number for `insert-nth`.";
21
- @return false;
22
+ @warn "List index #{$index} is not a number for `sl-insert-nth`.";
23
+ @return null;
22
24
  }
23
25
 
24
26
  @if $index < 1 {
25
- @warn "List index #{$index} must be a non-zero integer for `insert-nth`.";
26
- @return false;
27
+ @warn "List index #{$index} must be a non-zero integer for `sl-insert-nth`.";
28
+ @return null;
27
29
  }
28
30
 
29
31
  @if $index > $length {
@@ -34,7 +36,7 @@
34
36
 
35
37
  @for $i from 1 through $length {
36
38
  @if $i == $index {
37
- @if is-true($value) {
39
+ @if sl-is-true($value) {
38
40
  $result: append($result, $value, list-separator($list));
39
41
  }
40
42
  }
@@ -1,15 +1,17 @@
1
- // Returns a list of shared value from $list and $lists minus duplicates
1
+ // Returns a list of shared value from `$list` and `$lists` minus duplicates.
2
2
  //
3
3
  // @ignore Documentation: http://sassylists.com/documentation/#intersection
4
4
  //
5
- // @requires remove-duplicates
5
+ // @requires sl-remove-duplicates
6
6
  //
7
7
  // @param {List} $list - first list
8
8
  // @param {ArgList} $lists - other lists
9
9
  //
10
10
  // @return {List}
11
11
 
12
- @function intersection($list, $lists...) {
12
+ @function sl-intersection($list, $lists...) {
13
+ @if sl-missing-dependencies(sl-remove-duplicates) == true { @return null; }
14
+
13
15
  $result: $list;
14
16
 
15
17
  @each $list in $lists {
@@ -24,6 +26,6 @@
24
26
  $result: $temp;
25
27
  }
26
28
 
27
- $result: remove-duplicates($result);
29
+ $result: sl-remove-duplicates($result);
28
30
  @return if(length($result) == 1, nth($result, 1), $result);
29
31
  }
@@ -1,19 +1,21 @@
1
- // Checks whether $list is symmetrical (one-level deep)
1
+ // Checks whether `$list` is symmetrical.
2
2
  //
3
3
  // @ignore Documentation: http://sassylists.com/documentation/#is-symmetrical
4
4
  //
5
- // @requires reverse
5
+ // @requires sl-reverse
6
6
  //
7
7
  // @param {List} $list - list to check
8
8
  //
9
9
  // @return {Bool}
10
10
 
11
- @function is-symmetrical($list) {
12
- @return $list == reverse($list);
11
+ @function sl-is-symmetrical($list) {
12
+ @if sl-missing-dependencies(sl-reverse) == true { @return null; }
13
+
14
+ @return $list == sl-reverse($list);
13
15
  }
14
16
 
15
- // @alias is-symmetrical
17
+ // @alias sl-is-symmetrical
16
18
 
17
- @function is-mirror($list) {
18
- @return is-symmetrical($list);
19
+ @function sl-is-mirror($list) {
20
+ @return sl-is-symmetrical($list);
19
21
  }
@@ -1,13 +1,13 @@
1
- // Returns last index of $value in $list
1
+ // Returns last index of `$value` in `$list`.
2
2
  //
3
3
  // @ignore Documentation: http://sassylists.com/documentation/#last-index
4
4
  //
5
- // @param {List} $list - list to search
6
- // @param {*} $value - value to be searched for
5
+ // @param {List} $list - list to search
6
+ // @param {*} $value - value to be searched for
7
7
  //
8
8
  // @return {Number | Null}
9
9
 
10
- @function last-index($list, $value) {
10
+ @function sl-last-index($list, $value) {
11
11
  $length: length($list);
12
12
 
13
13
  @for $i from $length through 1 {
@@ -1,4 +1,4 @@
1
- // Returns last element of $list
1
+ // Returns last element of `$list`.
2
2
  //
3
3
  // @ignore Documentation: http://sassylists.com/documentation/#last
4
4
  //
@@ -8,10 +8,10 @@
8
8
  //
9
9
  // @return {*}
10
10
 
11
- @function last($list) {
11
+ @function sl-last($list) {
12
12
  @if length($list) == 0 {
13
13
  @warn "Cannot find last item of empty list.";
14
- @return false;
14
+ @return null;
15
15
  }
16
16
 
17
17
  @return nth($list, -1);
@@ -1,4 +1,6 @@
1
- // Shift indexes from $list of $value
1
+ // Shift indexes from `$list` of `$value`.
2
+ //
3
+ // @author Ana Tudor
2
4
  //
3
5
  // @ignore Documentation: http://sassylists.com/documentation/#loop
4
6
  //
@@ -7,12 +9,12 @@
7
9
  //
8
10
  // @throws $value is not a number for `loop`.
9
11
  //
10
- // @return {List | Bool}
12
+ // @return {List | Null}
11
13
 
12
- @function loop($list, $value: 1) {
14
+ @function sl-loop($list, $value: 1) {
13
15
  @if type-of($value) != "number" {
14
- @warn "#{$value} is not a number for `loop`.";
15
- @return false;
16
+ @warn "#{$value} is not a number for `sl-loop`.";
17
+ @return null;
16
18
  }
17
19
 
18
20
  @if length($list) < 2 {
@@ -29,8 +31,8 @@
29
31
  @return $result;
30
32
  }
31
33
 
32
- // @alias shift-indexes
34
+ // @alias sl-loop
33
35
 
34
- @function shift-indexes($list, $value: 1) {
35
- @return loop($list, $value);
36
+ @function sl-shift-indexes($list, $value: 1) {
37
+ @return sl-loop($list, $value);
36
38
  }
@@ -1,16 +1,18 @@
1
- // Adds $value as first index of $list
1
+ // Adds `$value` as first index of `$list`.
2
2
  //
3
3
  // @ignore Documentation: http://sassylists.com/documentation/#prepend
4
4
  //
5
- // @requires is-true
5
+ // @requires sl-is-true
6
6
  //
7
- // @param {List} $list - list to preprend value to
8
- // @param {*} $value - value to prepend to the list
7
+ // @param {List} $list - list to preprend value to
8
+ // @param {*} $value - value to prepend to the list
9
9
  //
10
10
  // @return {List}
11
11
 
12
- @function prepend($list, $value) {
13
- @if is-true($value) {
12
+ @function sl-prepend($list, $value) {
13
+ @if missing-dependencies(sl-is-true) == true { @return null; }
14
+
15
+ @if sl-is-true($value) {
14
16
  @return join($value, $list, list-separator($list));
15
17
  }
16
18
 
@@ -1,18 +1,20 @@
1
- // Removes all false and null values from $list
1
+ // Removes all false and null values from `$list`.
2
2
  //
3
3
  // @ignore Documentation: http://sassylists.com/documentation.html#purge
4
4
  //
5
- // @requires is-true
5
+ // @requires sl-is-true
6
6
  //
7
7
  // @param {List} $list - list to purge
8
8
  //
9
9
  // @return {List}
10
10
 
11
- @function purge($list) {
11
+ @function sl-purge($list) {
12
+ @if sl-missing-dependencies(sl-is-true) == true { @return null; }
13
+
12
14
  $result: ();
13
15
 
14
16
  @each $item in $list {
15
- @if is-true($item) {
17
+ @if sl-is-true($item) {
16
18
  $result: append($result, $item, list-separator($list));
17
19
  }
18
20
  }
@@ -20,8 +22,8 @@
20
22
  @return $result;
21
23
  }
22
24
 
23
- // @alias purge
25
+ // @alias sl-purge
24
26
 
25
- @function clean($list) {
26
- @return purge($list);
27
+ @function sl-clean($list) {
28
+ @return sl-purge($list);
27
29
  }
@@ -1,4 +1,4 @@
1
- // Returns a random value of $list
1
+ // Returns a random value of `$list`.
2
2
  //
3
3
  // @ignore Documentation: http://sassylists.com/documentation.html#random-value
4
4
  //
@@ -8,23 +8,23 @@
8
8
  //
9
9
  // @return {*}
10
10
 
11
- @function random-value($list) {
11
+ @function sl-random-value($list) {
12
12
  @if length($list) == 0 {
13
13
  @warn "Cannot find a random value in an empty list.";
14
- @return false;
14
+ @return null;
15
15
  }
16
16
 
17
- @return nth($list, random(length($list)) + 1);
17
+ @return nth($list, random(length($list)));
18
18
  }
19
19
 
20
- // @alias random-value
20
+ // @alias sl-random-value
21
21
 
22
- @function roll($list) {
23
- @return random-value($list);
22
+ @function sl-roll($list) {
23
+ @return sl-random-value($list);
24
24
  }
25
25
 
26
- // @alias random-value
26
+ // @alias sl-random-value
27
27
 
28
- @function luck($list) {
29
- @return random-value($list);
28
+ @function sl-luck($list) {
29
+ @return sl-random-value($list);
30
30
  }