Well, the relevant code [1] is not included in the roster memstat code. So
using roster, moving members from/to Active/Emeritus does not result in proper
counts or having the entry in the proper place in the members.txt file.
So where does this code belong? It should probably live in a library file
somewhere. Perhaps in whimsy/lib/whimsy/asf/members.rb in the Person class?
Craig
[1]
# update members.txt
pattern = /^Active.*?^=+\n+(.*?)^Emeritus/m
members_txt = open(dest).read
data = members_txt.scan(pattern).flatten.first
members = data.split(/^\s+\*\)\s+/)
members.shift
members.push @entry
members_txt[pattern,1] = " *) " + members.join("\n *) ")
members_txt[/We now number (\d+) active members\./,1] = members.length.to_s
File.write(dest, ASF::Member.sort(members_txt))
> On Jul 10, 2020, at 8:37 PM, Craig Russell <[email protected]> wrote:
>
> Cool. So how does this code get called from memstat.json.rb?
>
>> On Jul 10, 2020, at 2:53 PM, Sam Ruby <[email protected]
>> <mailto:[email protected]>> wrote:
>>
>> On Fri, Jul 10, 2020 at 5:34 PM Craig Russell <[email protected]
>> <mailto:[email protected]>> wrote:
>>>
>>> I cannot find where the magic happens that updates the active member count
>>> in members.txt.
>>>
>>> When moving from active to emeritus:
>>> index = text.index(/^\s\*\)\s/, text.index(/^Emeritus/))
>>>
>>> When moving from emeritus to active:
>>> index = text.index(/^\s\*\)\s/, text.index(/^Active/))
>>>
>>> When moving from active to deceased:
>>> index = text.index(/^\s\*\)\s/, text.index(/^Deceased/))
>>>
>>> And then, adding the entry back:
>>> text.insert index, entry
>>
>> https://github.com/apache/whimsy/blob/d0aa149dae6b02373ec5df020a4e042149bc745e/www/secretary/workbench/views/actions/memapp.json.rb#L104-L105
>>
>> <https://github.com/apache/whimsy/blob/d0aa149dae6b02373ec5df020a4e042149bc745e/www/secretary/workbench/views/actions/memapp.json.rb#L104-L105>
>>
>> I highlighted two lines. The first will update the membership count.
>> The second will sort member names.
>>
>>> Craig L Russell
>>> [email protected] <mailto:[email protected]>
>>
>> - Sam Ruby
>
> Craig L Russell
> [email protected] <mailto:[email protected]>
>
Craig L Russell
[email protected]