You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@whimsical.apache.org by ru...@apache.org on 2016/09/13 00:53:51 UTC

[whimsy] 02/02: make array accessors return nil if not found

This is an automated email from the ASF dual-hosted git repository.

rubys pushed a commit to branch master
in repository https://git-dual.apache.org/repos/asf/whimsy.git

commit 6b02789fca97d5274a2fab0ebdc495640e2c92f9
Author: Sam Ruby <ru...@intertwingly.net>
AuthorDate: Mon Sep 12 20:52:37 2016 -0400

    make array accessors return nil if not found
---
 lib/whimsy/asf/ldap.rb        | 18 ++++++++++++++++++
 lib/whimsy/asf/mail.rb        |  4 +++-
 lib/whimsy/asf/member.rb      |  2 +-
 www/members/subscriptions.cgi |  2 +-
 4 files changed, 23 insertions(+), 3 deletions(-)

diff --git a/lib/whimsy/asf/ldap.rb b/lib/whimsy/asf/ldap.rb
index dc2ed00..9b1bbdc 100644
--- a/lib/whimsy/asf/ldap.rb
+++ b/lib/whimsy/asf/ldap.rb
@@ -485,6 +485,12 @@ module ASF
       list.values
     end
 
+    # return person only if it actually exits
+    def self.[] name
+      person = super
+      person.attrs['dn'] ? nil : person
+    end
+
     def attrs
       @attrs ||= LazyHash.new {ASF.search_one(base, "uid=#{name}").first}
     end
@@ -621,6 +627,12 @@ module ASF
 
     attr_accessor :modifyTimestamp, :createTimestamp
 
+    # return group only if it actually exits
+    def self.[] name
+      group = super
+      group.members.empty? ? nil : group
+    end
+
     def members=(members)
       @members = WeakRef.new(members)
     end
@@ -700,6 +712,12 @@ module ASF
 
     attr_accessor :modifyTimestamp, :createTimestamp
 
+    # return committee only if it actually exits
+    def self.[] name
+      committee = super
+      committee.members.empty? ? nil : committee
+    end
+
     def members=(members)
       @members = WeakRef.new(members)
     end
diff --git a/lib/whimsy/asf/mail.rb b/lib/whimsy/asf/mail.rb
index c7629c7..cf8f156 100644
--- a/lib/whimsy/asf/mail.rb
+++ b/lib/whimsy/asf/mail.rb
@@ -21,7 +21,9 @@ module ASF
 
       # load all member emails in one pass
       ASF::Member.each do |id, text|
-        Member.emails(text).each {|mail| list[mail.downcase] ||= Person[id]}
+        Member.emails(text).each do |mail| 
+          list[mail.downcase] ||= Person.find(id)
+        end
       end
 
       # load all ICLA emails in one pass
diff --git a/lib/whimsy/asf/member.rb b/lib/whimsy/asf/member.rb
index 21bdd9f..08c2ef7 100644
--- a/lib/whimsy/asf/member.rb
+++ b/lib/whimsy/asf/member.rb
@@ -35,7 +35,7 @@ module ASF
       value = value.downcase
       each do |id, text|
         emails(text).each do |email|
-          return Person[id] if email.downcase == value
+          return Person.find(id) if email.downcase == value
         end
       end
       nil
diff --git a/www/members/subscriptions.cgi b/www/members/subscriptions.cgi
index 4fa869d..8477bc5 100755
--- a/www/members/subscriptions.cgi
+++ b/www/members/subscriptions.cgi
@@ -55,7 +55,7 @@ _html do
 
     ldap = ASF::Group['member'].members
 
-    members = ASF::Member.new.map {|id, text| ASF::Person[id]}
+    members = ASF::Member.new.map {|id, text| ASF::Person.find(id)}
     ASF::Person.preload('cn', members)
     maillist = ASF::Mail.list
 

-- 
To stop receiving notification emails like this one, please contact
"commits@whimsical.apache.org" <co...@whimsical.apache.org>.