From ede92dc96866f2aac183e6e0cf4dc6f9c4f06cba Mon Sep 17 00:00:00 2001 From: Eric M Date: Thu, 23 May 2019 22:14:05 -0400 Subject: [PATCH 1/2] Correct diff behavior for first revision --- app/models/diffed_revision.rb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/models/diffed_revision.rb b/app/models/diffed_revision.rb index 475a5370c..4fa124129 100644 --- a/app/models/diffed_revision.rb +++ b/app/models/diffed_revision.rb @@ -11,7 +11,7 @@ def initialize(revision, record) def diff @diff ||= Differ.diff_by_line( after[content_attribute], - before[content_attribute] + before_content ) end @@ -42,6 +42,10 @@ def before @before ||= YAML.load(@revision.object) end + def before_content + @revision.previous.event == 'create' ? before[content_attribute].gsub("\n", "\r\n") : before[content_attribute] + end + def after # Note: PaperTrail::Version#object will return `nil` if its event type # is `create` - but in theory, @revision.next below should always return From 1197d5ff1552ad14b4b6aba9b427705fd2e7f43b Mon Sep 17 00:00:00 2001 From: Eric M Date: Tue, 28 May 2019 23:31:04 -0400 Subject: [PATCH 2/2] Harmonize user-made issues as well --- app/models/diffed_revision.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/models/diffed_revision.rb b/app/models/diffed_revision.rb index 4fa124129..7b3305dac 100644 --- a/app/models/diffed_revision.rb +++ b/app/models/diffed_revision.rb @@ -43,7 +43,8 @@ def before end def before_content - @revision.previous.event == 'create' ? before[content_attribute].gsub("\n", "\r\n") : before[content_attribute] + harmonized_version = before[content_attribute].include?("\r\n") ? before[content_attribute] : before[content_attribute].gsub("\n", "\r\n") + @revision.previous.event == 'create' ? harmonized_version : before[content_attribute] end def after