From 6f0a64c83f0a7fde780f62bbd3d112394c7a5a4d Mon Sep 17 00:00:00 2001 From: Mac Siri Date: Fri, 16 Mar 2018 17:02:32 -0400 Subject: [PATCH] Improve title parsing logic (#88) --- app/labor/markdown_fixer.rb | 2 +- spec/labor/markdown_fixer_spec.rb | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/app/labor/markdown_fixer.rb b/app/labor/markdown_fixer.rb index 43402fbe8..cdb2ef726 100644 --- a/app/labor/markdown_fixer.rb +++ b/app/labor/markdown_fixer.rb @@ -10,7 +10,7 @@ class MarkdownFixer end def add_quotes_to_title(markdown) - markdown.gsub(/title:\s?(.*?)\n/m) do |target| + markdown.gsub(/title:\s?(.*?)(\r\n|\n)/m) do |target| # $1 is the captured group (.*?) captured_title = $1 # The query below checks if the whole title is wrapped in diff --git a/spec/labor/markdown_fixer_spec.rb b/spec/labor/markdown_fixer_spec.rb index 652f50db6..749c543ba 100644 --- a/spec/labor/markdown_fixer_spec.rb +++ b/spec/labor/markdown_fixer_spec.rb @@ -30,10 +30,17 @@ RSpec.describe MarkdownFixer do end it "handles complex title" do - legacy_title = %(Book review: "#{sample_title}", part 1 I'm #deep) - expected_title = "\"Book review: \\\"#{sample_title}\\\", part 1 I'm #deep\"" + legacy_title = %(Book review: "#{sample_title}", part 1 I'm #testing) + expected_title = "\"Book review: \\\"#{sample_title}\\\", part 1 I'm #testing\"" test = described_class.fix_all(create_sample_markdown(legacy_title)) expect(test).to eq create_sample_markdown(expected_title) end + + it "handles title with \r\n" do + title = "\"hmm\"\r\n" + expected_title = "\"hmm\"\n" + test = described_class.fix_all(create_sample_markdown(title)) + expect(test).to eq create_sample_markdown(expected_title) + end end end