You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@whimsical.apache.org by se...@apache.org on 2020/11/22 17:08:49 UTC
[whimsy] 01/02: Simplify conditional
This is an automated email from the ASF dual-hosted git repository.
sebb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/whimsy.git
commit 0c7d55700e7d9d07589f5be121889aec2d867b03
Author: Sebb <se...@apache.org>
AuthorDate: Sun Nov 22 17:08:20 2020 +0000
Simplify conditional
Additional tidy up
---
lib/whimsy/asf/person.rb | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/lib/whimsy/asf/person.rb b/lib/whimsy/asf/person.rb
index a6677d0..041f26d 100644
--- a/lib/whimsy/asf/person.rb
+++ b/lib/whimsy/asf/person.rb
@@ -1,4 +1,4 @@
-require_relative 'person/override-dates.rb'
+require_relative 'person/override-dates'
module ASF
@@ -132,6 +132,9 @@ module ASF
name.reverse.join(' ').downcase
end
+ # surname prefixes
+ SINGLE_PFX = %w(von van Van de De del Del den le Le O Di Du dos St.)
+ DOUBLE_PFX = ['de la', 'van der', 'van de', 'van den', 'von der']
# parse a name into LDAP fields
def self.ldap_name(name)
words = name.gsub(',', '').split(' ')
@@ -144,10 +147,10 @@ module ASF
result['generationQualifier'] = words.pop if words.last =~ SUFFIXES
result['givenName'] = words.shift # TODO does gn allow multiple words?
# extract surnames like van Gogh etc
- if words.size >= 3 and words[-3..-2] == %w(de la) or words[-3..-2] == %w(van der) or words[-3..-2] == %w(van de) or words[-3..-2] == %w(van den) or words[-3..-2] == %w(von der)
+ if words.size >= 3 and DOUBLE_PFX.include? words[-3..-2].join(' ')
result['sn'] = words[-3..-1].join(' ')
result['unused'] = words[0..-4]
- elsif words.size >= 2 and %w(von van Van de De del Del den le Le O Di Du dos St.).include? words[-2]
+ elsif words.size >= 2 and SINGLE_PFX.include? words[-2]
result['sn'] = words[-2..-1].join(' ')
result['unused'] = words[0..-3]
else
@@ -162,7 +165,7 @@ module ASF
# Should normally be applied to the legal name
def self.stem_DRAFT(name)
# need to split before
- name = name.gsub(',', ' ').split(/ +/).map{|n|n.gsub(%r{^(Dr|Jr|Sr|[A-Z])\.$},'\1')}
+ name = name.gsub(',', ' ').split(/ +/).map {|n| n.gsub(%r{^(Dr|Jr|Sr|[A-Z])\.$}, '\1')}
asciize(name.join('-')).downcase.chomp('-')
end