From 930402101c09726ee9d9855cb303f2a8e7d7ab6c Mon Sep 17 00:00:00 2001 From: George Claghorn Date: Sun, 7 Jul 2019 22:03:06 -0400 Subject: Implement ActiveStorage::Blob#attachable_plain_text_representation Fixes that file attachments without captions would not be represented in plain text generated from rich-text content, causing ActionText::RichText#present? to return false. Closes #36607. --- actiontext/lib/action_text/engine.rb | 4 ++++ actiontext/test/unit/attachment_test.rb | 5 +++++ 2 files changed, 9 insertions(+) (limited to 'actiontext') diff --git a/actiontext/lib/action_text/engine.rb b/actiontext/lib/action_text/engine.rb index 0c2aebfd08..0f55d460a1 100644 --- a/actiontext/lib/action_text/engine.rb +++ b/actiontext/lib/action_text/engine.rb @@ -25,6 +25,10 @@ module ActionText def previewable_attachable? representable? end + + def attachable_plain_text_representation(caption = nil) + "[#{caption || filename}]" + end end end diff --git a/actiontext/test/unit/attachment_test.rb b/actiontext/test/unit/attachment_test.rb index 026078dcec..54831a0271 100644 --- a/actiontext/test/unit/attachment_test.rb +++ b/actiontext/test/unit/attachment_test.rb @@ -50,6 +50,11 @@ class ActionText::AttachmentTest < ActiveSupport::TestCase assert_not_nil trix_attachment.attributes["content"] end + test "converts to plain text" do + assert_equal "[Vroom vroom]", ActionText::Attachment.from_attachable(attachable, caption: "Vroom vroom").to_plain_text + assert_equal "[racecar.jpg]", ActionText::Attachment.from_attachable(attachable).to_plain_text + end + test "defaults trix partial to model partial" do attachable = Page.create! title: "Homepage" assert_equal "pages/page", attachable.to_trix_content_attachment_partial_path -- cgit v1.2.3