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)
 

Reply via email to