capitalize-names 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 8d8bf1fb33010a509e0d33e3c25aab5545b87764
4
+ data.tar.gz: d6495ea1a2a33d6f9d9a3a92e16efe7720b55c45
5
+ SHA512:
6
+ metadata.gz: e0aeedeafc880a29dcbadceb01098eaf3e305540a31d13fd865bb120216a32553426c85b2aa5e6802a67f08edf0cedba0a6cd30d69ce162d82ca7c6aaedddc55
7
+ data.tar.gz: b74f0915f961174721d54bd0580b9fa1ea7fbd0b8de55399ef6a50fb6b6e5c72cfa2557cfdceddc35e3f8bb24423271d73bd9083733c1d9c401f61e581ec0de9
@@ -0,0 +1,20 @@
1
+ #based on http://dzone.com/snippets/capitalize-proper-names
2
+ require 'capitalize_names/errors'
3
+ require 'capitalize_names/capitalizer'
4
+ require 'capitalize_names/suffixes'
5
+ require 'capitalize_names/surnames'
6
+ require 'active_support/all'
7
+
8
+ module CapitalizeNames
9
+
10
+ class << self
11
+
12
+ def capitalize!(name)
13
+ Capitalizer.new(name).capitalize!
14
+ end
15
+
16
+ def capitalize(name)
17
+ Capitalizer.new(name).capitalize
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,83 @@
1
+ module CapitalizeNames
2
+ class Capitalizer
3
+ attr_accessor :name
4
+
5
+ def initialize(name)
6
+ @name = name
7
+ end
8
+
9
+ def capitalize!
10
+ can_process?
11
+ _capitalize
12
+ end
13
+
14
+ def capitalize
15
+ begin
16
+ capitalize!
17
+ rescue *CapitalizeNames::Errors.all_exceptions
18
+ name
19
+ end
20
+ end
21
+
22
+ private
23
+ def can_process?
24
+ raise CapitalizeNames::Errors::InvalidName, "Cannot capitalize nil" unless name
25
+ true
26
+ end
27
+
28
+ def _capitalize
29
+ nm = name.mb_chars
30
+ mc = /^Mc(\w)(?=\w)/i
31
+ mac = /^Mac(\w)(?=\w)/i
32
+ oap = /^O'(\w)(?=\w)/i
33
+ hyphens_index = []
34
+ while nm.index('-') do
35
+ index = nm.index('-')
36
+ hyphens_index << index
37
+ nm = nm[0...index] + ' ' + nm[index+1..-1]
38
+ end
39
+
40
+ nm = nm.split.map{|w| w.capitalize}.map{ |w|
41
+ begin
42
+ w.gsub(mc, "Mc" + w[2].upcase)
43
+ rescue
44
+ w
45
+ end
46
+ }.map{|w|
47
+ begin
48
+ w.gsub(mac, "Mac" + w[3].upcase)
49
+ rescue
50
+ w
51
+ end
52
+ }.map{|w|
53
+ begin
54
+ w.gsub(oap, "O'" + w[2].upcase)
55
+ rescue
56
+ w
57
+ end
58
+ }
59
+
60
+ nm = nm.join(' ')
61
+ hyphens_index.each do |index|
62
+ nm = nm[0...index] + '-' + nm[index+1..-1]
63
+ end
64
+
65
+ nm = nm.gsub("Van ", "van ").gsub("De ", "de ").gsub("Dit ", "dit ")
66
+ nm += ' '
67
+
68
+ (CapitalizeNames::SURNAMES + CapitalizeNames::SUFFIXES).each do |surname|
69
+ pos = nm.downcase.index(surname.downcase)
70
+ if pos
71
+ # surname/suffix must be:
72
+ # 1. at start of name or after a space or a -
73
+ # -and-
74
+ # 2. followed by the end of string or a space or a -
75
+ if ( ((pos == 0) or (pos > 0 and (nm[pos-1] == ' ' or nm[pos-1] == '-'))) and ((nm.length == pos+surname.length) or (nm[pos+surname.length] == ' ') or (nm[pos+surname.length] == '-')) )
76
+ nm = nm[0...pos] + surname + nm[pos+surname.length..-1]
77
+ end
78
+ end
79
+ end
80
+ nm.strip
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,13 @@
1
+ module CapitalizeNames
2
+ module Errors
3
+ class << self
4
+ def all_exceptions
5
+ self.constants
6
+ .map { |c| self.const_get(c) }
7
+ .select{ |c| c < Exception }
8
+ end
9
+ end
10
+
11
+ class InvalidName < Exception; end;
12
+ end
13
+ end
@@ -0,0 +1,22 @@
1
+ module CapitalizeNames
2
+ SUFFIXES = [
3
+ "II",
4
+ "(II)",
5
+ "III",
6
+ "(III)",
7
+ "IV",
8
+ "(IV)",
9
+ "VI",
10
+ "(VI)",
11
+ "VII",
12
+ "(VII)",
13
+ "2nd",
14
+ "(2nd)",
15
+ "3rd",
16
+ "(3rd)",
17
+ "4th",
18
+ "(4th)",
19
+ "5th",
20
+ "(5th)"
21
+ ]
22
+ end
@@ -0,0 +1,590 @@
1
+ module CapitalizeNames
2
+ SURNAMES = [
3
+ "ApShaw",
4
+ "d'Albini",
5
+ "d'Aubigney",
6
+ "d'Autry",
7
+ "d'Entremont",
8
+ "d'Hurst",
9
+ "D'ovidio",
10
+ "DaSilva",
11
+ "DeAnda",
12
+ "deAnnethe",
13
+ "deAubigne",
14
+ "deAubigny",
15
+ "DeBardelaben",
16
+ "DeBardeleben",
17
+ "DeBaugh",
18
+ "deBeauford",
19
+ "DeBerry",
20
+ "deBethune",
21
+ "DeBetuile",
22
+ "DeBoard",
23
+ "DeBoer",
24
+ "DeBohun",
25
+ "DeBord",
26
+ "DeBose",
27
+ "DeBrouwer",
28
+ "DeBroux",
29
+ "DeBruhl",
30
+ "deBruijn",
31
+ "deBrus",
32
+ "deBruse",
33
+ "deBrusse",
34
+ "DeBruyne",
35
+ "DeBusk",
36
+ "DeCamp",
37
+ "deCastilla",
38
+ "DeCello",
39
+ "deClare",
40
+ "DeClark",
41
+ "DeClerck",
42
+ "DeCoste",
43
+ "deCote",
44
+ "DeCoudres",
45
+ "DeCoursey",
46
+ "DeCredico",
47
+ "deCuire",
48
+ "DeCuyre",
49
+ "DeDominicios",
50
+ "DeDuyster",
51
+ "DeDuytscher",
52
+ "DeDuytser",
53
+ "deFiennes",
54
+ "DeFord",
55
+ "DeForest",
56
+ "DeFrance",
57
+ "DeFriece",
58
+ "DeGarmo",
59
+ "deGraaff",
60
+ "DeGraff",
61
+ "DeGraffenreid",
62
+ "DeGraw",
63
+ "DeGrenier",
64
+ "DeGroats",
65
+ "DeGroft",
66
+ "DeGrote",
67
+ "DeHaan",
68
+ "DeHaas",
69
+ "DeHaddeclive",
70
+ "deHannethe",
71
+ "DeHatclyf",
72
+ "DeHaven",
73
+ "DeHeer",
74
+ "DeJager",
75
+ "DeJarnette",
76
+ "DeJean",
77
+ "DeJong",
78
+ "deJonge",
79
+ "deKemmeter",
80
+ "deKirketon",
81
+ "DeKroon",
82
+ "deKype",
83
+ "del-Rosario",
84
+ "dela Chamotte",
85
+ "DeLa Cuadra",
86
+ "DeLa Force",
87
+ "dela Fountaine",
88
+ "dela Place",
89
+ "DeLa Ward",
90
+ "DeLaci",
91
+ "DeLacy",
92
+ "DeLaet",
93
+ "DeLalonde",
94
+ "DelAmarre",
95
+ "DeLancey",
96
+ "DeLascy",
97
+ "DelAshmutt",
98
+ "DeLassy",
99
+ "DeLattre",
100
+ "DeLaughter",
101
+ "DeLay",
102
+ "deLessine",
103
+ "DelGado",
104
+ "DelGaudio",
105
+ "DeLiberti",
106
+ "DeLoache",
107
+ "DeLoatch",
108
+ "DeLoch",
109
+ "DeLockwood",
110
+ "DeLong",
111
+ "DeLozier",
112
+ "DeLuca",
113
+ "DeLucenay",
114
+ "deLucy",
115
+ "DeMars",
116
+ "DeMartino",
117
+ "deMaule",
118
+ "DeMello",
119
+ "DeMinck",
120
+ "DeMink",
121
+ "DeMoree",
122
+ "DeMoss",
123
+ "DeMott",
124
+ "DeMuynck",
125
+ "deNiet",
126
+ "DeNise",
127
+ "DeNure",
128
+ "DePalma",
129
+ "DePasquale",
130
+ "dePender",
131
+ "dePercy",
132
+ "DePoe",
133
+ "DePriest",
134
+ "DePu",
135
+ "DePui",
136
+ "DePuis",
137
+ "DeReeper",
138
+ "deRochette",
139
+ "deRose",
140
+ "DeRossett",
141
+ "DeRover",
142
+ "deRuggele",
143
+ "deRuggle",
144
+ "DeRuyter",
145
+ "deSaint-Sauveur",
146
+ "DeSantis",
147
+ "desCuirs",
148
+ "DeSentis",
149
+ "DeShane",
150
+ "DeSilva",
151
+ "DesJardins",
152
+ "DesMarest",
153
+ "deSoleure",
154
+ "DeSoto",
155
+ "DeSpain",
156
+ "DeStefano",
157
+ "deSwaert",
158
+ "deSwart",
159
+ "DeVall",
160
+ "DeVane",
161
+ "DeVasher",
162
+ "DeVasier",
163
+ "DeVaughan",
164
+ "DeVaughn",
165
+ "DeVault",
166
+ "DeVeau",
167
+ "DeVeault",
168
+ "deVilleneuve",
169
+ "DeVilliers",
170
+ "DeVinney",
171
+ "DeVito",
172
+ "deVogel",
173
+ "DeVolder",
174
+ "DeVolld",
175
+ "DeVore",
176
+ "deVos",
177
+ "deVries",
178
+ "DeWall",
179
+ "DeWaller",
180
+ "DeWalt",
181
+ "deWashington",
182
+ "deWerly",
183
+ "deWessyngton",
184
+ "DeWet",
185
+ "deWinter",
186
+ "DeWitt",
187
+ "DeWolf",
188
+ "DeWolfe",
189
+ "DeWolff",
190
+ "DeWoody",
191
+ "DeYager",
192
+ "DeYarmett",
193
+ "DeYoung",
194
+ "DiCicco",
195
+ "DiCredico",
196
+ "DiFillippi",
197
+ "DiGiacomo",
198
+ "DiMarco",
199
+ "DiMeo",
200
+ "DiMonte",
201
+ "DiNonno",
202
+ "DiPietro",
203
+ "diPilato",
204
+ "DiPrima",
205
+ "DiSalvo",
206
+ "du Bosc",
207
+ "du Hurst",
208
+ "DuFort",
209
+ "DuMars",
210
+ "DuPre",
211
+ "DuPue",
212
+ "DuPuy",
213
+ "FitzUryan",
214
+ "kummel",
215
+ "LaBarge",
216
+ "LaBarr",
217
+ "LaBauve",
218
+ "LaBean",
219
+ "LaBelle",
220
+ "LaBerteaux",
221
+ "LaBine",
222
+ "LaBonte",
223
+ "LaBorde",
224
+ "LaBounty",
225
+ "LaBranche",
226
+ "LaBrash",
227
+ "LaCaille",
228
+ "LaCasse",
229
+ "LaChapelle",
230
+ "LaClair",
231
+ "LaComb",
232
+ "LaCoste",
233
+ "LaCount",
234
+ "LaCour",
235
+ "LaCroix",
236
+ "LaFarlett",
237
+ "LaFarlette",
238
+ "LaFerry",
239
+ "LaFlamme",
240
+ "LaFollette",
241
+ "LaForge",
242
+ "LaFortune",
243
+ "LaFoy",
244
+ "LaFramboise",
245
+ "LaFrance",
246
+ "LaFuze",
247
+ "LaGioia",
248
+ "LaGrone",
249
+ "LaLiberte",
250
+ "LaLonde",
251
+ "LaLone",
252
+ "LaMaster",
253
+ "LaMay",
254
+ "LaMere",
255
+ "LaMont",
256
+ "LaMotte",
257
+ "LaPeer",
258
+ "LaPierre",
259
+ "LaPlante",
260
+ "LaPoint",
261
+ "LaPointe",
262
+ "LaPorte",
263
+ "LaPrade",
264
+ "LaRocca",
265
+ "LaRochelle",
266
+ "LaRose",
267
+ "LaRue",
268
+ "LaRussa",
269
+ "LaVallee",
270
+ "LaVaque",
271
+ "LaVeau",
272
+ "LeBleu",
273
+ "LeBoeuf",
274
+ "LeBoiteaux",
275
+ "LeBoyteulx",
276
+ "LeCheminant",
277
+ "LeClair",
278
+ "LeClerc",
279
+ "LeCompte",
280
+ "LeCroy",
281
+ "LeDuc",
282
+ "LeFevbre",
283
+ "LeFever",
284
+ "LeFevre",
285
+ "LeFlore",
286
+ "LeGette",
287
+ "LeGrand",
288
+ "LeGrave",
289
+ "LeGro",
290
+ "LeGros",
291
+ "LeJeune",
292
+ "LeMaistre",
293
+ "LeMaitre",
294
+ "LeMaster",
295
+ "LeMesurier",
296
+ "LeMieux",
297
+ "LeMoe",
298
+ "LeMoigne",
299
+ "LeMoine",
300
+ "LeNeve",
301
+ "LePage",
302
+ "LeQuire",
303
+ "LeQuyer",
304
+ "LeRou",
305
+ "LeRoy",
306
+ "LeSuer",
307
+ "LeSueur",
308
+ "LeTardif",
309
+ "LeVally",
310
+ "LeVert",
311
+ "LoMonaco",
312
+ "Macabe",
313
+ "Macaluso",
314
+ "MacaTasney",
315
+ "Macaulay",
316
+ "Macchitelli",
317
+ "Maccoone",
318
+ "Maccurry",
319
+ "Macdermattroe",
320
+ "Macdiarmada",
321
+ "Macelvaine",
322
+ "Macey",
323
+ "Macgraugh",
324
+ "Machan",
325
+ "Machann",
326
+ "Machum",
327
+ "Maciejewski",
328
+ "Maciel",
329
+ "Mackaben",
330
+ "Mackall",
331
+ "Mackartee",
332
+ "Mackay",
333
+ "Macken",
334
+ "Mackert",
335
+ "Mackey",
336
+ "Mackie",
337
+ "Mackin",
338
+ "Mackins",
339
+ "Macklin",
340
+ "Macko",
341
+ "Macksey",
342
+ "Mackwilliams",
343
+ "Maclean",
344
+ "Maclinden",
345
+ "Macomb",
346
+ "Macomber",
347
+ "Macon",
348
+ "Macoombs",
349
+ "Macraw",
350
+ "Macumber",
351
+ "Macurdy",
352
+ "Macwilliams",
353
+ "MaGuinness",
354
+ "MakCubyn",
355
+ "MakCumby",
356
+ "Mcelvany",
357
+ "Mcsherry",
358
+ "Op den Dyck",
359
+ "Op den Graeff",
360
+ "regory",
361
+ "Schweißguth",
362
+ "StElmo",
363
+ "StGelais",
364
+ "StJacques",
365
+ "te Boveldt",
366
+ "VanAernam",
367
+ "VanAken",
368
+ "VanAlstine",
369
+ "VanAmersfoort",
370
+ "VanAntwerp",
371
+ "VanArlem",
372
+ "VanArnam",
373
+ "VanArnem",
374
+ "VanArnhem",
375
+ "VanArnon",
376
+ "VanArsdale",
377
+ "VanArsdalen",
378
+ "VanArsdol",
379
+ "vanAssema",
380
+ "vanAsten",
381
+ "VanAuken",
382
+ "VanAwman",
383
+ "VanBaucom",
384
+ "VanBebber",
385
+ "VanBeber",
386
+ "VanBenschoten",
387
+ "VanBibber",
388
+ "VanBilliard",
389
+ "vanBlare",
390
+ "vanBlaricom",
391
+ "VanBuren",
392
+ "VanBuskirk",
393
+ "VanCamp",
394
+ "VanCampen",
395
+ "VanCleave",
396
+ "VanCleef",
397
+ "VanCleve",
398
+ "VanCouwenhoven",
399
+ "VanCovenhoven",
400
+ "VanCowenhoven",
401
+ "VanCuren",
402
+ "VanDalsem",
403
+ "VanDam",
404
+ "VanDe Poel",
405
+ "vanden Dijkgraaf",
406
+ "vanden Kommer",
407
+ "VanDer Aar",
408
+ "vander Gouwe",
409
+ "VanDer Honing",
410
+ "VanDer Hooning",
411
+ "vander Horst",
412
+ "vander Kroft",
413
+ "vander Krogt",
414
+ "VanDer Meer",
415
+ "vander Meulen",
416
+ "vander Putte",
417
+ "vander Schooren",
418
+ "VanDer Veen",
419
+ "VanDer Ven",
420
+ "VanDer Wal",
421
+ "VanDer Weide",
422
+ "VanDer Willigen",
423
+ "vander Wulp",
424
+ "vander Zanden",
425
+ "vander Zwan",
426
+ "VanDer Zweep",
427
+ "VanDeren",
428
+ "VanDerlaan",
429
+ "VanDerveer",
430
+ "VanderWoude",
431
+ "VanDeursen",
432
+ "VanDeusen",
433
+ "vanDijk",
434
+ "VanDoren",
435
+ "VanDorn",
436
+ "VanDort",
437
+ "VanDruff",
438
+ "VanDryer",
439
+ "VanDusen",
440
+ "VanDuzee",
441
+ "VanDuzen",
442
+ "VanDuzer",
443
+ "VanDyck",
444
+ "VanDyke",
445
+ "VanEman",
446
+ "VanEmmen",
447
+ "vanEmmerik",
448
+ "VanEngen",
449
+ "vanErp",
450
+ "vanEssen",
451
+ "VanFleet",
452
+ "VanGalder",
453
+ "VanGelder",
454
+ "vanGerrevink",
455
+ "VanGog",
456
+ "vanGogh",
457
+ "VanGorder",
458
+ "VanGordon",
459
+ "VanGroningen",
460
+ "VanGuilder",
461
+ "VanGundy",
462
+ "VanHaaften",
463
+ "VanHaute",
464
+ "VanHees",
465
+ "vanHeugten",
466
+ "VanHise",
467
+ "VanHoeck",
468
+ "VanHoek",
469
+ "VanHook",
470
+ "vanHoorn",
471
+ "VanHoornbeeck",
472
+ "VanHoose",
473
+ "VanHooser",
474
+ "VanHorn",
475
+ "VanHorne",
476
+ "VanHouten",
477
+ "VanHoye",
478
+ "VanHuijstee",
479
+ "VanHuss",
480
+ "VanImmon",
481
+ "VanKersschaever",
482
+ "VanKeuren",
483
+ "VanKleeck",
484
+ "VanKoughnet",
485
+ "VanKouwenhoven",
486
+ "VanKuykendaal",
487
+ "vanLeeuwen",
488
+ "vanLent",
489
+ "vanLet",
490
+ "VanLeuven",
491
+ "vanLingen",
492
+ "VanLoozen",
493
+ "VanLopik",
494
+ "VanLuven",
495
+ "vanMaasdijk",
496
+ "VanMele",
497
+ "VanMeter",
498
+ "vanMoorsel",
499
+ "VanMoorst",
500
+ "VanMossevelde",
501
+ "VanNaarden",
502
+ "VanNamen",
503
+ "VanNemon",
504
+ "VanNess",
505
+ "VanNest",
506
+ "VanNimmen",
507
+ "vanNobelen",
508
+ "VanNorman",
509
+ "VanNormon",
510
+ "VanNostrunt",
511
+ "VanNote",
512
+ "VanOker",
513
+ "vanOosten",
514
+ "VanOrden",
515
+ "VanOrder",
516
+ "VanOrma",
517
+ "VanOrman",
518
+ "VanOrnum",
519
+ "VanOstrander",
520
+ "VanOvermeire",
521
+ "VanPelt",
522
+ "VanPool",
523
+ "VanPoole",
524
+ "VanPoorvliet",
525
+ "VanPutten",
526
+ "vanRee",
527
+ "VanRhijn",
528
+ "vanRijswijk",
529
+ "VanRotmer",
530
+ "VanSchaick",
531
+ "vanSchelt",
532
+ "VanSchoik",
533
+ "VanSchoonhoven",
534
+ "VanSciver",
535
+ "VanScoy",
536
+ "VanScoyoc",
537
+ "vanSeters",
538
+ "VanSickle",
539
+ "VanSky",
540
+ "VanSnellenberg",
541
+ "vanStaveren",
542
+ "VanStraten",
543
+ "VanSuijdam",
544
+ "VanTassel",
545
+ "VanTassell",
546
+ "VanTessel",
547
+ "VanTexel",
548
+ "VanTuyl",
549
+ "VanValckenburgh",
550
+ "vanValen",
551
+ "VanValkenburg",
552
+ "VanVelsor",
553
+ "VanVelzor",
554
+ "VanVlack",
555
+ "VanVleck",
556
+ "VanVleckeren",
557
+ "VanWaard",
558
+ "VanWart",
559
+ "VanWassenhove",
560
+ "VanWinkle",
561
+ "VanWoggelum",
562
+ "vanWordragen",
563
+ "VanWormer",
564
+ "VanZuidam",
565
+ "VanZuijdam",
566
+ "VonAdenbach",
567
+ "vonAllmen",
568
+ "vonBardeleben",
569
+ "vonBerckefeldt",
570
+ "VonBergen",
571
+ "vonBreyman",
572
+ "VonCannon",
573
+ "vonFreymann",
574
+ "vonHeimburg",
575
+ "VonHuben",
576
+ "vonKramer",
577
+ "vonKruchenburg",
578
+ "vonPostel",
579
+ "VonRohr",
580
+ "VonRohrbach",
581
+ "VonSass",
582
+ "VonSasse",
583
+ "vonSchlotte",
584
+ "VonSchneider",
585
+ "VonSeldern",
586
+ "VonSpringer",
587
+ "VonVeyelmann",
588
+ "VonZweidorff"
589
+ ]
590
+ end
metadata ADDED
@@ -0,0 +1,62 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: capitalize-names
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Kyle Tate
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-05-30 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: activesupport
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '3'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '3'
27
+ description: 'A simple gem to capitalize names, based off of: http://dzone.com/snippets/capitalize-proper-names'
28
+ email: kbt.tate@gmail.com
29
+ executables: []
30
+ extensions: []
31
+ extra_rdoc_files: []
32
+ files:
33
+ - lib/capitalize_names.rb
34
+ - lib/capitalize_names/capitalizer.rb
35
+ - lib/capitalize_names/errors.rb
36
+ - lib/capitalize_names/suffixes.rb
37
+ - lib/capitalize_names/surnames.rb
38
+ homepage: http://github.com/infiton/capitalize-names
39
+ licenses:
40
+ - MIT
41
+ metadata: {}
42
+ post_install_message:
43
+ rdoc_options: []
44
+ require_paths:
45
+ - lib
46
+ required_ruby_version: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: '0'
51
+ required_rubygems_version: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ requirements: []
57
+ rubyforge_project:
58
+ rubygems_version: 2.2.2
59
+ signing_key:
60
+ specification_version: 4
61
+ summary: Capitalizes names; handles edge cases.
62
+ test_files: []