From 29804c8681ed8ffd9a529026a878b6f5713e6f66 Mon Sep 17 00:00:00 2001 From: CactusPuppy Date: Wed, 7 Apr 2021 22:48:57 -0700 Subject: [PATCH] Remove name conflict change which caused PaperTrail to fail --- app/models/concerns/track_saved_changes.rb | 32 +++++++++++----------- app/models/user.rb | 4 +-- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/app/models/concerns/track_saved_changes.rb b/app/models/concerns/track_saved_changes.rb index 660e347d..a7e928d4 100644 --- a/app/models/concerns/track_saved_changes.rb +++ b/app/models/concerns/track_saved_changes.rb @@ -4,43 +4,43 @@ module TrackSavedChanges included do # expose the details if consumer wants to do more - attr_reader :saved_changes_history, :saved_changes_unfiltered - after_initialize :reset_saved_changes - after_save :track_saved_changes + # attr_reader :ts_saved_changes_history, :ts_saved_changes_unfiltered + after_initialize :ts_reset_saved_changes + after_save :ts_track_saved_changes end # on initalize, but useful for fine grain control - def reset_saved_changes - @saved_changes_unfiltered = {} - @saved_changes_history = [] + def ts_reset_saved_changes + @ts_saved_changes_unfiltered = {} + @ts_saved_changes_history = [] end # filter out any changes that result in the original value - def saved_changes - @saved_changes_unfiltered.reject { |_k, v| v[0] == v[1] } + def ts_saved_changes + @ts_saved_changes_unfiltered.reject { |_k, v| v[0] == v[1] } end private # on save - def track_saved_changes + def ts_track_saved_changes # maintain an array of ActiveModel::Dirty.changes - @saved_changes_history << changes.dup + @ts_saved_changes_history << changes.dup # accumulate the most recent changes - @saved_changes_history.last.each_pair { |k, v| track_saved_change k, v } + @ts_saved_changes_history.last.each_pair { |k, v| ts_track_saved_change k, v } end # v is an an array of [prev, current] - def track_saved_change(key, value) - if @saved_changes_unfiltered.key? key - @saved_changes_unfiltered[key][1] = track_saved_value value[1] + def ts_track_saved_change(key, value) + if @ts_saved_changes_unfiltered.key? key + @ts_saved_changes_unfiltered[key][1] = ts_track_saved_value value[1] else - @saved_changes_unfiltered[key] = value.dup + @ts_saved_changes_unfiltered[key] = value.dup end end # type safe dup inspred by http://stackoverflow.com/a/20955038 - def track_saved_value(value) + def ts_track_saved_value(value) value.dup rescue TypeError value diff --git a/app/models/user.rb b/app/models/user.rb index 4eb10a1d..27b8ccc2 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -88,8 +88,8 @@ class User < ApplicationRecord # we must resort to using a ActiveRecord::Concern which accumulates # changes from a commit (app/models/concerns/track_saved_changes.rb) # See https://github.com/ccmcbeck/after-commit - after_update_commit :mailbluster_update_email, if: ->(obj){ obj.saved_changes.key? 'email' } - after_update_commit :mailbluster_update_name, if: ->(obj){ obj.saved_changes.key? 'name' } + after_update_commit :mailbluster_update_email, if: ->(obj){ obj.ts_saved_changes.key? 'email' } + after_update_commit :mailbluster_update_name, if: ->(obj){ obj.ts_saved_changes.key? 'name' } # add scope scope :comment_notifiable, ->(conference) {joins(:roles).where('roles.name IN (?)', [:organizer, :cfp]).where('roles.resource_type = ? AND roles.resource_id = ?', 'Conference', conference.id)}