You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@whimsical.apache.org by Sam Ruby <ru...@apache.org> on 2016/03/31 15:00:41 UTC

[whimsy.git] [1/1] Commit 8ed3acb: always normalize members.txt

Commit 8ed3acb927600f9022a17f8622308e7ddc7eff37:
    always normalize members.txt


Branch: refs/heads/master
Author: Sam Ruby <ru...@intertwingly.net>
Committer: Sam Ruby <ru...@intertwingly.net>
Pusher: rubys <ru...@apache.org>

------------------------------------------------------------
lib/whimsy/asf/member.rb                                     | ++++++++ -
www/roster/views/actions/memstat.json.rb                     | ++ --
------------------------------------------------------------
13 changes: 10 additions, 3 deletions.
------------------------------------------------------------


diff --git a/lib/whimsy/asf/member.rb b/lib/whimsy/asf/member.rb
index 5c1bf27..b48b518 100644
--- a/lib/whimsy/asf/member.rb
+++ b/lib/whimsy/asf/member.rb
@@ -133,7 +133,14 @@ def self.text
     end
 
     # update local copy of members.txt
-    def self.text=text
+    def self.text=(text)
+      # normalize text: sort and update active count
+      text = ASF::Member.sort(text)
+      pattern = /^Active.*?^=+\n+(.*?)^Emeritus/m
+      text[/We now number (\d+) active members\./, 1] =
+        text[pattern].scan(/^\s\*\)\s/).length.to_s
+
+      # save
       @@mtime = Time.now
       @@text = WeakRef.new(text)
     end
diff --git a/www/roster/views/actions/memstat.json.rb b/www/roster/views/actions/memstat.json.rb
index e2d5fc1..7ec5b63 100644
--- a/www/roster/views/actions/memstat.json.rb
+++ b/www/roster/views/actions/memstat.json.rb
@@ -37,8 +37,8 @@
   # perform the insertion
   text.insert index, entry
 
-  # sort and save locally the updated text
-  ASF::Member.text = ASF::Member.sort(text)
+  # save the updated text
+  ASF::Member.text = text
 
   # save the results to disk
   File.write("#{tmpdir}/members.txt", ASF::Member.text)