SassyStrings 1.1.3 → 1.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG.md +1 -0
- data/README.md +4 -4
- data/lib/SassyStrings.rb +2 -2
- data/stylesheets/private/_all.scss +2 -2
- data/stylesheets/private/_char-at.scss +7 -15
- data/stylesheets/private/_levenshtein.scss +63 -84
- data/stylesheets/private/_str-count.scss +15 -23
- data/stylesheets/private/_str-ends-with.scss +6 -14
- data/stylesheets/private/_str-explode.scss +28 -35
- data/stylesheets/private/_str-implode.scss +10 -18
- data/stylesheets/private/_str-last-index.scss +6 -14
- data/stylesheets/private/_str-lcfirst.scss +5 -13
- data/stylesheets/private/_str-pad.scss +10 -19
- data/stylesheets/private/_str-printf.scss +9 -18
- data/stylesheets/private/_str-repeat.scss +6 -14
- data/stylesheets/private/_str-replace.scss +11 -29
- data/stylesheets/private/_str-reverse.scss +7 -15
- data/stylesheets/private/_str-rot.scss +9 -18
- data/stylesheets/private/_str-shuffle.scss +17 -31
- data/stylesheets/private/_str-starts-with.scss +5 -13
- data/stylesheets/private/_str-trim.scss +5 -13
- data/stylesheets/private/_str-ucfirst.scss +5 -13
- data/stylesheets/private/_str-word-count.scss +6 -14
- data/stylesheets/private/_stringify.scss +13 -22
- data/stylesheets/public/_all.scss +3 -2
- data/stylesheets/public/_char-at.scss +12 -28
- data/stylesheets/public/_levenshtein.scss +3 -18
- data/stylesheets/public/_str-count.scss +8 -23
- data/stylesheets/public/_str-ends-with.scss +2 -17
- data/stylesheets/public/_str-explode.scss +3 -18
- data/stylesheets/public/_str-implode.scss +5 -17
- data/stylesheets/public/_str-last-index.scss +3 -18
- data/stylesheets/public/_str-lcfirst.scss +2 -15
- data/stylesheets/public/_str-pad.scss +8 -22
- data/stylesheets/public/_str-printf.scss +2 -16
- data/stylesheets/public/_str-repeat.scss +3 -18
- data/stylesheets/public/_str-replace.scss +7 -30
- data/stylesheets/public/_str-reverse.scss +2 -15
- data/stylesheets/public/_str-rot.scss +3 -18
- data/stylesheets/public/_str-shuffle.scss +6 -17
- data/stylesheets/public/_str-starts-with.scss +2 -17
- data/stylesheets/public/_str-trim.scss +2 -15
- data/stylesheets/public/_str-ucfirst.scss +2 -15
- data/stylesheets/public/_str-word-count.scss +6 -19
- data/stylesheets/public/_stringify.scss +2 -14
- metadata +45 -39
- checksums.yaml +0 -7
@@ -1,15 +1,7 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
* ---
|
6
|
-
* @since 1.2.0
|
7
|
-
* ---
|
8
|
-
* @param {string} $string - string to lower the first character
|
9
|
-
* ---
|
10
|
-
* @return {string}
|
11
|
-
*/
|
12
|
-
|
1
|
+
/// Lower case first character of `$string`.
|
2
|
+
/// @since 1.2.0
|
3
|
+
/// @param {String} $string - string to lower the first character
|
4
|
+
/// @return {String}
|
13
5
|
@function _ss-str-lcfirst($string) {
|
14
6
|
@return to-lower-case(str-slice($string, 1, 1)) + str-slice($string, 2);
|
15
|
-
}
|
7
|
+
}
|
@@ -1,20 +1,11 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
* @param {string} $string - string to pad
|
9
|
-
* @param {number} $length - number of characters to go for in returned string
|
10
|
-
* @param {string} $pad - string to use to pad $string
|
11
|
-
* @param {string} $direction - direction left or right for padding
|
12
|
-
* ---
|
13
|
-
* @return {string}
|
14
|
-
*/
|
15
|
-
|
1
|
+
/// Pad `$string` from `$direction` with `$pad` to reach `$length` characters.
|
2
|
+
/// @since 1.2.0
|
3
|
+
/// @param {String} $string - string to pad
|
4
|
+
/// @param {Number} $length - number of characters to go for in returned string
|
5
|
+
/// @param {String} $pad (" ") - string to use to pad `$string`
|
6
|
+
/// @param {String} $direction (left) - direction left or right for padding
|
7
|
+
/// @return {String}
|
16
8
|
@function _ss-str-pad($string, $length, $pad: " ", $direction: left) {
|
17
|
-
$direction: if(index(left right, $direction), $direction, left);
|
18
9
|
$new-string: $string;
|
19
10
|
$index: 1;
|
20
11
|
|
@@ -22,15 +13,15 @@
|
|
22
13
|
@while str-length($new-string) < $length {
|
23
14
|
$remains: $length - str-length($new-string);
|
24
15
|
$pad: if($remains < str-length($pad), str-slice($pad, 1, $remains), $pad);
|
16
|
+
|
25
17
|
@if $direction == left {
|
26
18
|
$new-string: str-insert($new-string, $pad, $index);
|
27
19
|
$index: $index + str-length($pad);
|
28
|
-
}
|
29
|
-
@else {
|
20
|
+
} @else {
|
30
21
|
$new-string: $new-string + $pad;
|
31
22
|
}
|
32
23
|
}
|
33
24
|
}
|
34
25
|
|
35
26
|
@return $new-string;
|
36
|
-
}
|
27
|
+
}
|
@@ -1,26 +1,17 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
* @since 1.2.0
|
7
|
-
* ---
|
8
|
-
* @param {string} $string - string to check
|
9
|
-
* @param {arglist} $elements - strings to use for replacements in %s
|
10
|
-
* ---
|
11
|
-
* @return {string}
|
12
|
-
*/
|
13
|
-
|
1
|
+
/// Replace occurrences of `%s` in `$string` by `$elements`.
|
2
|
+
/// @since 1.2.0
|
3
|
+
/// @param {String} $string - string to check
|
4
|
+
/// @param {Arglist} $elements - strings to use for replacements in `%s`
|
5
|
+
/// @return {String}
|
14
6
|
@function _ss-str-printf($string, $elements...) {
|
15
|
-
$breaker:
|
7
|
+
$breaker: "%s";
|
16
8
|
$result: $string;
|
17
9
|
|
18
|
-
@
|
10
|
+
@each $element in $elements {
|
19
11
|
$index: str-index($result, $breaker);
|
20
12
|
@if $index {
|
21
|
-
$result: str-slice($result, 1, $index - 1) + _ss-stringify(
|
22
|
-
}
|
23
|
-
@else {
|
13
|
+
$result: str-slice($result, 1, $index - 1) + _ss-stringify($element) + str-slice($result, $index + str-length($breaker));
|
14
|
+
} @else {
|
24
15
|
@return $result;
|
25
16
|
}
|
26
17
|
}
|
@@ -1,16 +1,8 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
* @since 1.2.0
|
7
|
-
* ---
|
8
|
-
* @param {string} $string - string to repeat
|
9
|
-
* @param {number} $times - number of times to repeat $string
|
10
|
-
* ---
|
11
|
-
* @return {string|false}
|
12
|
-
*/
|
13
|
-
|
1
|
+
/// Repeat `$string` `$times` times.
|
2
|
+
/// @since 1.2.0
|
3
|
+
/// @param {String} $string - string to repeat
|
4
|
+
/// @param {Number} $times - number of times to repeat $string
|
5
|
+
/// @return {String}
|
14
6
|
@function _ss-str-repeat($string, $times) {
|
15
7
|
$result: "";
|
16
8
|
|
@@ -19,4 +11,4 @@
|
|
19
11
|
}
|
20
12
|
|
21
13
|
@return $result;
|
22
|
-
}
|
14
|
+
}
|
@@ -1,33 +1,15 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
* ---
|
13
|
-
* @return {string}
|
14
|
-
*/
|
15
|
-
|
16
|
-
@function _ss-str-replace($string, $old, $new: '', $case-sensitive: true) {
|
17
|
-
$index: if(not $case-sensitive, str-index(to-lower-case($string), to-lower-case($old)), str-index($string, $old));
|
18
|
-
|
19
|
-
@if $index and $new != $old {
|
20
|
-
$result: if($index != 1, quote(str-slice($string, 1, $index - 1)), '');
|
21
|
-
|
22
|
-
@for $i from $index through str-length($string) {
|
23
|
-
@if $i < $index or $i >= $index + str-length($old) {
|
24
|
-
$result: $result + str-slice($string, $i, $i);
|
25
|
-
}
|
26
|
-
}
|
27
|
-
|
28
|
-
@return quote(_ss-str-replace(str-insert($result, $new, $index), $old, $new, $case-sensitive));
|
1
|
+
/// Replace `$search` with `$replace` in `$string`.
|
2
|
+
/// @since 1.2.0
|
3
|
+
/// @param {String} $string - Initial string
|
4
|
+
/// @param {String} $search - Substring to replace
|
5
|
+
/// @param {String} $replace ("") - New value
|
6
|
+
/// @return {String} - Updated string
|
7
|
+
@function _ss-str-replace($string, $search, $replace: "") {
|
8
|
+
$index: str-index($string, $search);
|
9
|
+
|
10
|
+
@if $index {
|
11
|
+
@return str-slice($string, 1, $index - 1) + $replace + _ss-str-replace(str-slice($string, $index + str-length($search)), $search, $replace);
|
29
12
|
}
|
30
13
|
|
31
14
|
@return $string;
|
32
15
|
}
|
33
|
-
|
@@ -1,21 +1,13 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
* ---
|
6
|
-
* @since 1.2.0
|
7
|
-
* ---
|
8
|
-
* @param {string} $string - string to reverse
|
9
|
-
* ---
|
10
|
-
* @return {string}
|
11
|
-
*/
|
12
|
-
|
1
|
+
/// Reverse `$string`.
|
2
|
+
/// @since 1.2.0
|
3
|
+
/// @param {String} $string - string to reverse
|
4
|
+
/// @return {String}
|
13
5
|
@function _ss-str-reverse($string) {
|
14
6
|
$result: "";
|
15
7
|
|
16
|
-
@for $i from str-length($string)
|
17
|
-
$result: $result + str-slice($string,
|
8
|
+
@for $i from str-length($string) through 1 {
|
9
|
+
$result: $result + str-slice($string, $i, $i);
|
18
10
|
}
|
19
11
|
|
20
12
|
@return $result;
|
21
|
-
}
|
13
|
+
}
|
@@ -1,28 +1,19 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
* @since 1.2.0
|
7
|
-
* ---
|
8
|
-
* @param {string} $string - string to rotate
|
9
|
-
* @param {number} $rot - number of positions to switch in alphabet
|
10
|
-
* ---
|
11
|
-
* @return {string}
|
12
|
-
*/
|
13
|
-
|
1
|
+
/// Rotate all characters from the alphabet in `$string` by `$rot` positions.
|
2
|
+
/// @since 1.2.0
|
3
|
+
/// @param {String} $string - string to rotate
|
4
|
+
/// @param {Number} $rot (13) - number of positions to switch in alphabet
|
5
|
+
/// @return {String}
|
14
6
|
@function _ss-str-rot($string, $rot: 13) {
|
15
7
|
$alphabet: a b c d e f g h i j k l m n o p q r s t u v w x y z;
|
16
8
|
$result: "";
|
17
|
-
$rot: if(type-of($rot) == "number", floor($rot), 13);
|
18
9
|
|
19
10
|
@for $i from 1 through str-length($string) {
|
20
11
|
$char: str-slice($string, $i, $i);
|
21
12
|
$index: index($alphabet, to-lower-case($char));
|
22
13
|
$is-caps: $index and (index($alphabet, to-lower-case($char)) != index($alphabet, $char));
|
23
|
-
$new-char: if($index,
|
24
|
-
if($index + $rot > length($alphabet),
|
25
|
-
nth($alphabet, $index + $rot - length($alphabet)),
|
14
|
+
$new-char: if($index,
|
15
|
+
if($index + $rot > length($alphabet),
|
16
|
+
nth($alphabet, $index + $rot - length($alphabet)),
|
26
17
|
nth($alphabet, $index + $rot)
|
27
18
|
),
|
28
19
|
$char
|
@@ -36,4 +27,4 @@
|
|
36
27
|
}
|
37
28
|
|
38
29
|
@return $result;
|
39
|
-
}
|
30
|
+
}
|
@@ -1,36 +1,22 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
* ---
|
6
|
-
* @since 1.2.0
|
7
|
-
* ---
|
8
|
-
* @param {string} $string - string to shuffle
|
9
|
-
* ---
|
10
|
-
* @return {string}
|
11
|
-
*/
|
12
|
-
|
1
|
+
/// Shuffle characters from `$string`.
|
2
|
+
/// @since 1.2.0
|
3
|
+
/// @param {String} $string - string to shuffle
|
4
|
+
/// @return {String}
|
13
5
|
@function _ss-str-shuffle($string) {
|
14
|
-
|
6
|
+
@return str-implode(_ss-shuffle(str-explode($string)));
|
15
7
|
}
|
16
8
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
* ---
|
22
|
-
* @param {list} $list - shuffle a list
|
23
|
-
* ---
|
24
|
-
* @return {list}
|
25
|
-
*/
|
26
|
-
|
9
|
+
/// Shuffle a list
|
10
|
+
/// @access private
|
11
|
+
/// @param {List} $list - shuffle a list
|
12
|
+
/// @return {List}
|
27
13
|
@function _ss-shuffle($list) {
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
14
|
+
@for $i from length($list) through 1 {
|
15
|
+
$j: random(length($list) - 1) + 1;
|
16
|
+
$tmp: nth($list, $i);
|
17
|
+
$list: set-nth($list, $i, nth($list, $j));
|
18
|
+
$list: set-nth($list, $j, $tmp);
|
19
|
+
}
|
20
|
+
|
21
|
+
@return $list;
|
36
22
|
}
|
@@ -1,16 +1,8 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
* @since 1.2.0
|
7
|
-
* ---
|
8
|
-
* @param {string} $string - string to check
|
9
|
-
* @param {string} $needle - substring to check
|
10
|
-
* ---
|
11
|
-
* @return {bool}
|
12
|
-
*/
|
13
|
-
|
1
|
+
/// Check whether `$string` stars with `$needle`.
|
2
|
+
/// @since 1.2.0
|
3
|
+
/// @param {String} $string - string to check
|
4
|
+
/// @param {String} $needle - substring to check
|
5
|
+
/// @return {Bool}
|
14
6
|
@function _ss-str-starts-with($string, $needle) {
|
15
7
|
@return str-slice($string, 1, str-length($needle)) == $needle;
|
16
8
|
}
|
@@ -1,15 +1,7 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
* ---
|
6
|
-
* @since 1.2.0
|
7
|
-
* ---
|
8
|
-
* @param {string} $string - string
|
9
|
-
* ---
|
10
|
-
* @return {string}
|
11
|
-
*/
|
12
|
-
|
1
|
+
/// Remove all trailing and leading whitespaces from `$string`.
|
2
|
+
/// @since 1.2.0
|
3
|
+
/// @param {String} $string - string
|
4
|
+
/// @return {String}
|
13
5
|
@function _ss-str-trim($string) {
|
14
6
|
$start: 1;
|
15
7
|
$end: str-length($string);
|
@@ -28,4 +20,4 @@
|
|
28
20
|
}
|
29
21
|
|
30
22
|
@return str-slice($string, $start, $end);
|
31
|
-
}
|
23
|
+
}
|
@@ -1,15 +1,7 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
* ---
|
6
|
-
* @since 1.2.0
|
7
|
-
* ---
|
8
|
-
* @param {string} $string - string for capitalization
|
9
|
-
* ---
|
10
|
-
* @return {string}
|
11
|
-
*/
|
12
|
-
|
1
|
+
/// Capitalize first letter from `$string`.
|
2
|
+
/// @since 1.2.0
|
3
|
+
/// @param {String} $string - string for capitalization
|
4
|
+
/// @return {String}
|
13
5
|
@function _ss-str-ucfirst($string) {
|
14
6
|
@return to-upper-case(str-slice($string, 1, 1)) + str-slice($string, 2);
|
15
|
-
}
|
7
|
+
}
|
@@ -1,17 +1,9 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
* ---
|
6
|
-
* @since 1.2.0
|
7
|
-
* ---
|
8
|
-
* @param {string} $string - string to check
|
9
|
-
* ---
|
10
|
-
* @return {string|false}
|
11
|
-
*/
|
12
|
-
|
1
|
+
/// Count number of words in `$string`.
|
2
|
+
/// @since 1.2.0
|
3
|
+
/// @param {String} $string - string to check
|
4
|
+
/// @return {String}
|
13
5
|
@function _ss-str-word-count($string) {
|
14
|
-
@if $string ==
|
6
|
+
@if $string == "" {
|
15
7
|
@return 0;
|
16
8
|
}
|
17
9
|
|
@@ -28,4 +20,4 @@
|
|
28
20
|
}
|
29
21
|
|
30
22
|
@return length(append($words, $string));
|
31
|
-
}
|
23
|
+
}
|
@@ -1,26 +1,17 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
*
|
4
|
-
|
5
|
-
* ---
|
6
|
-
* @since 1.2.0
|
7
|
-
* ---
|
8
|
-
* @param {literal} $literal: number to cast to string
|
9
|
-
* ---
|
10
|
-
* @return {string}
|
11
|
-
*/
|
12
|
-
|
1
|
+
/// Cast `$literal` to string.
|
2
|
+
/// @since 1.2.0
|
3
|
+
/// @param {*} `$literal` - number to cast to string
|
4
|
+
/// @return {String}
|
13
5
|
@function _ss-stringify($literal) {
|
14
|
-
|
6
|
+
$result: "";
|
15
7
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
}
|
8
|
+
@if length($literal) == 1 {
|
9
|
+
$result: $literal + unquote("");
|
10
|
+
} @else {
|
11
|
+
@each $item in $literal {
|
12
|
+
$result: $result + stringify($item);
|
22
13
|
}
|
14
|
+
}
|
23
15
|
|
24
|
-
|
25
|
-
|
26
|
-
}
|
16
|
+
@return quote($result);
|
17
|
+
}
|
@@ -1,6 +1,7 @@
|
|
1
1
|
//* ----------------------------------------------------- */
|
2
|
-
// Public files for use in your project
|
2
|
+
// Public files for use in your project
|
3
3
|
//* ----------------------------------------------------- */
|
4
|
+
|
4
5
|
@import "char-at";
|
5
6
|
@import "levenshtein";
|
6
7
|
@import "str-count";
|
@@ -20,4 +21,4 @@
|
|
20
21
|
@import "str-trim";
|
21
22
|
@import "str-ucfirst";
|
22
23
|
@import "str-word-count";
|
23
|
-
@import "stringify";
|
24
|
+
@import "stringify";
|