agnostic_slugs 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/lib/agnostic_slugs/slug.rb +6 -36
- data/lib/agnostic_slugs/version.rb +1 -1
- data/spec/unit/slug_spec.rb +6 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fa10cf987c7480af0bd58640ea23c4ec2d0bcafd
|
4
|
+
data.tar.gz: 37d67d2dc2f2ebad912e4dfe7cc773f9c5c3b569
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 574973a8d53a4a43c79a241de481073f67ac239c1e1e2db6f8e8e945e42df192ec11a3a34bfcb111576d984efe3548e5727a43e8948bd0257b5b27322fc7974e
|
7
|
+
data.tar.gz: e9d047f189d87ea4556f26dcbbfb76cc48f2723930ae6bc8c5c613066024916c5e0e48d68fdafd9581a68b1feaf3864856c5ef39c33bde9187c7c9226997c345
|
data/CHANGELOG.md
CHANGED
data/lib/agnostic_slugs/slug.rb
CHANGED
@@ -19,9 +19,9 @@ module AgnosticSlugs
|
|
19
19
|
|
20
20
|
def generate
|
21
21
|
result = original
|
22
|
+
result = result.downcase
|
22
23
|
result = replace_accents(result)
|
23
24
|
result = result.gsub(/[\s_\-]+/, '-')
|
24
|
-
result = result.downcase
|
25
25
|
result = result.gsub(/[^a-z0-9\-]/, '')
|
26
26
|
|
27
27
|
# Remove leading and trailing dash
|
@@ -35,43 +35,13 @@ module AgnosticSlugs
|
|
35
35
|
end
|
36
36
|
|
37
37
|
def replace_accents(string)
|
38
|
-
# This was taken
|
38
|
+
# This was originally taken from https://github.com/ericboehs/to_slug
|
39
39
|
# Thanks, ericboehs :)
|
40
40
|
|
41
41
|
# Define which accents map to which ascii characters
|
42
42
|
accents = {
|
43
|
-
|
44
|
-
'
|
45
|
-
'AE' => %w(Æ Ǽ Ǣ),
|
46
|
-
'B' => %w(Ḃ Ɓ Ḅ Ḇ Ƃ Ƅ),
|
47
|
-
'C' => %w(C Ć Ĉ Ċ Č Ƈ Ç Ḉ),
|
48
|
-
'D' => %w(D Ḋ Ɗ Ḍ Ḏ Ḑ Ḓ Ď Đ Ɖ Ƌ),
|
49
|
-
'E' => %w(È É Ê Ẽ Ē Ĕ Ė Ë Ẻ Ě Ȅ Ȇ Ẹ Ȩ Ę Ḙ Ḛ Ề Ế Ễ Ể Ḕ Ḗ Ệ Ḝ Ǝ Ɛ),
|
50
|
-
'F' => %w(Ḟ Ƒ),
|
51
|
-
'G' => %w(Ǵ Ĝ Ḡ Ğ Ġ Ǧ Ɠ Ģ Ǥ),
|
52
|
-
'H' => %w(Ĥ Ḣ Ḧ Ȟ Ƕ Ḥ Ḩ Ḫ Ħ),
|
53
|
-
'I' => %w(Ì Í Î Ĩ Ī Ĭ İ Ï Ỉ Ǐ Ị Į Ȉ Ȋ Ḭ Ɨ Ḯ),
|
54
|
-
'IJ' => %w(IJ),
|
55
|
-
'J' => %w(Ĵ),
|
56
|
-
'K' => %w(Ḱ Ǩ Ḵ Ƙ Ḳ Ķ),
|
57
|
-
'L' => %w(Ĺ Ḻ Ḷ Ļ Ḽ Ľ Ŀ Ł Ḹ),
|
58
|
-
'M' => %w(Ḿ Ṁ Ṃ Ɯ),
|
59
|
-
'N' => %w(Ǹ Ń Ñ Ṅ Ň Ŋ Ɲ Ṇ Ņ Ṋ Ṉ Ƞ),
|
60
|
-
'O' => %w(Ò Ó Ô Õ Ō Ŏ Ȯ Ö Ỏ Ő Ǒ Ȍ Ȏ Ơ Ǫ Ọ Ɵ Ø Ồ Ố Ỗ Ổ Ȱ Ȫ Ȭ Ṍ Ṏ Ṑ Ṓ Ờ Ớ Ỡ Ở Ợ Ǭ Ộ Ǿ Ɔ),
|
61
|
-
'OE' => %w(Œ),
|
62
|
-
'P' => %w(Ṕ Ṗ Ƥ),
|
63
|
-
'R' => %w(Ŕ Ṙ Ř Ȑ Ȓ Ṛ Ŗ Ṟ Ṝ Ʀ),
|
64
|
-
'S' => %w(Ś Ŝ Ṡ Š Ṣ Ș Ş Ṥ Ṧ Ṩ),
|
65
|
-
'T' => %w(Ṫ Ť Ƭ Ʈ Ṭ Ț Ţ Ṱ Ṯ Ŧ),
|
66
|
-
'U' => %w(Ù Ú Û Ũ Ū Ŭ Ü Ủ Ů Ű Ǔ Ȕ Ȗ Ư Ụ Ṳ Ų Ṷ Ṵ Ṹ Ṻ Ǜ Ǘ Ǖ Ǚ Ừ Ứ Ữ Ử Ự),
|
67
|
-
'V' => %w(Ṽ Ṿ Ʋ),
|
68
|
-
'W' => %w(Ẁ Ẃ Ŵ Ẇ Ẅ Ẉ),
|
69
|
-
'X' => %w(Ẋ Ẍ),
|
70
|
-
'Y' => %w(Ỳ Ý Ŷ Ỹ Ȳ Ẏ Ÿ Ỷ Ƴ Ỵ),
|
71
|
-
'Z' => %w(Ź Ẑ Ż Ž Ȥ Ẓ Ẕ Ƶ),
|
72
|
-
|
73
|
-
# Lowercase
|
74
|
-
'a' => %w(à á â ã ā ă ȧ ä ả å ǎ ȁ ȃ ą ạ ḁ ẚ ầ ấ ẫ ẩ ằ ắ ẵ ẳ ǡ ǟ ǻ ậ ặ),
|
43
|
+
'aa' => %w(å),
|
44
|
+
'a' => %w(à á â ã ā ă ȧ ä ả ǎ ȁ ȃ ą ạ ḁ ẚ ầ ấ ẫ ẩ ằ ắ ẵ ẳ ǡ ǟ ǻ ậ ặ),
|
75
45
|
'ae' => %w(æ ǽ ǣ),
|
76
46
|
'b' => %w(ḃ ɓ ḅ ḇ ƀ ƃ ƅ),
|
77
47
|
'c' => %w(ć ĉ ċ č ƈ ç ḉ),
|
@@ -87,8 +57,8 @@ module AgnosticSlugs
|
|
87
57
|
'l' => %w(ĺ ḻ ḷ ļ ḽ ľ ŀ ł ƚ ḹ ȴ),
|
88
58
|
'm' => %w(ḿ ṁ ṃ ɯ),
|
89
59
|
'n' => %w(ǹ ń ñ ṅ ň ŋ ɲ ṇ ņ ṋ ṉ ʼn ȵ),
|
90
|
-
'o' => %w(ò ó ô õ ō ŏ ȯ ö ỏ ő ǒ ȍ ȏ ơ ǫ ọ ɵ
|
91
|
-
'oe' => %w(œ),
|
60
|
+
'o' => %w(ò ó ô õ ō ŏ ȯ ö ỏ ő ǒ ȍ ȏ ơ ǫ ọ ɵ ồ ố ỗ ổ ȱ ȫ ȭ ṍ ṏ ṑ ṓ ờ ớ ỡ ở ợ ǭ ộ ǿ ɔ),
|
61
|
+
'oe' => %w(œ ø),
|
92
62
|
'p' => %w(ṕ ṗ ƥ),
|
93
63
|
'r' => %w(ŕ ṙ ř ȑ ȓ ṛ ŗ ṟ ṝ),
|
94
64
|
's' => %w(ś ŝ ṡ š ṣ ș ş ṥ ṧ ṩ ß ſ ẛ),
|
data/spec/unit/slug_spec.rb
CHANGED
@@ -13,7 +13,7 @@ module AgnosticSlugs
|
|
13
13
|
end
|
14
14
|
|
15
15
|
describe 'accented input' do
|
16
|
-
let(:input) { '
|
16
|
+
let(:input) { 'Hellő Wárld' }
|
17
17
|
it { should eq('hello-warld') }
|
18
18
|
end
|
19
19
|
|
@@ -32,6 +32,11 @@ module AgnosticSlugs
|
|
32
32
|
let(:input) { ' Hello world ' }
|
33
33
|
it { should eq('hello-world') }
|
34
34
|
end
|
35
|
+
|
36
|
+
describe 'Danish chars' do
|
37
|
+
let(:input) { 'Rør på næse' }
|
38
|
+
it { should eq('roer-paa-naese') }
|
39
|
+
end
|
35
40
|
end
|
36
41
|
|
37
42
|
describe '#next' do
|