SassyStrings 0.0.1 → 1.0.0
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.
- checksums.yaml +7 -0
- data/CHANGELOG.md +2 -1
- data/lib/SassyStrings.rb +14 -14
- data/stylesheets/functions/_levenshtein.scss +98 -98
- metadata +14 -20
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 1858e81abf387817256c495624957d607f23ff37
|
4
|
+
data.tar.gz: 02bde1b71b1f9e115966456f75ca0790f19c96a2
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: f8aa02689622cc9b8ed86ce1c77a527af828a95a4610919311b90eb72b3fea01490caaeff2fcddbc624ef9a82a1aec802c9d9c95b5a7fa730f5e672111e14369
|
7
|
+
data.tar.gz: 9336e6f541dbcfd7e549a8aa298c8bad6e1cfbecc99f584bd31e59d513793ee80fae5f313a6c5bd7e89f99ea4a01b72c447b69620eca31da3f1ae2fe27095eef
|
data/CHANGELOG.md
CHANGED
data/lib/SassyStrings.rb
CHANGED
@@ -1,14 +1,14 @@
|
|
1
|
-
require 'compass'
|
2
|
-
|
3
|
-
extension_path = File.expand_path(File.join(File.dirname(__FILE__), ".."))
|
4
|
-
Compass::Frameworks.register("SassyStrings", :path => "#{File.dirname(__FILE__)}/..")
|
5
|
-
|
6
|
-
module SassyStrings
|
7
|
-
VERSION = "0.0
|
8
|
-
DATE = "2014-
|
9
|
-
end
|
10
|
-
|
11
|
-
# Sassy String Functions
|
12
|
-
module Sass::Script::Functions
|
13
|
-
|
14
|
-
end
|
1
|
+
require 'compass'
|
2
|
+
|
3
|
+
extension_path = File.expand_path(File.join(File.dirname(__FILE__), ".."))
|
4
|
+
Compass::Frameworks.register("SassyStrings", :path => "#{File.dirname(__FILE__)}/..")
|
5
|
+
|
6
|
+
module SassyStrings
|
7
|
+
VERSION = "1.0.0"
|
8
|
+
DATE = "2014-03-22"
|
9
|
+
end
|
10
|
+
|
11
|
+
# Sassy String Functions
|
12
|
+
module Sass::Script::Functions
|
13
|
+
|
14
|
+
end
|
@@ -1,99 +1,99 @@
|
|
1
|
-
// Calculating Levenshtein distance between two strings
|
2
|
-
// ----------------------------------------------------------------------------------------------------
|
3
|
-
// @param $a: first string
|
4
|
-
// @param $b: second string
|
5
|
-
// ----------------------------------------------------------------------------------------------------
|
6
|
-
// @return [number]
|
7
|
-
|
8
|
-
@function levenshtein($a, $b) {
|
9
|
-
@if type-of($a) != "string" {
|
10
|
-
@warn "`str-count` function expecting a string for $a; #{type-of($a)} given.";
|
11
|
-
@return false;
|
12
|
-
}
|
13
|
-
|
14
|
-
@if type-of($b) != "string" {
|
15
|
-
@warn "`str-count` function expecting a string for $b; #{type-of($b)} given.";
|
16
|
-
@return false;
|
17
|
-
}
|
18
|
-
|
19
|
-
$a: to-lower-case($a);
|
20
|
-
$b: to-lower-case($b);
|
21
|
-
|
22
|
-
$n: str-length($a);
|
23
|
-
$m: str-length($b);
|
24
|
-
|
25
|
-
$matrix: _matrix($n + 1, $m + 1);
|
26
|
-
$cost: _matrix($n, $m);
|
27
|
-
|
28
|
-
@if $a == $b { @return 0; }
|
29
|
-
@if $n == 0 { @return $m; }
|
30
|
-
@if $m == 0 { @return $n; }
|
31
|
-
|
32
|
-
@for $i from 0 through $n {
|
33
|
-
@for $j from 0 through $m {
|
34
|
-
$v: if($i == 0, $j, if($j == 0, $i, 0));
|
35
|
-
@if $v != 0 {
|
36
|
-
$matrix: _set-matrix($matrix, $i + 1, $j + 1, $v);
|
37
|
-
}
|
38
|
-
@if $i != 0 and $j != 0 {
|
39
|
-
$v: if(str-slice($a, $i, $i) == str-slice($b, $j, $j), 0, 1);
|
40
|
-
@if $v != 0 {
|
41
|
-
$cost: _set-matrix($cost, $i, $j, $v);
|
42
|
-
}
|
43
|
-
}
|
44
|
-
}
|
45
|
-
}
|
46
|
-
|
47
|
-
@for $i from 2 through length($matrix) {
|
48
|
-
@for $j from 2 through length(nth($matrix, $i)) {
|
49
|
-
$matrix: _set-matrix($matrix, $i, $j, min(_e($matrix, $i - 1, $j) + 1, _e($matrix, $i, $j - 1) + 1, _e($matrix, $i - 1, $j - 1) + _e($cost, $i - 1, $j - 1)));
|
50
|
-
}
|
51
|
-
}
|
52
|
-
|
53
|
-
@return _e($matrix, length($matrix), length(nth($matrix, 1)));
|
54
|
-
}
|
55
|
-
|
56
|
-
|
57
|
-
// Helper to target an element in a matrix
|
58
|
-
// ----------------------------------------------------------------------------------------------------
|
59
|
-
// @param $m: matrix
|
60
|
-
// @param $x: x coord
|
61
|
-
// @param $y: y coord
|
62
|
-
// ----------------------------------------------------------------------------------------------------
|
63
|
-
// @return [literal]
|
64
|
-
|
65
|
-
@function _e($m, $x, $y) {
|
66
|
-
@return nth(nth($m, $x), $y);
|
67
|
-
}
|
68
|
-
|
69
|
-
// Helper instanciation a matrix of $x by $y
|
70
|
-
// ----------------------------------------------------------------------------------------------------
|
71
|
-
// @param $x: number of cols
|
72
|
-
// @param $y: number of lines
|
73
|
-
// ----------------------------------------------------------------------------------------------------
|
74
|
-
// @return [list]
|
75
|
-
|
76
|
-
@function _matrix($x, $y) {
|
77
|
-
$matrix: ();
|
78
|
-
@for $i from 1 through $x {
|
79
|
-
$tmp: ();
|
80
|
-
@for $y from 1 through $y {
|
81
|
-
$tmp: append($tmp, 0)
|
82
|
-
}
|
83
|
-
$matrix: append($matrix, $tmp);
|
84
|
-
}
|
85
|
-
@return $matrix;
|
86
|
-
}
|
87
|
-
|
88
|
-
// Helper assigning $value at $matrix[$x, $y]
|
89
|
-
// ----------------------------------------------------------------------------------------------------
|
90
|
-
// @param $matrix: matrix to update
|
91
|
-
// @param $x: x coord
|
92
|
-
// @param $y: y coord
|
93
|
-
// @param $value: value to assign at $matrix[$x, $y]
|
94
|
-
// ----------------------------------------------------------------------------------------------------
|
95
|
-
// @return [list]
|
96
|
-
|
97
|
-
@function _set-matrix($matrix, $x, $y, $value) {
|
98
|
-
@return set-nth($matrix, $x, set-nth(nth($matrix, $x), $y, $value));
|
1
|
+
// Calculating Levenshtein distance between two strings
|
2
|
+
// ----------------------------------------------------------------------------------------------------
|
3
|
+
// @param $a: first string
|
4
|
+
// @param $b: second string
|
5
|
+
// ----------------------------------------------------------------------------------------------------
|
6
|
+
// @return [number]
|
7
|
+
|
8
|
+
@function levenshtein($a, $b) {
|
9
|
+
@if type-of($a) != "string" {
|
10
|
+
@warn "`str-count` function expecting a string for $a; #{type-of($a)} given.";
|
11
|
+
@return false;
|
12
|
+
}
|
13
|
+
|
14
|
+
@if type-of($b) != "string" {
|
15
|
+
@warn "`str-count` function expecting a string for $b; #{type-of($b)} given.";
|
16
|
+
@return false;
|
17
|
+
}
|
18
|
+
|
19
|
+
$a: to-lower-case($a);
|
20
|
+
$b: to-lower-case($b);
|
21
|
+
|
22
|
+
$n: str-length($a);
|
23
|
+
$m: str-length($b);
|
24
|
+
|
25
|
+
$matrix: _matrix($n + 1, $m + 1);
|
26
|
+
$cost: _matrix($n, $m);
|
27
|
+
|
28
|
+
@if $a == $b { @return 0; }
|
29
|
+
@if $n == 0 { @return $m; }
|
30
|
+
@if $m == 0 { @return $n; }
|
31
|
+
|
32
|
+
@for $i from 0 through $n {
|
33
|
+
@for $j from 0 through $m {
|
34
|
+
$v: if($i == 0, $j, if($j == 0, $i, 0));
|
35
|
+
@if $v != 0 {
|
36
|
+
$matrix: _set-matrix($matrix, $i + 1, $j + 1, $v);
|
37
|
+
}
|
38
|
+
@if $i != 0 and $j != 0 {
|
39
|
+
$v: if(str-slice($a, $i, $i) == str-slice($b, $j, $j), 0, 1);
|
40
|
+
@if $v != 0 {
|
41
|
+
$cost: _set-matrix($cost, $i, $j, $v);
|
42
|
+
}
|
43
|
+
}
|
44
|
+
}
|
45
|
+
}
|
46
|
+
|
47
|
+
@for $i from 2 through length($matrix) {
|
48
|
+
@for $j from 2 through length(nth($matrix, $i)) {
|
49
|
+
$matrix: _set-matrix($matrix, $i, $j, min(_e($matrix, $i - 1, $j) + 1, _e($matrix, $i, $j - 1) + 1, _e($matrix, $i - 1, $j - 1) + _e($cost, $i - 1, $j - 1)));
|
50
|
+
}
|
51
|
+
}
|
52
|
+
|
53
|
+
@return _e($matrix, length($matrix), length(nth($matrix, 1)));
|
54
|
+
}
|
55
|
+
|
56
|
+
|
57
|
+
// Helper to target an element in a matrix
|
58
|
+
// ----------------------------------------------------------------------------------------------------
|
59
|
+
// @param $m: matrix
|
60
|
+
// @param $x: x coord
|
61
|
+
// @param $y: y coord
|
62
|
+
// ----------------------------------------------------------------------------------------------------
|
63
|
+
// @return [literal]
|
64
|
+
|
65
|
+
@function _e($m, $x, $y) {
|
66
|
+
@return nth(nth($m, $x), $y);
|
67
|
+
}
|
68
|
+
|
69
|
+
// Helper instanciation a matrix of $x by $y
|
70
|
+
// ----------------------------------------------------------------------------------------------------
|
71
|
+
// @param $x: number of cols
|
72
|
+
// @param $y: number of lines
|
73
|
+
// ----------------------------------------------------------------------------------------------------
|
74
|
+
// @return [list]
|
75
|
+
|
76
|
+
@function _matrix($x, $y) {
|
77
|
+
$matrix: ();
|
78
|
+
@for $i from 1 through $x {
|
79
|
+
$tmp: ();
|
80
|
+
@for $y from 1 through $y {
|
81
|
+
$tmp: append($tmp, 0)
|
82
|
+
}
|
83
|
+
$matrix: append($matrix, $tmp);
|
84
|
+
}
|
85
|
+
@return $matrix;
|
86
|
+
}
|
87
|
+
|
88
|
+
// Helper assigning $value at $matrix[$x, $y]
|
89
|
+
// ----------------------------------------------------------------------------------------------------
|
90
|
+
// @param $matrix: matrix to update
|
91
|
+
// @param $x: x coord
|
92
|
+
// @param $y: y coord
|
93
|
+
// @param $value: value to assign at $matrix[$x, $y]
|
94
|
+
// ----------------------------------------------------------------------------------------------------
|
95
|
+
// @return [list]
|
96
|
+
|
97
|
+
@function _set-matrix($matrix, $x, $y, $value) {
|
98
|
+
@return set-nth($matrix, $x, set-nth(nth($matrix, $x), $y, $value));
|
99
99
|
}
|
metadata
CHANGED
@@ -1,48 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: SassyStrings
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
5
|
-
prerelease:
|
4
|
+
version: 1.0.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Hugo Giraudel
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2014-
|
11
|
+
date: 2014-03-22 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: sass
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '3.3'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - '>='
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: '3.3'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: compass
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - '>='
|
36
32
|
- !ruby/object:Gem::Version
|
37
|
-
version: 1.0.0
|
33
|
+
version: 1.0.0.alpha.18
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - '>='
|
44
39
|
- !ruby/object:Gem::Version
|
45
|
-
version: 1.0.0
|
40
|
+
version: 1.0.0.alpha.18
|
46
41
|
description: A collection of Sass functions to manipulate strings.
|
47
42
|
email:
|
48
43
|
- hugo.giraudel@gmail.com
|
@@ -53,6 +48,7 @@ files:
|
|
53
48
|
- README.md
|
54
49
|
- CHANGELOG.md
|
55
50
|
- lib/SassyStrings.rb
|
51
|
+
- stylesheets/_SassyStrings.scss
|
56
52
|
- stylesheets/functions/_char-at.scss
|
57
53
|
- stylesheets/functions/_levenshtein.scss
|
58
54
|
- stylesheets/functions/_str-count.scss
|
@@ -73,29 +69,27 @@ files:
|
|
73
69
|
- stylesheets/functions/_str-ucfirst.scss
|
74
70
|
- stylesheets/functions/_str-word-count.scss
|
75
71
|
- stylesheets/functions/_stringify.scss
|
76
|
-
- stylesheets/_SassyStrings.scss
|
77
72
|
homepage: https://github.com/HugoGiraudel/SassyStrings
|
78
73
|
licenses: []
|
74
|
+
metadata: {}
|
79
75
|
post_install_message:
|
80
76
|
rdoc_options: []
|
81
77
|
require_paths:
|
82
78
|
- lib
|
83
79
|
required_ruby_version: !ruby/object:Gem::Requirement
|
84
|
-
none: false
|
85
80
|
requirements:
|
86
|
-
- -
|
81
|
+
- - '>='
|
87
82
|
- !ruby/object:Gem::Version
|
88
83
|
version: '0'
|
89
84
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
90
|
-
none: false
|
91
85
|
requirements:
|
92
|
-
- -
|
86
|
+
- - '>='
|
93
87
|
- !ruby/object:Gem::Version
|
94
88
|
version: '1.2'
|
95
89
|
requirements: []
|
96
90
|
rubyforge_project: SassyStrings
|
97
|
-
rubygems_version:
|
91
|
+
rubygems_version: 2.0.3
|
98
92
|
signing_key:
|
99
|
-
specification_version:
|
93
|
+
specification_version: 4
|
100
94
|
summary: Advanced String handling for Sass
|
101
95
|
test_files: []
|