[Rt-commit] rt branch, 4.4/serialize-json-initialdata, updated. rt-4.4.1-433-ga2632fc

Shawn Moore shawn at bestpractical.com
Thu Mar 23 17:24:04 EDT 2017


The branch, 4.4/serialize-json-initialdata has been updated
       via  a2632fca5042bdf92dd783962a96f5d33586bdeb (commit)
      from  829683e22417179c4aa49a9c95e4267e286bb8b1 (commit)

Summary of changes:
 sbin/rt-merge-initialdata.in | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

- Log -----------------------------------------------------------------
commit a2632fca5042bdf92dd783962a96f5d33586bdeb
Author: Shawn M Moore <shawn at bestpractical.com>
Date:   Thu Mar 23 21:21:00 2017 +0000

    Factor out an is_deeply_equal and use it for updates instead of eq

diff --git a/sbin/rt-merge-initialdata.in b/sbin/rt-merge-initialdata.in
index 7674949..0a52329 100644
--- a/sbin/rt-merge-initialdata.in
+++ b/sbin/rt-merge-initialdata.in
@@ -130,9 +130,9 @@ for my $type (@record_types) {
                 $_ = !!$_ if JSON::is_bool($_)
             }
 
-            if (!ref($base_value) && !ref($edited_value)) {
-                next if $base_value eq $edited_value;
+            next if is_deeply_equal($base_value, $edited_value);
 
+            if (!ref($base_value) && !ref($edited_value)) {
                 my $method = "Set$column";
                 if ($record->can($method) || $record->_Accessible($column, 'write')) {
                     my ($ok, $msg) = $record->$method($edited_value);
@@ -210,7 +210,7 @@ sub find_differences {
         }
         else {
             my $base_record = delete $base_by_id{$id};
-            next if $JSON->encode($base_record) eq $JSON->encode($edited_record);
+            next if is_deeply_equal($base_record, $edited_record);
             push @updated, [ $base_record => $edited_record ];
         }
     }
@@ -222,6 +222,11 @@ sub find_differences {
     return (\@new, \@updated, \@deleted);
 }
 
+sub is_deeply_equal {
+    my ($left, $right) = @_;
+    return $JSON->encode($left) eq $JSON->encode($right);
+}
+
 sub slurp_json {
     my $file = shift;
     local $/;

-----------------------------------------------------------------------


More information about the rt-commit mailing list