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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 952173c8584a6003c41afbb6fed489192388cd33
4
- data.tar.gz: 0d041067c287a94e95b37793a937049cf1968dcd
3
+ metadata.gz: 19375472b9eb965ff52981e5638129857a205d50
4
+ data.tar.gz: 04c36cf94f3fd1d87ac14863ee14883e3027de1b
5
5
  SHA512:
6
- metadata.gz: 13356663ebb5fc5153cecb45dfe0222061bcefe27a21ec4c93c9e5abad001dac72f235215c2ec1927690a4e0904952675096661df6e0b49a96793b03e6238f4e
7
- data.tar.gz: 9733023e31a9859ba77b4c4f04e9ff872be83d7cb2c13b4801ecf29c6f705529e7dc4620e10a0a2206075c29b2283794f69ce4a280b8aa78bcf2dbd39d6a1456
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
- hyphens_index = []
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
- while _name.index('-') do
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
- hyphens_index.each do |idx|
69
- _name = _name[0...idx] << '-' << (_name[idx+1..-1] || "")
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
- _name.strip
96
+
97
+ _name[0...-1]
82
98
  end
83
99
  end
84
100
  end
@@ -1,3 +1,3 @@
1
1
  module CapitalizeNames
2
- VERSION = "1.0.5"
2
+ VERSION = "1.0.6"
3
3
  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.5
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: 2016-04-17 00:00:00.000000000 Z
11
+ date: 2017-09-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport