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>.