diff --git a/app/models/status_message.rb b/app/models/status_message.rb index 9aaff3e07..0c8e998b2 100644 --- a/app/models/status_message.rb +++ b/app/models/status_message.rb @@ -25,6 +25,7 @@ class StatusMessage < Post serialize :youtube_titles, Hash before_create :build_tags + after_create :create_mentions def text(opts = {}) self.formatted_message(opts) @@ -46,9 +47,9 @@ class StatusMessage < Post end def format_mentions(text, opts = {}) - people = self.mentioned_people regex = /@\{([^;]+); ([^\}]+)\}/ form_message = text.gsub(regex) do |matched_string| + people = self.mentioned_people person = people.detect{ |p| p.diaspora_handle == $~[2] unless p.nil? } diff --git a/spec/models/status_message_spec.rb b/spec/models/status_message_spec.rb index 02595164b..80969ddb0 100644 --- a/spec/models/status_message_spec.rb +++ b/spec/models/status_message_spec.rb @@ -17,11 +17,6 @@ describe StatusMessage do end describe '.before_create' do - it 'calls create_mentions' do - status = Factory.build(:status_message) - status.should_receive(:create_mentions) - status.save - end it 'calls build_tags' do status = Factory.build(:status_message) status.should_receive(:build_tags) @@ -29,6 +24,14 @@ describe StatusMessage do end end + describe '.after_create' do + it 'calls create_mentions' do + status = Factory.build(:status_message) + status.should_receive(:create_mentions) + status.save + end + end + describe '#diaspora_handle=' do it 'sets #author' do person = Factory.create(:person)