From 3dd2476eb395ca706763210ef1f37978889c595d Mon Sep 17 00:00:00 2001 From: Bob Van Landuyt Date: Tue, 2 May 2017 15:24:41 +0200 Subject: [PATCH] Refresh the markdown cache if it was `nil` If the cached html_field for a markdown_field is `nil` while the mfarkdown_field is not, it needs to be refreshed. --- app/models/concerns/cache_markdown_field.rb | 3 +++ spec/models/concerns/cache_markdown_field_spec.rb | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/app/models/concerns/cache_markdown_field.rb b/app/models/concerns/cache_markdown_field.rb index f033028c4e5..eb32bf3d32a 100644 --- a/app/models/concerns/cache_markdown_field.rb +++ b/app/models/concerns/cache_markdown_field.rb @@ -78,6 +78,9 @@ module CacheMarkdownField def cached_html_up_to_date?(markdown_field) html_field = cached_markdown_fields.html_field(markdown_field) + cached = !cached_html_for(markdown_field).nil? && !__send__(markdown_field).nil? + return false unless cached + markdown_changed = attribute_changed?(markdown_field) || false html_changed = attribute_changed?(html_field) || false diff --git a/spec/models/concerns/cache_markdown_field_spec.rb b/spec/models/concerns/cache_markdown_field_spec.rb index 4edafbc4e32..40bbb10eaac 100644 --- a/spec/models/concerns/cache_markdown_field_spec.rb +++ b/spec/models/concerns/cache_markdown_field_spec.rb @@ -170,6 +170,12 @@ describe CacheMarkdownField do is_expected.to be_truthy end + + it 'returns false if the markdown field is set but the html is not' do + thing.foo_html = nil + + is_expected.to be_falsy + end end describe '#refresh_markdown_cache!' do