From 4b5d4433275a36389ddb496ef51bf8aa6b1f42bc Mon Sep 17 00:00:00 2001 From: Jay Varner Date: Mon, 20 Oct 2025 13:28:40 -0400 Subject: [PATCH 1/4] Include previously published label --- app/views/letters/_letter.json.jbuilder | 1 + spec/requests/letters_spec.rb | 1 + 2 files changed, 2 insertions(+) diff --git a/app/views/letters/_letter.json.jbuilder b/app/views/letters/_letter.json.jbuilder index 90a567a..da58818 100644 --- a/app/views/letters/_letter.json.jbuilder +++ b/app/views/letters/_letter.json.jbuilder @@ -52,6 +52,7 @@ json.metadata do json.set! 'postcard_image', letter.postcard_image json.set! 'leaves_and_sides', [letter.leaves, letter.sides].join(', ') json.set! 'recipient', letter.recipient_list + json.set! 'previously_published', letter.letter_publisher&.label end json.repositories do diff --git a/spec/requests/letters_spec.rb b/spec/requests/letters_spec.rb index f752285..3ab9962 100644 --- a/spec/requests/letters_spec.rb +++ b/spec/requests/letters_spec.rb @@ -168,6 +168,7 @@ expect(letter.published).to be(true) get letter_url(letter), as: :json expect(json[:repositories]).to be_nil + expect(json[:metadata][:previously_published]).to eq(letter.letter_publisher.label) end it 'renders unpublished when requested from beckettapi' do From 7f07fc27a55bf6f3d3acbd1bcb3c3a0dca613f5c Mon Sep 17 00:00:00 2001 From: Jay Varner Date: Mon, 20 Oct 2025 13:37:11 -0400 Subject: [PATCH 2/4] Move previously published out of metadata --- app/views/letters/_letter.json.jbuilder | 3 ++- spec/requests/letters_spec.rb | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/app/views/letters/_letter.json.jbuilder b/app/views/letters/_letter.json.jbuilder index da58818..88bb053 100644 --- a/app/views/letters/_letter.json.jbuilder +++ b/app/views/letters/_letter.json.jbuilder @@ -52,7 +52,6 @@ json.metadata do json.set! 'postcard_image', letter.postcard_image json.set! 'leaves_and_sides', [letter.leaves, letter.sides].join(', ') json.set! 'recipient', letter.recipient_list - json.set! 'previously_published', letter.letter_publisher&.label end json.repositories do @@ -80,6 +79,8 @@ json.repositories do end end +json.set! 'previously_published', letter.letter_publisher.label if letter.letter_publisher.present? + json.set! 'publication_information', letter.publication_information if letter.publication_information.present? json.recipients do diff --git a/spec/requests/letters_spec.rb b/spec/requests/letters_spec.rb index 3ab9962..04ef8bf 100644 --- a/spec/requests/letters_spec.rb +++ b/spec/requests/letters_spec.rb @@ -168,7 +168,7 @@ expect(letter.published).to be(true) get letter_url(letter), as: :json expect(json[:repositories]).to be_nil - expect(json[:metadata][:previously_published]).to eq(letter.letter_publisher.label) + expect(json[:previously_published]).to eq(letter.letter_publisher.label) end it 'renders unpublished when requested from beckettapi' do From b44caf27c361d1f666bec93a049487ac475673cc Mon Sep 17 00:00:00 2001 From: Jay Varner Date: Thu, 23 Oct 2025 16:39:19 -0400 Subject: [PATCH 3/4] Fix bug when checking for Mac or Mc names --- app/jobs/load_big_sam_job.rb | 6 ++++-- spec/jobs/load_big_sam_job_spec.rb | 7 +++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/app/jobs/load_big_sam_job.rb b/app/jobs/load_big_sam_job.rb index b7c195b..14174db 100644 --- a/app/jobs/load_big_sam_job.rb +++ b/app/jobs/load_big_sam_job.rb @@ -384,9 +384,9 @@ def fix_date(row) end def mc_or_mac?(names) - return names if names.family.starts_with?(/Mc[A-Z]/) || names.family.starts_with?(/Mac[A-Z]/) + return names if names.family.start_with?(/Mc[A-Z]/) || names.family.start_with?(/Mac[A-Z]/) - if names.family.starts_with?('Mac ') || names.family.starts_with?('Mc ') + if names.family.start_with?('Mac ') || names.family.start_with?('Mc ') names.family = names.family.split.map(&:titleize).join return names end @@ -398,6 +398,8 @@ def mc_or_mac?(names) return names end + return names unless names.family.downcase.start_with?('mac') || names.family.downcase.start_with?('mc') + names.family.gsub!(/M.*c\K.*/, &:titleize) names end diff --git a/spec/jobs/load_big_sam_job_spec.rb b/spec/jobs/load_big_sam_job_spec.rb index c9908c5..37b6324 100644 --- a/spec/jobs/load_big_sam_job_spec.rb +++ b/spec/jobs/load_big_sam_job_spec.rb @@ -64,4 +64,11 @@ names = bs.mc_or_mac?(macintosh) expect(names.family).to eq('MacIntosh') end + + it 'handles M names that also include a c' do + bs = described_class.new + marcuse = Namae.parse('Herbert Marcuse').first + names = bs.mc_or_mac?(marcuse) + expect(names.family).to eq('Marcuse') + end end From f6d3b59a3ab202d508be82cad6d11e17c32643e8 Mon Sep 17 00:00:00 2001 From: Jay Varner Date: Fri, 6 Mar 2026 15:55:22 -0500 Subject: [PATCH 4/4] Add content to permitted attributes --- app/dashboards/letter_dashboard.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/dashboards/letter_dashboard.rb b/app/dashboards/letter_dashboard.rb index 0e89b86..b9c6714 100644 --- a/app/dashboards/letter_dashboard.rb +++ b/app/dashboards/letter_dashboard.rb @@ -119,6 +119,6 @@ def display_resource(letter) end def permitted_attributes(action = nil) - super + [:start_date] + super + %i[start_date content] end end