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 cd58ea36 Use deep copy on hashes
cd58ea36 is described below
commit cd58ea3647d4a3ab2e0e0c80244ee2e879b2440f
Author: Sebb <[email protected]>
AuthorDate: Sun Apr 23 00:37:11 2023 +0100
Use deep copy on hashes
---
lib/whimsy/asf.rb | 9 +++++++++
www/roster/models/committee.rb | 2 +-
www/roster/models/nonpmc.rb | 2 +-
www/roster/views/members.html.rb | 2 +-
4 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/lib/whimsy/asf.rb b/lib/whimsy/asf.rb
index 0ebadbcb..aca3f8be 100644
--- a/lib/whimsy/asf.rb
+++ b/lib/whimsy/asf.rb
@@ -38,4 +38,13 @@ module ASF
return @info if @info
@info = `git show --format="%h %ci" -s HEAD`.strip
end
+
+ # duplicate an object, allowing for nested hashes
+ def self.dup(obj)
+ obj.dup.tap do |new_obj|
+ new_obj.each do |key, val|
+ new_obj[key] = ASF.dup(val) if val.is_a?(Hash)
+ end
+ end
+ end
end
diff --git a/www/roster/models/committee.rb b/www/roster/models/committee.rb
index 3a471abe..b7c0e875 100644
--- a/www/roster/models/committee.rb
+++ b/www/roster/models/committee.rb
@@ -48,7 +48,7 @@ class Committee
lists = ASF::MLIST.domain_lists(pmc.mail_list, false)
end
- roster = pmc.roster.dup # from committee-info
+ roster = ASF.dup(pmc.roster) # from committee-info
# ensure PMC members are all processed even they don't belong to the owner
group
roster.each do |key, value|
value[:role] = 'PMC member'
diff --git a/www/roster/models/nonpmc.rb b/www/roster/models/nonpmc.rb
index 9cd25949..cd02a72d 100644
--- a/www/roster/models/nonpmc.rb
+++ b/www/roster/models/nonpmc.rb
@@ -49,7 +49,7 @@ class NonPMC
lists = ASF::MLIST.domain_lists(mail_list, false)
end
- roster = cttee.roster.dup
+ roster = ASF.dup(cttee.roster)
# if the roster is empty, then add the chair(s)
if roster.empty?
cttee.chairs.each do |ch|
diff --git a/www/roster/views/members.html.rb b/www/roster/views/members.html.rb
index 828be174..67cdb919 100644
--- a/www/roster/views/members.html.rb
+++ b/www/roster/views/members.html.rb
@@ -13,7 +13,7 @@ _html do
members: 'members'
}
) do
- members = ASF::Member.list.dup
+ members = ASF.dup(ASF::Member.list)
# ********************************************************************
# * Summary *
# ********************************************************************