mentions: process mentions added in an edit (fix #2736)

This commit is contained in:
evazion
2017-08-04 23:48:53 -05:00
parent 4c54e18c6d
commit 69d4712708
2 changed files with 22 additions and 3 deletions

View File

@@ -8,7 +8,8 @@ module Mentionable
def mentionable(options = {})
@mentionable_options = options
after_create :queue_mention_messages
message_field = mentionable_option(:message_field)
after_save :queue_mention_messages, if: :"#{message_field}_changed?"
end
def mentionable_option(key)
@@ -17,8 +18,11 @@ module Mentionable
end
def queue_mention_messages
text = read_attribute(self.class.mentionable_option(:message_field))
names = DText.parse_mentions(text)
message_field = self.class.mentionable_option(:message_field)
text = send(message_field)
text_was = send("#{message_field}_was")
names = DText.parse_mentions(text) - DText.parse_mentions(text_was)
names.uniq.each do |name|
body = self.instance_exec(name, &self.class.mentionable_option(:body))