SassyStrings 1.1.3 → 1.1.4
Sign up to get free protection for your applications and to get access to all the features.
- 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";
|