capitalize-names 1.0.5 → 1.0.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/capitalize_names/capitalizer.rb +26 -10
- data/lib/capitalize_names/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 19375472b9eb965ff52981e5638129857a205d50
|
4
|
+
data.tar.gz: 04c36cf94f3fd1d87ac14863ee14883e3027de1b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: de9593fe3c2e9f90e1d0124d979cf9409b6980b3f817765ae71b2eaeb7829a2bec6f2ff9f7827480b2c9428e14e50250cd61ec7ead340f52c192f6d4847fffb1
|
7
|
+
data.tar.gz: fe77a40c783cb837fba98d0e68358bb10afb42a8470793e6b2802352d46b8e8d0eb7012b8e806158919deb81acc9313f202606005a2a26e8454860d2e7e7aa35
|
@@ -2,6 +2,8 @@ module CapitalizeNames
|
|
2
2
|
class Capitalizer
|
3
3
|
attr_accessor :name
|
4
4
|
|
5
|
+
HYPHEN = /(\s*-\s*)/
|
6
|
+
|
5
7
|
MC = /^Mc(\w)(?=\w)/i
|
6
8
|
MAC = /^Mac(\w)(?=\w)/i
|
7
9
|
O_APOSTROPHE = /^O'(\w)(?=\w)/i
|
@@ -48,12 +50,20 @@ module CapitalizeNames
|
|
48
50
|
def _capitalize
|
49
51
|
_name = name
|
50
52
|
|
51
|
-
|
53
|
+
hyphens = []
|
54
|
+
|
55
|
+
while (match = _name.match(HYPHEN)) do
|
56
|
+
_start = match.begin(1)
|
57
|
+
_end = match.end(1)
|
58
|
+
_value = match[1]
|
59
|
+
|
60
|
+
if _start == 0
|
61
|
+
_name = _name[_end..-1]
|
62
|
+
else
|
63
|
+
_name = _name[0..._start] << ' ' << _name[_end..-1]
|
64
|
+
end
|
52
65
|
|
53
|
-
|
54
|
-
index = _name.index('-')
|
55
|
-
hyphens_index << index
|
56
|
-
_name = _name[0...index] << ' ' << _name[index+1..-1]
|
66
|
+
hyphens << [_start, _end, _value]
|
57
67
|
end
|
58
68
|
|
59
69
|
_name = _name.split.map{ |w|
|
@@ -64,13 +74,18 @@ module CapitalizeNames
|
|
64
74
|
.gsub(O_APOSTROPHE) { "O'#{$1.upcase}" }
|
65
75
|
}
|
66
76
|
|
67
|
-
_name = _name.join(
|
68
|
-
|
69
|
-
|
77
|
+
_name = _name.join(" ")
|
78
|
+
|
79
|
+
hyphens.reverse.each do |_start, _end, _value|
|
80
|
+
if _start == 0
|
81
|
+
_name = _value << _name
|
82
|
+
else
|
83
|
+
_name = _name[0..._start] << _value << (_name[_start+1..-1] || "")
|
84
|
+
end
|
70
85
|
end
|
71
86
|
|
72
87
|
_name = _name.gsub("Van ", "van ").gsub("De ", "de ").gsub("Dit ", "dit ")
|
73
|
-
_name <<
|
88
|
+
_name << " "
|
74
89
|
|
75
90
|
(CapitalizeNames::SURNAMES + CapitalizeNames::SUFFIXES).each do |surname_or_suffix|
|
76
91
|
position = _name.downcase.index(surname_or_suffix.downcase)
|
@@ -78,7 +93,8 @@ module CapitalizeNames
|
|
78
93
|
_name = _name[0...position] << surname_or_suffix << _name[position+surname_or_suffix.length..-1]
|
79
94
|
end
|
80
95
|
end
|
81
|
-
|
96
|
+
|
97
|
+
_name[0...-1]
|
82
98
|
end
|
83
99
|
end
|
84
100
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capitalize-names
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kyle Tate
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-09-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|