commit: 7bb28bf7804eadbaeac05e7adb8123a8fb6c5d02
parent: 262adb9791f32162340cec23e3b571655225a3da
Author: Eugen Rochko <eugen@zeonfederated.com>
Date: Sat, 5 Nov 2016 22:09:51 +0100
Improve @mention regex
Diffstat:
3 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/app/models/account.rb b/app/models/account.rb
@@ -1,7 +1,7 @@
class Account < ApplicationRecord
include Targetable
- MENTION_RE = /(?:^|\s|\.|>)@([a-z0-9_]+(?:@[a-z0-9\.\-]+)?)/i
+ MENTION_RE = /(?:^|[\s\.>*+])@([a-z0-9_]+(?:@[a-z0-9\.\-]+)?)/i
IMAGE_MIME_TYPES = ['image/jpeg', 'image/png', 'image/gif'].freeze
# Local users
diff --git a/app/services/process_hashtags_service.rb b/app/services/process_hashtags_service.rb
@@ -4,7 +4,7 @@ class ProcessHashtagsService < BaseService
tags = status.text.scan(Tag::HASHTAG_RE).map(&:first)
end
- tags.map(&:downcase).each do |tag|
+ tags.map(&:downcase).uniq.each do |tag|
status.tags << Tag.where(name: tag).first_or_initialize(name: tag)
end
end
diff --git a/spec/controllers/tags_controller_spec.rb b/spec/controllers/tags_controller_spec.rb
@@ -3,6 +3,10 @@ require 'rails_helper'
RSpec.describe TagsController, type: :controller do
describe 'GET #show' do
+ before do
+ Fabricate(:tag, name: 'test')
+ end
+
it 'returns http success' do
get :show, params: { id: 'test' }
expect(response).to have_http_status(:success)