dwc_agent 3.0.0.7 → 3.0.0.8

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
  SHA256:
3
- metadata.gz: 70910df19904a83d0a36645c3bd3335e63648d64e4e9c3d029adf6dc744fca4b
4
- data.tar.gz: 151d8f4dc49024179cb189e24a9842ba8a634b3ec5f8c72b01b344ca1e798846
3
+ metadata.gz: a2ec2d89d805d35fb64401736263556d13d244407456b909996912d4eb749653
4
+ data.tar.gz: 1bb39f6a59ae242362266f8a949626cfd1289d194e150463dd2eb650b98a4171
5
5
  SHA512:
6
- metadata.gz: 80699e4a231dc12410e5b59fc15c433fe73a5785c4d4884c48e1bee83bf9674b0c62812f706da921e197a09ab270a889fc5e4150b2dbc5122083f1ac6c8082e7
7
- data.tar.gz: 4e5e9ecd81d556c25eb9bb0620a00a6bb35f52d11036534ab48857dc333125fc7abf8ce408099fe5648e8bbac256c4e1c4674d8f55ce67cfa3fdf9286250f6e8
6
+ metadata.gz: f005ba01365f8226966aae1e2e70ffcbbc3ffef391eeb319baad0e666c91c8edc0bef2acd1ce98dabf5d6503c063f43341c7da72e4f4b11e370537ec4592408e
7
+ data.tar.gz: bef79f42b26962c60357c3dba78d15d4b9f8189cc3c31f7034e65f78f6bc41c8b3153083354186869e9ac6b7285aa355a2b62b4c81060091a2ae99c08829ff2a
@@ -18,11 +18,14 @@ module DwcAgent
18
18
  # @return Namae::Name [Object] a new Namae object
19
19
  def clean(parsed_namae)
20
20
 
21
- if parsed_namae.given && GIVEN_BLACKLIST.any?{ |s| s.casecmp(parsed_namae.given) == 0 }
21
+ if parsed_namae.given &&
22
+ GIVEN_BLACKLIST.any?{ |s| s.casecmp(parsed_namae.given) == 0 }
22
23
  return Namae::Name.new
23
24
  end
24
25
 
25
- if parsed_namae.family && parsed_namae.family.length == 3 && parsed_namae.family.count('.') == 1
26
+ if parsed_namae.family &&
27
+ parsed_namae.family.length == 3 &&
28
+ parsed_namae.family.count('.') == 1
26
29
  return Namae::Name.new
27
30
  end
28
31
 
@@ -30,7 +33,9 @@ module DwcAgent
30
33
  return Namae::Name.new
31
34
  end
32
35
 
33
- if parsed_namae.given && parsed_namae.given.count('.') >= 3 && /\.\s*[a-zA-Z]{4,}\s+[a-zA-Z]{1,}\./.match(parsed_namae.given)
36
+ if parsed_namae.given &&
37
+ parsed_namae.given.count('.') >= 3 &&
38
+ /\.\s*[a-zA-Z]{4,}\s+[a-zA-Z]{1,}\./.match(parsed_namae.given)
34
39
  return Namae::Name.new
35
40
  end
36
41
 
@@ -38,6 +43,13 @@ module DwcAgent
38
43
  return Namae::Name.new
39
44
  end
40
45
 
46
+ if parsed_namae.family &&
47
+ parsed_namae.family.count(".") == 1 &&
48
+ parsed_namae.family[-1] == "." &&
49
+ parsed_namae.family.length > 3
50
+ parsed_namae.family = parsed_namae.family.delete_suffix(".")
51
+ end
52
+
41
53
  if parsed_namae.given &&
42
54
  parsed_namae.family &&
43
55
  parsed_namae.family.count(".") > 0 &&
@@ -59,6 +71,15 @@ module DwcAgent
59
71
  parsed_namae.given = family
60
72
  end
61
73
 
74
+ if !parsed_namae.given &&
75
+ parsed_namae.particle &&
76
+ parsed_namae.family &&
77
+ /^[A-Za-z]{3,}\s+(?:[A-Z]\.\s?){1,}$/.match(parsed_namae.family)
78
+ matched = /^(?<family>[A-Za-z]{3,})\s+(?<given>([A-Z]\.\s?){1,})$/.match(parsed_namae.family)
79
+ parsed_namae.family = matched[:family]
80
+ parsed_namae.given = matched[:given]
81
+ end
82
+
62
83
  if parsed_namae.given &&
63
84
  (parsed_namae.given == parsed_namae.given.upcase ||
64
85
  parsed_namae.given == parsed_namae.given.downcase) &&
@@ -75,13 +96,21 @@ module DwcAgent
75
96
  parsed_namae.given = NameCase(parsed_namae.given)
76
97
  end
77
98
 
78
- if parsed_namae.family && FAMILY_BLACKLIST.any?{ |s| s.casecmp(parsed_namae.family) == 0 }
99
+ if parsed_namae.family &&
100
+ FAMILY_BLACKLIST.any?{ |s| s.casecmp(parsed_namae.family) == 0 }
79
101
  return Namae::Name.new
80
102
  end
81
103
 
104
+ if parsed_namae.family.nil? &&
105
+ !parsed_namae.given.nil? &&
106
+ !parsed_namae.given.include?(".")
107
+ parsed_namae.family = parsed_namae.given
108
+ parsed_namae.given = nil
109
+ end
110
+
82
111
  parsed_namae.normalize_initials
83
112
 
84
- family = parsed_namae.family.gsub(/\.\z/, '').strip rescue nil
113
+ family = parsed_namae.family
85
114
  given = parsed_namae.given.strip rescue nil
86
115
  particle = parsed_namae.particle.strip rescue nil
87
116
  appellation = parsed_namae.appellation.strip rescue nil
@@ -92,12 +121,10 @@ module DwcAgent
92
121
  given = given.gsub(".", ". ").strip
93
122
  end
94
123
 
95
- if family.nil? && !given.nil? && !given.include?(".")
96
- family = given
97
- given = nil
98
- end
99
-
100
- if !family.nil? && given.nil? && !particle.nil?
124
+ if !family.nil? &&
125
+ given.nil? &&
126
+ !particle.nil? &&
127
+ !PARTICLES.include?(particle.downcase)
101
128
  given = particle.sub(/[a-z]\./, &:upcase).sub(/^(.)/) { $1.capitalize }
102
129
  particle = nil
103
130
  end
@@ -110,8 +137,8 @@ module DwcAgent
110
137
  family = NameCase(family)
111
138
  end
112
139
 
113
- if !family.nil? && family.match(/[A-Z]$/)
114
- return Namae::Name.new
140
+ if !family.nil? && family.match(/[A-Z]{1,3}$/)
141
+ family = NameCase(family.upcase)
115
142
  end
116
143
 
117
144
  if given.nil? && !family.nil? && family.match(/^[A-Z]{2}/)
@@ -342,4 +342,26 @@ module DwcAgent
342
342
 
343
343
  SUFFIX = /\s*\b(JR|Jr|jr|SR|Sr|sr|[IVX]{2,})(\.|\b)/
344
344
 
345
+ PARTICLES = [
346
+ "ap",
347
+ "da",
348
+ "de",
349
+ "de'",
350
+ "del",
351
+ "der",
352
+ "des",
353
+ "di",
354
+ "do",
355
+ "dos",
356
+ "du",
357
+ "el",
358
+ "le",
359
+ "la",
360
+ "van",
361
+ "von",
362
+ "the",
363
+ "of",
364
+ "van der"
365
+ ]
366
+
345
367
  end
@@ -4,7 +4,7 @@ module DwcAgent
4
4
  MAJOR = 3
5
5
  MINOR = 0
6
6
  PATCH = 0
7
- BUILD = 7
7
+ BUILD = 8
8
8
 
9
9
  def self.version
10
10
  [MAJOR, MINOR, PATCH, BUILD].compact.join('.').freeze
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dwc_agent
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0.7
4
+ version: 3.0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - David P. Shorthouse
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-01-18 00:00:00.000000000 Z
11
+ date: 2022-01-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: namae