[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