diff --git a/lib/data_update_scripts/20220120052641_backfill_column_main_image_from_frontmatter.rb b/lib/data_update_scripts/20220120052641_backfill_column_main_image_from_frontmatter.rb deleted file mode 100644 index c91103a31..000000000 --- a/lib/data_update_scripts/20220120052641_backfill_column_main_image_from_frontmatter.rb +++ /dev/null @@ -1,11 +0,0 @@ -module DataUpdateScripts - class BackfillColumnMainImageFromFrontmatter - def run - Article.where(main_image_from_frontmatter: false).find_each do |article| - fixed_body_markdown = MarkdownProcessor::Fixer::FixAll.call(article.body_markdown || "") - parsed = FrontMatterParser::Parser.new(:md).call(fixed_body_markdown) - article.update!(main_image_from_frontmatter: true) if parsed.front_matter&.key?("cover_image") - end - end - end -end diff --git a/lib/data_update_scripts/20220203165540_update_article_cached_attribute_around_main_image.rb b/lib/data_update_scripts/20220203165540_update_article_cached_attribute_around_main_image.rb new file mode 100644 index 000000000..3d12940cb --- /dev/null +++ b/lib/data_update_scripts/20220203165540_update_article_cached_attribute_around_main_image.rb @@ -0,0 +1,16 @@ +module DataUpdateScripts + class UpdateArticleCachedAttributeAroundMainImage + # @note This is a re-runniing of an earlier version of + # `lib/data_update_scripts/20220120052641_backfill_column_main_image_from_frontmatter.rb` + + # @see https://github.com/forem/forem/blob/9a11beec50f93dee1bbd58331028236205026084/lib/data_update_scripts/20220120052641_backfill_column_main_image_from_frontmatter.rb + # for original version. + def run + Article.where(main_image_from_frontmatter: false).find_each do |article| + fixed_body_markdown = MarkdownProcessor::Fixer::FixAll.call(article.body_markdown || "") + parsed = FrontMatterParser::Parser.new(:md).call(fixed_body_markdown) + article.update_column(:main_image_from_frontmatter, true) if parsed.front_matter&.key?("cover_image") + end + end + end +end diff --git a/spec/lib/data_update_scripts/backfill_column_main_image_from_frontmatter_spec.rb b/spec/lib/data_update_scripts/update_article_cached_attribute_around_main_image_spec.rb similarity index 72% rename from spec/lib/data_update_scripts/backfill_column_main_image_from_frontmatter_spec.rb rename to spec/lib/data_update_scripts/update_article_cached_attribute_around_main_image_spec.rb index 374e35412..6c7371312 100644 --- a/spec/lib/data_update_scripts/backfill_column_main_image_from_frontmatter_spec.rb +++ b/spec/lib/data_update_scripts/update_article_cached_attribute_around_main_image_spec.rb @@ -1,9 +1,9 @@ require "rails_helper" require Rails.root.join( - "lib/data_update_scripts/20220120052641_backfill_column_main_image_from_frontmatter.rb", + "lib/data_update_scripts/20220203165540_update_article_cached_attribute_around_main_image.rb", ) -describe DataUpdateScripts::BackfillColumnMainImageFromFrontmatter do +RSpec.describe DataUpdateScripts::UpdateArticleCachedAttributeAroundMainImage do let(:article_without_image) { create(:article, with_main_image: false) } let(:article_main_image) { create(:article, with_main_image: true) } let(:article_markdown_image) do @@ -14,11 +14,13 @@ describe DataUpdateScripts::BackfillColumnMainImageFromFrontmatter do before do article_without_image article_main_image - article_markdown_image + # Need to do the following for the script to even run. + article_markdown_image.update_column(:main_image_from_frontmatter, false) end it "set main_image_from_frontmatter to true only for articles with cover_image in body_markdown" do described_class.new.run + expect(article_without_image.reload.main_image_from_frontmatter).to be false expect(article_main_image.reload.main_image_from_frontmatter).to be false expect(article_markdown_image.reload.main_image_from_frontmatter).to be true