mongoid_permalink_extension 0.1.2 → 0.1.3
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f268dde2d70066b5c5a5f073c697471f421ccc8f
|
4
|
+
data.tar.gz: fd67695b3b8dca96e2b3f7b4e4676d2d7f4523cf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eb0fb5d378c5a92be97ac8ea5176d9434da4c519af0f4e4ef733b0dc5a3db2b52c2f38ee746d53c5ba751c4fe8821c74a667fe17331047166be8fb7eab382997
|
7
|
+
data.tar.gz: 3a3e2df2f14e55efa77ad05f2d0d648c9b79e88f387ab6a3f6a7c8b415f5c9fc8381a5c9a388f9a8379c0164805a16e9f6c304819ad98c98f65eb4506404f588
|
@@ -4,28 +4,25 @@ require 'stringex'
|
|
4
4
|
|
5
5
|
module MongoidPermalinkExtension
|
6
6
|
class Permalink
|
7
|
-
|
8
7
|
class << self
|
9
|
-
|
10
|
-
def demongoize value
|
8
|
+
def demongoize(value)
|
11
9
|
value
|
12
10
|
end
|
13
11
|
|
14
|
-
def mongoize
|
12
|
+
def mongoize(value)
|
15
13
|
return if value.nil? # FIXME: this way we can never set the value to nil
|
16
|
-
value.to_s
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
14
|
+
value.to_s
|
15
|
+
.gsub(/\A\s+|\s+\z/, '')
|
16
|
+
.gsub(/([^[:upper:]](?=[[:upper:]]))|([a-z](?=\d+))/, '\1\2-')
|
17
|
+
.gsub(/\//, '-')
|
18
|
+
.gsub(/[-–—]+/, '-')
|
19
|
+
.gsub(/[^\p{Alnum} -]/, '')
|
20
|
+
.gsub(/\s+/, '-')
|
21
|
+
.gsub(/[-]+/, '-')
|
22
|
+
.gsub(/\A\-/, '')
|
23
|
+
.gsub(/\b\w/) { $&.upcase }
|
24
|
+
.to_ascii
|
26
25
|
end
|
27
|
-
|
28
26
|
end
|
29
|
-
|
30
27
|
end
|
31
28
|
end
|
@@ -27,52 +27,69 @@ describe MongoidPermalinkExtension::Permalink do
|
|
27
27
|
it 'converts anything to string' do
|
28
28
|
MongoidPermalinkExtension::Permalink.mongoize(12).must_equal '12'
|
29
29
|
end
|
30
|
+
|
30
31
|
it 'stores transformed string' do
|
31
|
-
MongoidPermalinkExtension::Permalink.mongoize(
|
32
|
+
MongoidPermalinkExtension::Permalink.mongoize('some some').must_be :present?
|
32
33
|
end
|
34
|
+
|
33
35
|
it 'stores nil if nil passed' do
|
34
36
|
MongoidPermalinkExtension::Permalink.mongoize(nil).must_be_nil
|
35
37
|
end
|
38
|
+
|
36
39
|
it 'converts spaces to hyphens' do
|
37
|
-
MongoidPermalinkExtension::Permalink.mongoize(
|
38
|
-
MongoidPermalinkExtension::Permalink.mongoize(
|
40
|
+
MongoidPermalinkExtension::Permalink.mongoize('A B').must_equal 'A-B'
|
41
|
+
MongoidPermalinkExtension::Permalink.mongoize('A B').must_equal 'A-B'
|
42
|
+
end
|
43
|
+
|
44
|
+
it 'strips spaces around the string' do
|
45
|
+
MongoidPermalinkExtension::Permalink.mongoize(' A B ').must_equal 'A-B'
|
39
46
|
end
|
47
|
+
|
40
48
|
it 'converts slashes to hyphens' do
|
41
|
-
MongoidPermalinkExtension::Permalink.mongoize(
|
49
|
+
MongoidPermalinkExtension::Permalink.mongoize('A/B').must_equal 'A-B'
|
42
50
|
end
|
51
|
+
|
43
52
|
it 'converts to camel case' do
|
44
|
-
MongoidPermalinkExtension::Permalink.mongoize(
|
45
|
-
MongoidPermalinkExtension::Permalink.mongoize(
|
53
|
+
MongoidPermalinkExtension::Permalink.mongoize('hello hello').wont_include 'h'
|
54
|
+
MongoidPermalinkExtension::Permalink.mongoize('hello hello').must_equal 'Hello-Hello'
|
46
55
|
end
|
56
|
+
|
47
57
|
it 'adds spaces to camel case' do
|
48
|
-
MongoidPermalinkExtension::Permalink.mongoize(
|
58
|
+
MongoidPermalinkExtension::Permalink.mongoize('CamelCase').must_equal 'Camel-Case'
|
49
59
|
end
|
60
|
+
|
50
61
|
it 'preserves ABC' do
|
51
|
-
MongoidPermalinkExtension::Permalink.mongoize(
|
62
|
+
MongoidPermalinkExtension::Permalink.mongoize('ABC Demo').must_equal 'ABC-Demo'
|
52
63
|
# MongoidPermalinkExtension::Permalink.mongoize("ABCDeMo").must_equal 'ABC-De-Mo'
|
53
64
|
end
|
65
|
+
|
54
66
|
it 'preserves dashes as separators' do
|
55
|
-
MongoidPermalinkExtension::Permalink.mongoize(
|
56
|
-
MongoidPermalinkExtension::Permalink.mongoize(
|
67
|
+
MongoidPermalinkExtension::Permalink.mongoize('Camel-Case').must_equal 'Camel-Case'
|
68
|
+
MongoidPermalinkExtension::Permalink.mongoize('Camel--Case').must_equal 'Camel-Case'
|
57
69
|
end
|
70
|
+
|
58
71
|
it 'converts all dashes to hyphens' do
|
59
|
-
MongoidPermalinkExtension::Permalink.mongoize(
|
60
|
-
MongoidPermalinkExtension::Permalink.mongoize(
|
61
|
-
MongoidPermalinkExtension::Permalink.mongoize(
|
62
|
-
MongoidPermalinkExtension::Permalink.mongoize(
|
72
|
+
MongoidPermalinkExtension::Permalink.mongoize('A–Z').must_equal 'A-Z'
|
73
|
+
MongoidPermalinkExtension::Permalink.mongoize('A----–Z').must_equal 'A-Z'
|
74
|
+
MongoidPermalinkExtension::Permalink.mongoize('A—Z').must_equal 'A-Z'
|
75
|
+
MongoidPermalinkExtension::Permalink.mongoize('A—––––––Z').must_equal 'A-Z'
|
63
76
|
end
|
77
|
+
|
64
78
|
it 'remove non-alphanumeric characters' do
|
65
79
|
%w(?!@#$%^&*()+=.,;<>[]“”).shuffle.each do |i|
|
66
80
|
MongoidPermalinkExtension::Permalink.mongoize(i).wont_include i
|
67
81
|
end
|
68
82
|
end
|
83
|
+
|
69
84
|
it 'does not start with a hyphen' do
|
70
|
-
MongoidPermalinkExtension::Permalink.mongoize(
|
71
|
-
MongoidPermalinkExtension::Permalink.mongoize(
|
85
|
+
MongoidPermalinkExtension::Permalink.mongoize('“Yes” to a Historic Moment').must_equal 'Yes-To-A-Historic-Moment'
|
86
|
+
MongoidPermalinkExtension::Permalink.mongoize('¿Yes?').must_equal 'Yes'
|
72
87
|
end
|
88
|
+
|
73
89
|
it 'preserves accented characters' do
|
74
90
|
MongoidPermalinkExtension::Permalink.mongoize('Bienále Brno Česká republika').must_equal 'Bienale-Brno-Ceska-Republika'
|
75
91
|
end
|
92
|
+
|
76
93
|
it 'produces nice slugs' do
|
77
94
|
MongoidPermalinkExtension::Permalink.mongoize('Future Vocabularies?').must_equal 'Future-Vocabularies'
|
78
95
|
MongoidPermalinkExtension::Permalink.mongoize('2011 space odyssey').must_equal '2011-Space-Odyssey'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mongoid_permalink_extension
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tomas Celizna
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-03-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mongoid
|