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 e04a199 Add entry counts
e04a199 is described below
commit e04a199fe8df6cc31ab716091a8f9828ef231ce3
Author: Sebb <[email protected]>
AuthorDate: Fri Sep 10 12:35:59 2021 +0100
Add entry counts
---
www/roster/public_member_info.rb | 27 +++++++++++++++++++++++----
1 file changed, 23 insertions(+), 4 deletions(-)
diff --git a/www/roster/public_member_info.rb b/www/roster/public_member_info.rb
index 0a6c3c4..8e9a564 100644
--- a/www/roster/public_member_info.rb
+++ b/www/roster/public_member_info.rb
@@ -5,6 +5,9 @@
# {
# "last_updated": "2015-11-29 23:45:50 UTC", // date of members.txt
# "code_version": "2016-02-02 17:20:38 UTC",
+# "member_count": 123,
+# "Deceased Member": 8,
+# "Emeritus (Non-voting) Member": 133
# "members": [
# "m1",
# "m2",
@@ -28,24 +31,40 @@ CODEVERSION = ASF.library_mtime rescue nil
info = {
last_updated: (ASF::Member.svn_change rescue nil),
- code_version: CODEVERSION
+ code_version: CODEVERSION,
+ member_count: 0, # place-holders so appears at start
+ "Deceased Member": 0,
+ "Emeritus (Non-voting) Member": 0
}
info[:members] = Array.new
info[:ex_members] = Hash.new
-ASF::Member.list.each do |e,v|
+ex_members = Hash.new(0) # count of ex_member statuses
+
+ASF::Member.list.each do |e, v|
s = v['status']
- if s == nil
+ if s.nil?
info[:members] << e
else
info[:ex_members][e] = s
+ ex_members[s] += 1
end
end
# output results (the JSON module does not support sorting, so we pre-sort and
rely on insertion order preservation)
info[:members].sort!
-info[:ex_members] = Hash[info[:ex_members].sort]
+info[:ex_members] = info[:ex_members].sort.to_h
+
+# add counts
+info[:member_count] = info[:members].size
+
+ex_members.each do |k, v|
+ s = k.to_sym
+ # Check for missing place-holder value
+ Wunderbar.warn "ex_member: unexpected status #{k} - update placeholder
values" if info[s].nil?
+ info[s] = v
+end
public_json_output(info)