nomener 0.2.8 → 0.2.9
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 +4 -4
- data/lib/nomener.rb +6 -6
- data/lib/nomener/base.rb +34 -0
- data/lib/nomener/cleaner.rb +111 -0
- data/lib/nomener/compounders.rb +3 -3
- data/lib/nomener/name.rb +41 -46
- data/lib/nomener/parser.rb +80 -142
- data/lib/nomener/suffixes.rb +29 -12
- data/lib/nomener/titles.rb +68 -46
- data/lib/nomener/version.rb +2 -1
- data/spec/nomener/nomener_helper_spec.rb +5 -5
- data/spec/nomener/nomener_parser_spec.rb +0 -26
- data/spec/nomener/nomener_suffixes_spec.rb +14 -0
- data/spec/nomener/nomener_titles_spec.rb +233 -0
- metadata +4 -5
- data/lib/nomener/helper.rb +0 -41
- data/spec/nomener/titles_spec.rb +0 -227
data/lib/nomener/suffixes.rb
CHANGED
|
@@ -1,29 +1,33 @@
|
|
|
1
1
|
#-- encoding: UTF-8
|
|
2
|
+
require 'nomener/base'
|
|
3
|
+
|
|
2
4
|
module Nomener
|
|
5
|
+
# Module for suffix information
|
|
3
6
|
module Suffixes
|
|
7
|
+
extend Nomener::Base
|
|
4
8
|
|
|
5
9
|
# Internal: Regex to match suffixes or honorifics after names
|
|
6
10
|
SUFFIXES = %r/(?<=\p{^Alpha})(?:
|
|
7
|
-
AB
|
|
11
|
+
AB # Bachelor of Arts
|
|
8
12
|
| APC
|
|
9
|
-
| Attorney[\p{Blank}\-]at[\p{Blank}\-]Law\.?
|
|
10
|
-
| B[AS]c?
|
|
13
|
+
| Attorney[\p{Blank}\-]at[\p{Blank}\-]Law\.? # Attorney at Law
|
|
14
|
+
| B[AS]c? # Bachelor of Arts,Science
|
|
11
15
|
| C\.?P\.?A\.?
|
|
12
16
|
| CHB
|
|
13
17
|
| DBE
|
|
14
|
-
| D\.?[DMOPV]\.?[SMD]?\.?
|
|
18
|
+
| D\.?[DMOPV]\.?[SMD]?\.? # DMD, DO, DPM, DDM, DVM
|
|
15
19
|
| DSC
|
|
16
|
-
| Esq(?:\.|uire\.?)?
|
|
17
|
-
| FAC(?:P|S)
|
|
20
|
+
| Esq(?:\.|uire\.?)? # Esq, Esquire
|
|
21
|
+
| FAC(?:P|S) # FACP, FACS
|
|
18
22
|
| fils
|
|
19
23
|
| FRSL
|
|
20
|
-
| (?:[VX]?I{1,3})(?!\.)
|
|
21
|
-
| (?:IX|IV|V|VI|XI)(?!\.)
|
|
22
|
-
| (?:X{1,3})(?!\.)
|
|
24
|
+
| (?:[VX]?I{1,3})(?!\.) # roman numbers
|
|
25
|
+
| (?:IX|IV|V|VI|XI)(?!\.) # roman numbers
|
|
26
|
+
| (?:X{1,3})(?!\.) # roman numbers
|
|
23
27
|
| Jn?r\.?
|
|
24
28
|
| Junior
|
|
25
29
|
| LLB
|
|
26
|
-
| M\.?[BDS]\.?ed?
|
|
30
|
+
| M\.?[BDS]\.?ed? # MB, MD, MS, MSed
|
|
27
31
|
| MPH
|
|
28
32
|
| P\.?\p{Blank}?A\.?
|
|
29
33
|
| PC
|
|
@@ -31,10 +35,23 @@ module Nomener
|
|
|
31
35
|
| Ph\.?\p{Blank}?D\.?
|
|
32
36
|
| RN
|
|
33
37
|
| SC
|
|
34
|
-
| Sn?r\.?
|
|
38
|
+
| Sn?r\.? # Snr, Sr
|
|
35
39
|
| Senior
|
|
36
40
|
| V\.?M\.?D\.?
|
|
37
41
|
)(?=[^\p{Alpha}\p{Blank}]+|\z)/x
|
|
42
|
+
|
|
43
|
+
# Internal: pull off what suffixes we can
|
|
44
|
+
# Modifies given string in place.
|
|
45
|
+
#
|
|
46
|
+
# nm - string of the name to parse
|
|
47
|
+
#
|
|
48
|
+
# Returns string of the suffixes found or and empty string
|
|
49
|
+
def self.parse_suffix!(nm)
|
|
50
|
+
return '' if nm.to_s.empty?
|
|
51
|
+
|
|
52
|
+
suffix = dustoff gut!(nm, SUFFIXES)
|
|
53
|
+
Cleaner.cleanup! nm
|
|
54
|
+
suffix
|
|
55
|
+
end
|
|
38
56
|
end
|
|
39
57
|
end
|
|
40
|
-
|
data/lib/nomener/titles.rb
CHANGED
|
@@ -1,106 +1,128 @@
|
|
|
1
1
|
#-- encoding: UTF-8
|
|
2
|
+
require 'nomener/base'
|
|
3
|
+
|
|
2
4
|
module Nomener
|
|
5
|
+
# Module for title information
|
|
3
6
|
module Titles
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
|
7
|
+
extend Nomener::Base
|
|
8
|
+
|
|
9
|
+
# Internal: Regex for matching name prefixes such as honorifics
|
|
10
|
+
# and other formalities
|
|
11
|
+
TITLES = %r/\b(?:
|
|
12
|
+
خانم # Persian Mrs ?
|
|
13
|
+
| (?:רעב|'ר) # Yiddish Mr.
|
|
14
|
+
| አቶ # Amharic Mr.
|
|
15
|
+
| Adi # Fiji
|
|
11
16
|
| Air\p{Blank}(?:Commander|Commodore|Marshall) # Air Commander, Commodore, Marshall
|
|
12
17
|
| Ald(?:erman|\.)?
|
|
13
|
-
| (?:Arch)?Du(?:ke|chess)
|
|
14
|
-
| Ato
|
|
18
|
+
| (?:Arch)?Du(?:ke|chess) # Duke, Archduke, Duchess, Archduchess
|
|
19
|
+
| Ato # Amharic Mr.
|
|
15
20
|
| Baron(?:ess)?
|
|
16
21
|
| Bishop
|
|
17
|
-
| Bulou
|
|
22
|
+
| Bulou # Fiji
|
|
18
23
|
| Brig(?:adier)?
|
|
19
24
|
| Brother
|
|
20
25
|
| Capt(?:ain|\.)?
|
|
21
|
-
| Cdr\.?
|
|
26
|
+
| Cdr\.? # Commander
|
|
22
27
|
| Chaplain
|
|
23
28
|
| Colonel
|
|
24
|
-
| Comm(?:ander|odore)
|
|
29
|
+
| Comm(?:ander|odore) # Commander, Commodore
|
|
25
30
|
| Count(?:ess)?
|
|
26
31
|
| Dame
|
|
27
32
|
| Det\.?
|
|
28
33
|
| Dhr\.?
|
|
29
34
|
| Doctor
|
|
30
35
|
| Dr\.?
|
|
31
|
-
# | Dona
|
|
32
|
-
# |
|
|
36
|
+
# | Dona # Always with first name
|
|
37
|
+
# | Don # Always with first name
|
|
33
38
|
| Dom
|
|
34
|
-
| Erzherzog(?:in)?
|
|
39
|
+
| Erzherzog(?:in)? # Erzherzog, Erzherzogin
|
|
35
40
|
| Father
|
|
36
41
|
| Field\p{Blank}Marshall
|
|
37
|
-
| Flt?\.?(?:\p{Blank}(?:Lt|Off)\.?)
|
|
38
|
-
| Flight(?:\p{Blank}(?:Lieutenant|Officer))
|
|
42
|
+
| Flt?\.?(?:\p{Blank}(?:Lt|Off)\.?) # Fl Lt, Flt Lt, Fl Off, Flt Off
|
|
43
|
+
| Flight(?:\p{Blank}(?:Lieutenant|Officer)) # Flight Lieutenant, Flight Officer
|
|
39
44
|
| Frau
|
|
40
45
|
| Fr\.?
|
|
41
|
-
| Gen(?:eral|\.)?
|
|
42
|
-
| H[äe]rra
|
|
46
|
+
| Gen(?:eral|\.)? # General
|
|
47
|
+
| H[äe]rra # Estonian, Finnish Mr
|
|
43
48
|
| Herr
|
|
44
|
-
| Hra?\.?
|
|
45
|
-
| (?:Rt\.?|Right)?\p{Blank}?Hon\.?(?:ourable)?
|
|
46
|
-
| Insp\.?(?:ector)?
|
|
49
|
+
| Hra?\.? # Finnish
|
|
50
|
+
| (?:Rt\.?|Right)?\p{Blank}?Hon\.?(?:ourable)? # Honourable, Right Honourable
|
|
51
|
+
| Insp\.?(?:ector)? # Inspector
|
|
47
52
|
| Judge
|
|
48
53
|
| Justice
|
|
49
|
-
| Khaanom
|
|
54
|
+
| Khaanom # Persian Mrs
|
|
50
55
|
| Lady
|
|
51
56
|
| Lieutenant(?:\p{Blank}(?:Commander|Colonel|General))? # Lieutenant, Lieutenant Commander, Lieutenant Colonel, Lieutenant General
|
|
52
|
-
| Lt\.?(?:\p{Blank}(?:Cdr|Col|Gen)\.?)?
|
|
57
|
+
| Lt\.?(?:\p{Blank}(?:Cdr|Col|Gen)\.?)? # Lt, Lt Col, Lt Cdr, Lt Gen
|
|
53
58
|
| (?:Lt|Leut|Lieut)\.?
|
|
54
59
|
| Lord
|
|
60
|
+
# | M\.? # French
|
|
55
61
|
| Madam(?:e)?
|
|
62
|
+
| Mademoiselle # French
|
|
56
63
|
| Maid
|
|
57
|
-
|
|
|
58
|
-
|
|
|
64
|
+
| Ma[îi]tre # French
|
|
65
|
+
| Major(?:\p{Blank}General)? # Major, Major General
|
|
66
|
+
| Maj\.?(?:\p{Blank}Gen\.?)? # Maj, Maj Gen
|
|
59
67
|
| (?:Master|Technical|Staff)?\p{Blank}?Sergeant
|
|
60
|
-
| [MTS]?Sgt\.?
|
|
68
|
+
| [MTS]?Sgt\.? # Master, Staff, Technical, or just Sergeant
|
|
61
69
|
| Mast(?:er|\.)?
|
|
62
70
|
| Matron
|
|
63
71
|
| Menina
|
|
64
72
|
| Messrs
|
|
65
73
|
| Meneer
|
|
74
|
+
| Mlle\.? # French
|
|
66
75
|
| Miss\.?
|
|
67
76
|
| Mister
|
|
68
|
-
| Mn[er]\.?
|
|
69
|
-
|
|
|
77
|
+
| Mn[er]\.? # Mne (Mnr) Afrikaans Mr.
|
|
78
|
+
| Mme\.? # French
|
|
79
|
+
| Mons(?:ignor|\.?) # Monsignor
|
|
80
|
+
| Monsieur # French
|
|
70
81
|
| Most\p{Blank}Rever[e|a]nd
|
|
71
|
-
| Mother(?:\p{Blank}Superior)?
|
|
82
|
+
| Mother(?:\p{Blank}Superior)? # Mother, Mother Superior
|
|
72
83
|
| Mrs?\.?
|
|
73
|
-
| Msgr\.?
|
|
74
|
-
| M\/?s\.?
|
|
84
|
+
| Msgr\.? # Monsignor
|
|
85
|
+
| M\/?s\.? # Ms, Ms
|
|
75
86
|
| Mt\.?\p{Blank}Revd?\.?
|
|
76
87
|
| Mx\.?
|
|
77
|
-
| (?-i:ông)
|
|
88
|
+
| (?-i:ông) # Vietnamese Mr. must be lowercase
|
|
78
89
|
| Pastor
|
|
79
90
|
| Private
|
|
80
|
-
| Prof(?:essor|\.)?
|
|
81
|
-
| Pte\.?
|
|
82
|
-
| Pvt\.?
|
|
83
|
-
| PFC
|
|
91
|
+
| Prof(?:essor|esseur|\.)? # Professor, Professeur, Prof
|
|
92
|
+
| Pte\.? # Private
|
|
93
|
+
| Pvt\.? # Private
|
|
94
|
+
| PFC # Private first class
|
|
84
95
|
| Rabbi
|
|
85
|
-
| Ratu
|
|
86
|
-
| Reb\.?
|
|
96
|
+
| Ratu # Fiji Sir
|
|
97
|
+
| Reb\.? # Yiddish Mr.
|
|
87
98
|
| Rever[e|a]nd
|
|
88
99
|
| Revd?\.?
|
|
89
|
-
| Ro(?:ko)?
|
|
90
|
-
| Se[nñ]h?orita
|
|
91
|
-
| Se[nñ]h?ora
|
|
92
|
-
| Se[nñ][hy]?or(?:\p{Blank}Dom)?
|
|
100
|
+
| Ro(?:ko)? # Fiji
|
|
101
|
+
| Se[nñ]h?orita # senorita, señorita, senhorita
|
|
102
|
+
| Se[nñ]h?ora # senora, señora, senhora
|
|
103
|
+
| Se[nñ][hy]?or(?:\p{Blank}Dom)? # senor,señor,senhor,senyor,senor dom
|
|
93
104
|
| Sénher
|
|
94
105
|
| Seigneur
|
|
95
106
|
| Signor(?:a|e)
|
|
96
107
|
| Sig(?:a|ra)?\.?
|
|
97
|
-
| Sioro
|
|
98
|
-
| Sro\.?
|
|
108
|
+
| Sioro # Ido Mr.
|
|
109
|
+
| Sro\.? # Ido Mr.
|
|
99
110
|
| Sir
|
|
100
111
|
| Sister
|
|
101
112
|
| Sr(?:a|ta)?\.?
|
|
102
113
|
| V\.?\ Revd?\.?
|
|
103
114
|
| Very\ Rever[e|a]nd
|
|
104
|
-
)\b
|
|
115
|
+
)\b/xi
|
|
116
|
+
|
|
117
|
+
# Internal: pull off a title if we can
|
|
118
|
+
# Modifies given string in place.
|
|
119
|
+
#
|
|
120
|
+
# nm - string of the name to parse
|
|
121
|
+
#
|
|
122
|
+
# Returns string of the title found or and empty string
|
|
123
|
+
def self.parse_title!(nm)
|
|
124
|
+
return '' if nm.to_s.empty?
|
|
125
|
+
dustoff gut!(nm, TITLES)
|
|
126
|
+
end
|
|
105
127
|
end
|
|
106
128
|
end
|
data/lib/nomener/version.rb
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
#-- encoding: UTF-8
|
|
2
2
|
require 'spec_helper'
|
|
3
3
|
|
|
4
|
-
RSpec.describe "Nomener::
|
|
4
|
+
RSpec.describe "Nomener::Cleaner" do
|
|
5
5
|
context "with reformat" do
|
|
6
6
|
it "returns the same string given" do
|
|
7
|
-
expect(Nomener::
|
|
7
|
+
expect(Nomener::Cleaner.reformat("Joe \"John\" O'Smith")).to eq "Joe \"John\" O'Smith"
|
|
8
8
|
end
|
|
9
9
|
it "returns the string with curved double quotes replaced" do
|
|
10
|
-
expect(Nomener::
|
|
10
|
+
expect(Nomener::Cleaner.reformat("Joe “John” O'Smith")).to eq "Joe \"John\" O'Smith"
|
|
11
11
|
end
|
|
12
12
|
it "returns the string with curved single quotes replaced" do
|
|
13
|
-
expect(Nomener::
|
|
13
|
+
expect(Nomener::Cleaner.reformat("Joe ‘John’ O'Smith")).to eq "Joe 'John' O'Smith"
|
|
14
14
|
end
|
|
15
15
|
it "returns the string with double angle quotes replaced" do
|
|
16
|
-
expect(Nomener::
|
|
16
|
+
expect(Nomener::Cleaner.reformat("Joe «John» O'Smith")).to eq "Joe \"John\" O'Smith"
|
|
17
17
|
end
|
|
18
18
|
end
|
|
19
19
|
end
|
|
@@ -48,32 +48,6 @@ RSpec.describe "Nomener::Parser" do
|
|
|
48
48
|
|
|
49
49
|
end
|
|
50
50
|
|
|
51
|
-
context "with parse_title" do
|
|
52
|
-
[
|
|
53
|
-
{from: "Mr. Joe Smith", to: "Mr"},
|
|
54
|
-
{from: "Joe Smith", to: ""},
|
|
55
|
-
].each do |name|
|
|
56
|
-
it "returns the title from #{name[:from]}" do
|
|
57
|
-
parsed = Nomener::Parser.parse_title!(name[:from])
|
|
58
|
-
expect(parsed).to eq name[:to]
|
|
59
|
-
end
|
|
60
|
-
end
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
context "with parse_suffix" do
|
|
64
|
-
[
|
|
65
|
-
{from: "Mr. Joe Smith I", to: "I"},
|
|
66
|
-
{from: "Joe Smith II", to: "II"},
|
|
67
|
-
{from: "Joe Smith DMD", to: "DMD"},
|
|
68
|
-
{from: "Joe Smith Jr. DMD", to: "Jr DMD"},
|
|
69
|
-
].each do |name|
|
|
70
|
-
it "returns the suffix from #{name[:from]}" do
|
|
71
|
-
parsed = Nomener::Parser.parse_suffix!(name[:from])
|
|
72
|
-
expect(parsed).to eq name[:to]
|
|
73
|
-
end
|
|
74
|
-
end
|
|
75
|
-
end
|
|
76
|
-
|
|
77
51
|
context "with parse_nick" do
|
|
78
52
|
[
|
|
79
53
|
{from: "Joe Smith", to: ""},
|
|
@@ -5,4 +5,18 @@ RSpec.describe "Nomener::Suffixes" do
|
|
|
5
5
|
it "has the constant regex SUFFIXES" do
|
|
6
6
|
expect(Nomener::Suffixes::SUFFIXES).to be_a_kind_of(Regexp)
|
|
7
7
|
end
|
|
8
|
+
|
|
9
|
+
context "with parse_suffix" do
|
|
10
|
+
[
|
|
11
|
+
{from: "Mr. Joe Smith I", to: "I"},
|
|
12
|
+
{from: "Joe Smith II", to: "II"},
|
|
13
|
+
{from: "Joe Smith DMD", to: "DMD"},
|
|
14
|
+
{from: "Joe Smith Jr. DMD", to: "Jr DMD"},
|
|
15
|
+
].each do |name|
|
|
16
|
+
it "returns the suffix from #{name[:from]}" do
|
|
17
|
+
parsed = Nomener::Suffixes.parse_suffix!(name[:from])
|
|
18
|
+
expect(parsed).to eq name[:to]
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
8
22
|
end
|
|
@@ -5,4 +5,237 @@ RSpec.describe "Nomener::Titles" do
|
|
|
5
5
|
it "has the constant regex TITLES" do
|
|
6
6
|
expect(Nomener::Titles::TITLES).to be_a_kind_of(Regexp)
|
|
7
7
|
end
|
|
8
|
+
|
|
9
|
+
context "in the names" do
|
|
10
|
+
[
|
|
11
|
+
{ name: "خانم Augusta Ada King", result: "خانم" },
|
|
12
|
+
{ name: "רעב Bertrand Russell", result: "רעב" },
|
|
13
|
+
{ skip: "Something is typed, or we clean it, improperly",
|
|
14
|
+
name: "'ר Bertrand Russell", result: "'ר" },
|
|
15
|
+
{ name: "አቶ Bertrand Russell", result: "አቶ" },
|
|
16
|
+
{ name: "Adi Augusta Ada King", result: "Adi" },
|
|
17
|
+
{ name: "Air Commander Bertrand Russell", result: "Air Commander" },
|
|
18
|
+
{ name: "Air Commodore Bertrand Russell", result: "Air Commodore" },
|
|
19
|
+
{ name: "Air Marshall Bertrand Russell", result: "Air Marshall" },
|
|
20
|
+
{ name: "Ald. Bertrand Russell", result: "Ald" },
|
|
21
|
+
{ name: "Alderman Bertrand Russell", result: "Alderman" },
|
|
22
|
+
{ name: "Archduke Bertrand Russell", result: "Archduke" },
|
|
23
|
+
{ name: "Duke Bertrand Russell", result: "Duke" },
|
|
24
|
+
{ name: "Archduchess Augusta Ada King", result: "Archduchess" },
|
|
25
|
+
{ name: "Duchess Augusta Ada King", result: "Duchess" },
|
|
26
|
+
{ name: "Ato Bertrand Russell", result: "Ato" },
|
|
27
|
+
{ name: "Baron Bertrand Russell", result: "Baron" },
|
|
28
|
+
{ name: "Baroness Augusta Ada King", result: "Baroness" },
|
|
29
|
+
{ name: "Bishop Bertrand Russell", result: "Bishop" },
|
|
30
|
+
{ name: "Brig Bertrand Russell", result: "Brig" },
|
|
31
|
+
{ name: "Brig. Bertrand Russell", result: "Brig" },
|
|
32
|
+
{ name: "Brigadier Bertrand Russell", result: "Brigadier" },
|
|
33
|
+
{ name: "Brother Bertrand Russell", result: "Brother" },
|
|
34
|
+
{ name: "Bulou Augusta Ada King", result: "Bulou" },
|
|
35
|
+
{ name: "Capt Bertrand Russell", result: "Capt" },
|
|
36
|
+
{ name: "Capt. Bertrand Russell", result: "Capt" },
|
|
37
|
+
{ name: "Captain Bertrand Russell", result: "Captain" },
|
|
38
|
+
{ name: "Cdr Bertrand Russell", result: "Cdr" },
|
|
39
|
+
{ name: "Cdr. Bertrand Russell", result: "Cdr" },
|
|
40
|
+
{ name: "Chaplain Bertrand Russell", result: "Chaplain" },
|
|
41
|
+
{ name: "Colonel Bertrand Russell", result: "Colonel" },
|
|
42
|
+
{ name: "Commander Bertrand Russell", result: "Commander" },
|
|
43
|
+
{ name: "Commodore Bertrand Russell", result: "Commodore" },
|
|
44
|
+
{ name: "Count Bertrand Russell", result: "Count" },
|
|
45
|
+
{ name: "Countess Augusta Ada King", result: "Countess" },
|
|
46
|
+
{ name: "Dame Augusta Ada King", result: "Dame" },
|
|
47
|
+
{ name: "Det Bertrand Russell", result: "Det" },
|
|
48
|
+
{ name: "Det. Bertrand Russell", result: "Det" },
|
|
49
|
+
{ name: "Dhr Bertrand Russell", result: "Dhr" },
|
|
50
|
+
{ name: "Dhr. Bertrand Russell", result: "Dhr" },
|
|
51
|
+
{ name: "Doctor Bertrand Russell", result: "Doctor" },
|
|
52
|
+
{ name: "Dr Bertrand Russell", result: "Dr" },
|
|
53
|
+
{ name: "Dr. Bertrand Russell", result: "Dr" },
|
|
54
|
+
{ name: "Dom Bertrand Russell", result: "Dom" },
|
|
55
|
+
# { name: "Don Bertrand Russell", result: "Don" },
|
|
56
|
+
# { name: "Dona Augusta Ada King", result: "Dona" },
|
|
57
|
+
{ name: "Erzherzog Bertrand Russell", result: "Erzherzog" },
|
|
58
|
+
{ name: "Erzherzogin Augusta Ada King", result: "Erzherzogin" },
|
|
59
|
+
{ name: "Father Bertrand Russell", result: "Father" },
|
|
60
|
+
{ name: "Field Marshall Bertrand Russell", result: "Field Marshall" },
|
|
61
|
+
{ name: "Fl Lt Bertrand Russell", result: "Fl Lt" },
|
|
62
|
+
{ name: "Fl. Lt. Bertrand Russell", result: "Fl Lt" },
|
|
63
|
+
{ name: "Flt Lt Bertrand Russell", result: "Flt Lt" },
|
|
64
|
+
{ name: "Flt. Lt. Bertrand Russell", result: "Flt Lt" },
|
|
65
|
+
{ name: "Fl Off Bertrand Russell", result: "Fl Off" },
|
|
66
|
+
{ name: "Fl. Off. Bertrand Russell", result: "Fl Off" },
|
|
67
|
+
{ name: "Flt Off Bertrand Russell", result: "Flt Off" },
|
|
68
|
+
{ name: "Flt. Off. Bertrand Russell", result: "Flt Off" },
|
|
69
|
+
{ name: "Flight Officer Bertrand Russell", result: "Flight Officer" },
|
|
70
|
+
{ name: "Flight Lieutenant Bertrand Russell", result: "Flight Lieutenant" },
|
|
71
|
+
{ name: "Frau Augusta Ada King", result: "Frau" },
|
|
72
|
+
{ name: "Fr Augusta Ada King", result: "Fr" },
|
|
73
|
+
{ name: "Fr. Augusta Ada King", result: "Fr" },
|
|
74
|
+
{ name: "Gen. Bertrand Russell", result: "Gen" },
|
|
75
|
+
{ name: "General Bertrand Russell", result: "General" },
|
|
76
|
+
{ name: "Herra Bertrand Russell", result: "Herra" },
|
|
77
|
+
{ name: "Härra Bertrand Russell", result: "Härra" },
|
|
78
|
+
{ name: "Herr Bertrand Russell", result: "Herr" },
|
|
79
|
+
{ name: "Hra Bertrand Russell", result: "Hra" },
|
|
80
|
+
{ name: "Hra. Bertrand Russell", result: "Hra" },
|
|
81
|
+
{ name: "Hr Bertrand Russell", result: "Hr" },
|
|
82
|
+
{ name: "Hr. Bertrand Russell", result: "Hr" },
|
|
83
|
+
{ name: "Rt Hon Bertrand Russell", result: "Rt Hon" },
|
|
84
|
+
{ name: "Rt. Hon. Bertrand Russell", result: "Rt Hon" },
|
|
85
|
+
{ name: "Hon Bertrand Russell", result: "Hon" },
|
|
86
|
+
{ name: "Hon. Bertrand Russell", result: "Hon" },
|
|
87
|
+
{ name: "Right Honourable Bertrand Russell", result: "Right Honourable" },
|
|
88
|
+
{ name: "Honourable Bertrand Russell", result: "Honourable" },
|
|
89
|
+
{ name: "Insp Bertrand Russell", result: "Insp" },
|
|
90
|
+
{ name: "Insp. Bertrand Russell", result: "Insp" },
|
|
91
|
+
{ name: "Inspector Bertrand Russell", result: "Inspector" },
|
|
92
|
+
{ name: "Judge Bertrand Russell", result: "Judge" },
|
|
93
|
+
{ name: "Justice Bertrand Russell", result: "Justice" },
|
|
94
|
+
{ name: "Khaanom Augusta Ada King", result: "Khaanom" },
|
|
95
|
+
{ name: "Lady Augusta Ada King", result: "Lady" },
|
|
96
|
+
{ name: "Lieutenant Bertrand Russell", result: "Lieutenant" },
|
|
97
|
+
{ name: "Lieutenant Commander Bertrand Russell", result: "Lieutenant Commander" },
|
|
98
|
+
{ name: "Lieutenant Colonel Bertrand Russell", result: "Lieutenant Colonel" },
|
|
99
|
+
{ name: "Lieutenant General Bertrand Russell", result: "Lieutenant General" },
|
|
100
|
+
{ name: "Lt Col Bertrand Russell", result: "Lt Col" },
|
|
101
|
+
{ name: "Lt. Col. Bertrand Russell", result: "Lt Col" },
|
|
102
|
+
{ name: "Lt Cdr Bertrand Russell", result: "Lt Cdr" },
|
|
103
|
+
{ name: "Lt. Cdr. Bertrand Russell", result: "Lt Cdr" },
|
|
104
|
+
{ name: "Lt Col Bertrand Russell", result: "Lt Col" },
|
|
105
|
+
{ name: "Lt. Col. Bertrand Russell", result: "Lt Col" },
|
|
106
|
+
{ name: "Lt Gen Bertrand Russell", result: "Lt Gen" },
|
|
107
|
+
{ name: "Lt. Gen. Bertrand Russell", result: "Lt Gen" },
|
|
108
|
+
{ name: "Lt Bertrand Russell", result: "Lt" },
|
|
109
|
+
{ name: "Lt. Bertrand Russell", result: "Lt" },
|
|
110
|
+
{ name: "Leut Bertrand Russell", result: "Leut" },
|
|
111
|
+
{ name: "Leut. Bertrand Russell", result: "Leut" },
|
|
112
|
+
{ name: "Lieut Bertrand Russell", result: "Lieut" },
|
|
113
|
+
{ name: "Lieut. Bertrand Russell", result: "Lieut" },
|
|
114
|
+
{ name: "Lord Bertrand Russell", result: "Lord" },
|
|
115
|
+
{ name: "Madam Augusta Ada King", result: "Madam" },
|
|
116
|
+
{ name: "Madame Augusta Ada King", result: "Madame" },
|
|
117
|
+
{ name: "Mademoiselle Augusta Ada King", result: "Mademoiselle" },
|
|
118
|
+
{ name: "Maid Augusta Ada King", result: "Maid" },
|
|
119
|
+
{ name: "Maître Bertrand Russell", result: "Maître" },
|
|
120
|
+
{ name: "Major Bertrand Russell", result: "Major" },
|
|
121
|
+
{ name: "Major General Bertrand Russell", result: "Major General" },
|
|
122
|
+
{ name: "Maj Bertrand Russell", result: "Maj" },
|
|
123
|
+
{ name: "Maj. Bertrand Russell", result: "Maj" },
|
|
124
|
+
{ name: "Maj Gen Bertrand Russell", result: "Maj Gen" },
|
|
125
|
+
{ name: "Maj. Gen. Bertrand Russell", result: "Maj Gen" },
|
|
126
|
+
{ name: "Mast Bertrand Russell", result: "Mast" },
|
|
127
|
+
{ name: "Mast. Bertrand Russell", result: "Mast" },
|
|
128
|
+
{ name: "Master Bertrand Russell", result: "Master" },
|
|
129
|
+
{ name: "Master Sergeant Bertrand Russell", result: "Master Sergeant" },
|
|
130
|
+
{ name: "Matron Augusta Ada King", result: "Matron" },
|
|
131
|
+
{ name: "Menina Augusta Ada King", result: "Menina" },
|
|
132
|
+
{ name: "Messrs Bertrand Russell", result: "Messrs" },
|
|
133
|
+
{ name: "Meneer Bertrand Russell", result: "Meneer" },
|
|
134
|
+
{ name: "Mlle Augusta Ada King", result: "Mlle" },
|
|
135
|
+
{ name: "Miss Augusta Ada King", result: "Miss" },
|
|
136
|
+
{ name: "Miss. Augusta Ada King", result: "Miss" },
|
|
137
|
+
{ name: "Mister Bertrand Russell", result: "Mister" },
|
|
138
|
+
{ name: "Mne Bertrand Russell", result: "Mne" },
|
|
139
|
+
{ name: "Mne. Bertrand Russell", result: "Mne" },
|
|
140
|
+
{ name: "Mme. Augusta Ada King", result: "Mme" },
|
|
141
|
+
{ name: "Mnr Bertrand Russell", result: "Mnr" },
|
|
142
|
+
{ name: "Mnr. Bertrand Russell", result: "Mnr" },
|
|
143
|
+
{ name: "Mons Bertrand Russell", result: "Mons" },
|
|
144
|
+
{ name: "Mons. Bertrand Russell", result: "Mons" },
|
|
145
|
+
{ name: "Monsignor Bertrand Russell", result: "Monsignor" },
|
|
146
|
+
{ name: "Monsieur Bertrand Russell", result: "Monsieur" },
|
|
147
|
+
{ name: "Most Reverend Bertrand Russell", result: "Most Reverend" },
|
|
148
|
+
{ name: "Most Reverand Bertrand Russell", result: "Most Reverand" },
|
|
149
|
+
{ name: "Mother Augusta Ada King", result: "Mother" },
|
|
150
|
+
{ name: "Mother Superior Augusta Ada King", result: "Mother Superior" },
|
|
151
|
+
{ name: "Mr Bertrand Russell", result: "Mr" },
|
|
152
|
+
{ name: "Mr. Bertrand Russell", result: "Mr" },
|
|
153
|
+
{ name: "Mrs Augusta Ada King", result: "Mrs" },
|
|
154
|
+
{ name: "Mrs. Augusta Ada King", result: "Mrs" },
|
|
155
|
+
{ name: "Msgr. Bertrand Russell", result: "Msgr" },
|
|
156
|
+
{ name: "Ms Augusta Ada King", result: "Ms" },
|
|
157
|
+
{ name: "Ms. Augusta Ada King", result: "Ms" },
|
|
158
|
+
{ name: "MSgt Bertrand Russell", result: "MSgt" },
|
|
159
|
+
{ name: "MSgt. Bertrand Russell", result: "MSgt" },
|
|
160
|
+
{ name: "Mt Rev Bertrand Russell", result: "Mt Rev" },
|
|
161
|
+
{ name: "Mt. Rev. Bertrand Russell", result: "Mt Rev" },
|
|
162
|
+
{ name: "Mt Revd Bertrand Russell", result: "Mt Revd" },
|
|
163
|
+
{ name: "Mt. Revd. Bertrand Russell", result: "Mt Revd" },
|
|
164
|
+
{ name: "Mx Bertrand Russell", result: "Mx" },
|
|
165
|
+
{ name: "Mx. Bertrand Russell", result: "Mx" },
|
|
166
|
+
{ name: "ông Bertrand Russell", result: "ông" },
|
|
167
|
+
{ name: "Pastor Bertrand Russell", result: "Pastor" },
|
|
168
|
+
{ name: "Private Bertrand Russell", result: "Private" },
|
|
169
|
+
{ name: "Prof Bertrand Russell", result: "Prof" },
|
|
170
|
+
{ name: "Prof. Bertrand Russell", result: "Prof" },
|
|
171
|
+
{ name: "Professor Bertrand Russell", result: "Professor" },
|
|
172
|
+
{ name: "Professeur Bertrand Russell", result: "Professeur" },
|
|
173
|
+
{ name: "Pte Bertrand Russell", result: "Pte" },
|
|
174
|
+
{ name: "Pte. Bertrand Russell", result: "Pte" },
|
|
175
|
+
{ name: "Pvt Bertrand Russell", result: "Pvt" },
|
|
176
|
+
{ name: "Pvt. Bertrand Russell", result: "Pvt" },
|
|
177
|
+
{ name: "PFC Bertrand Russell", result: "PFC" },
|
|
178
|
+
{ name: "Rabbi Bertrand Russell", result: "Rabbi" },
|
|
179
|
+
{ name: "Ratu Bertrand Russell", result: "Ratu" },
|
|
180
|
+
{ name: "Reb Bertrand Russell", result: "Reb" },
|
|
181
|
+
{ name: "Reb. Bertrand Russell", result: "Reb" },
|
|
182
|
+
{ name: "Rev Bertrand Russell", result: "Rev" },
|
|
183
|
+
{ name: "Revd Bertrand Russell", result: "Revd" },
|
|
184
|
+
{ name: "Reverand Bertrand Russell", result: "Reverand" },
|
|
185
|
+
{ name: "Reverend Bertrand Russell", result: "Reverend" },
|
|
186
|
+
{ name: "Ro Bertrand Russell", result: "Ro" },
|
|
187
|
+
{ name: "Roko Bertrand Russell", result: "Roko" },
|
|
188
|
+
{ name: "Senora Augusta Ada King", result: "Senora" },
|
|
189
|
+
{ name: "Señora Augusta Ada King", result: "Señora" },
|
|
190
|
+
{ name: "Senhora Augusta Ada King", result: "Senhora" },
|
|
191
|
+
{ name: "Senor Bertrand Russell", result: "Senor" },
|
|
192
|
+
{ name: "Señor Bertrand Russell", result: "Señor" },
|
|
193
|
+
{ name: "Senhor Bertrand Russell", result: "Senhor" },
|
|
194
|
+
{ name: "Senyor Bertrand Russell", result: "Senyor" },
|
|
195
|
+
{ name: "Sénher Bertrand Russell", result: "Sénher" },
|
|
196
|
+
{ name: "Senor Dom Bertrand Russell", result: "Senor Dom" },
|
|
197
|
+
{ name: "Senorita Augusta Ada King", result: "Senorita" },
|
|
198
|
+
{ name: "Señorita Augusta Ada King", result: "Señorita" },
|
|
199
|
+
{ name: "Senhorita Augusta Ada King", result: "Senhorita" },
|
|
200
|
+
{ name: "Seigneur Bertrand Russell", result: "Seigneur" },
|
|
201
|
+
{ name: "Signore Bertrand Russell", result: "Signore" },
|
|
202
|
+
{ name: "Signora Augusta Ada King", result: "Signora" },
|
|
203
|
+
{ name: "Sig Bertrand Russell", result: "Sig" },
|
|
204
|
+
{ name: "Sig. Bertrand Russell", result: "Sig" },
|
|
205
|
+
{ name: "Siga Bertrand Russell", result: "Siga" },
|
|
206
|
+
{ name: "Siga. Bertrand Russell", result: "Siga" },
|
|
207
|
+
{ name: "Sigra Bertrand Russell", result: "Sigra" },
|
|
208
|
+
{ name: "Sigra. Bertrand Russell", result: "Sigra" },
|
|
209
|
+
{ name: "Sioro Bertrand Russell", result: "Sioro" },
|
|
210
|
+
{ name: "Sro Bertrand Russell", result: "Sro" },
|
|
211
|
+
{ name: "Sro. Bertrand Russell", result: "Sro" },
|
|
212
|
+
{ name: "Sgt Bertrand Russell", result: "Sgt" },
|
|
213
|
+
{ name: "Sgt. Bertrand Russell", result: "Sgt" },
|
|
214
|
+
{ name: "Sergeant Bertrand Russell", result: "Sergeant" },
|
|
215
|
+
{ name: "SSgt Bertrand Russell", result: "SSgt" },
|
|
216
|
+
{ name: "SSgt. Bertrand Russell", result: "SSgt" },
|
|
217
|
+
{ name: "Sir Bertrand Russell", result: "Sir" },
|
|
218
|
+
{ name: "Sister Augusta Ada King", result: "Sister" },
|
|
219
|
+
{ name: "Sr Bertrand Russell", result: "Sr" },
|
|
220
|
+
{ name: "Sr. Bertrand Russell", result: "Sr" },
|
|
221
|
+
{ name: "Sra Augusta Ada King", result: "Sra" },
|
|
222
|
+
{ name: "Sra. Augusta Ada King", result: "Sra" },
|
|
223
|
+
{ name: "Srta Augusta Ada King", result: "Srta" },
|
|
224
|
+
{ name: "Srta. Augusta Ada King", result: "Srta" },
|
|
225
|
+
{ name: "Staff Sergeant Bertrand Russell", result: "Staff Sergeant" },
|
|
226
|
+
{ name: "Technical Sergeant Bertrand Russell", result: "Technical Sergeant" },
|
|
227
|
+
{ name: "TSgt Bertrand Russell", result: "TSgt" },
|
|
228
|
+
{ name: "TSgt. Bertrand Russell", result: "TSgt" },
|
|
229
|
+
{ name: "V Revd Bertrand Russell", result: "V Revd" },
|
|
230
|
+
{ name: "V. Revd. Bertrand Russell", result: "V Revd" },
|
|
231
|
+
{ name: "Very Reverend Bertrand Russell", result: "Very Reverend" },
|
|
232
|
+
{ name: "Very Reverand Bertrand Russell", result: "Very Reverand" },
|
|
233
|
+
].each do |name|
|
|
234
|
+
it "parses #{name[:result]} from #{name[:name]}" do
|
|
235
|
+
skip name[:skip] if name.has_key?(:skip)
|
|
236
|
+
parsed = Nomener::Titles.parse_title!(name[:name])
|
|
237
|
+
expect(parsed).to eq name[:result]
|
|
238
|
+
end
|
|
239
|
+
end
|
|
240
|
+
end
|
|
8
241
|
end
|