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 1ea09584 Allow for different field offsets
1ea09584 is described below

commit 1ea09584ed8b61b56fe807b197ed5966730e4c6b
Author: Sebb <[email protected]>
AuthorDate: Sun Apr 30 13:45:32 2023 +0100

    Allow for different field offsets
---
 lib/whimsy/asf/committee.rb | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/lib/whimsy/asf/committee.rb b/lib/whimsy/asf/committee.rb
index e6271849..f2e89ae4 100644
--- a/lib/whimsy/asf/committee.rb
+++ b/lib/whimsy/asf/committee.rb
@@ -252,15 +252,24 @@ module ASF
 
         # split block into lines
         lines = block.strip.split("\n")
-
+        # get the first line and use that to calculate the offsets to use
+        # Note: this only affects new entries
+        sample = lines[1]
+        namelen = 26 # original
+        nameaddrlen = 59 # original
+        # N.B. 4 spaces are assumed at the start
+        if sample =~ %r{^    (\S.+) (<\S+?>\s+)\[}
+          namelen = $1.size
+          nameaddrlen = namelen + $2.size
+        end
         # add or remove people
         people.each do |person|
           id = person.id
           if action == 'add'
             unless lines.any? {|line| line.include? "<#{id}@apache.org>"}
-              name = "#{person.public_name.ljust(26)} <#{id}@apache.org>"
+              name = "#{person.public_name.ljust(namelen)} <#{id}@apache.org>"
               time = Time.new.gmtime.strftime('%Y-%m-%d')
-              lines << "    #{name.ljust(59)} [#{time}]"
+              lines << "    #{name.ljust(nameaddrlen)} [#{time}]"
             end
           elsif action == 'remove'
             lines.reject! {|line| line.include? "<#{id}@apache.org>"}

Reply via email to