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