From d5f0359338421f9f35a203f330b708201191dcc2 Mon Sep 17 00:00:00 2001 From: Jorge Manrubia Date: Tue, 22 Apr 2025 14:19:45 +0200 Subject: [PATCH] Extract mentionable content using reflection to remove duplicated logic and the need for additional concerns --- app/models/card/mentions.rb | 11 ----------- app/models/concerns/mentions.rb | 6 ++++++ app/models/message/mentions.rb | 11 ----------- 3 files changed, 6 insertions(+), 22 deletions(-) delete mode 100644 app/models/card/mentions.rb delete mode 100644 app/models/message/mentions.rb diff --git a/app/models/card/mentions.rb b/app/models/card/mentions.rb deleted file mode 100644 index 79334b240..000000000 --- a/app/models/card/mentions.rb +++ /dev/null @@ -1,11 +0,0 @@ -module Card::Mentions - extend ActiveSupport::Concern - - included do - include ::Mentions - end - - def mentionable_content - description.to_plain_text - end -end diff --git a/app/models/concerns/mentions.rb b/app/models/concerns/mentions.rb index 8de010a98..fb891ef75 100644 --- a/app/models/concerns/mentions.rb +++ b/app/models/concerns/mentions.rb @@ -12,6 +12,12 @@ module Mentions end end + def mentionable_content + self.class.reflect_on_all_associations(:has_one).filter { it.klass == ActionText::Markdown }.collect do |association| + send(association.name).to_plain_text + end.join(" ") + end + private def collect_mentions_later Mention::CollectJob.perform_later(self, mentioner: Current.user) diff --git a/app/models/message/mentions.rb b/app/models/message/mentions.rb deleted file mode 100644 index f42ac5e1b..000000000 --- a/app/models/message/mentions.rb +++ /dev/null @@ -1,11 +0,0 @@ -module Message::Mentions - extend ActiveSupport::Concern - - included do - include ::Mentions - end - - def mentionable_content - messageable.try(:body_plain_text) - end -end