capitalize-names 1.0.5 → 1.0.6

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: 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