capitalize-names 1.0.0

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.
@@ -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: []