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
The following commit(s) were added to refs/heads/master by this push:
new 57775e06 Add methods to get canonical member status
57775e06 is described below
commit 57775e06cb3a633f07aee4ba41c7c198f005087a
Author: Sebb <[email protected]>
AuthorDate: Wed Feb 8 16:58:36 2023 +0000
Add methods to get canonical member status
---
lib/whimsy/asf/member.rb | 21 +++++++++++++++++++++
lib/whimsy/asf/person.rb | 9 +++++++++
2 files changed, 30 insertions(+)
diff --git a/lib/whimsy/asf/member.rb b/lib/whimsy/asf/member.rb
index f7cbec64..c5589015 100644
--- a/lib/whimsy/asf/member.rb
+++ b/lib/whimsy/asf/member.rb
@@ -44,6 +44,27 @@ module ASF
result
end
+ # return the status of a member:
+ # - nil
+ # - :current
+ # - :emeritus
+ # - :deceased
+ def self.member_status(id)
+ entry = list[id]
+ return nil if entry.nil?
+ status = entry['status']
+ case status
+ when nil
+ :current
+ when %r{^Emeritus }
+ :emeritus
+ when %r{^Deceased }
+ :deceased
+ else
+ raise "Unexpected status: #{status.inspect} for #{id}"
+ end
+ end
+
# Find the ASF::Person associated with a given email
def self.find_by_email(value)
value = value.downcase
diff --git a/lib/whimsy/asf/person.rb b/lib/whimsy/asf/person.rb
index b308707f..df357d9b 100644
--- a/lib/whimsy/asf/person.rb
+++ b/lib/whimsy/asf/person.rb
@@ -274,5 +274,14 @@ module ASF
def asf_chair_or_member?
asf_member? or ASF.pmc_chairs.include? self
end
+
+ # Returns ASF membership status according to members.txt:
+ # <tt>:current</tt> if this person is listed as an ASF member
+ # <tt>:emeritus</tt> if this person is listed as an Emeritus ASF member
+ # <tt>:deceased</tt> if this person is listed as a Deceased ASF member
+ # <tt>nil</tt> otherwise (i.e. does not appear in members.txt)
+ def asf_member_status
+ ASF::Member.member_status name
+ end
end
end