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.
This commit is contained in:
Bob Van Landuyt 2017-05-02 15:24:41 +02:00
parent ffc486a585
commit 3dd2476eb3
2 changed files with 9 additions and 0 deletions

View File

@ -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

View File

@ -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