parent
							
								
									59da5ccb8e
								
							
						
					
					
						commit
						0762258aec
					
				
					 2 changed files with 7 additions and 2 deletions
				
			
		|  | @ -25,8 +25,9 @@ class Tag < ApplicationRecord | |||
|   has_many :featured_tags, dependent: :destroy, inverse_of: :tag | ||||
|   has_one :account_tag_stat, dependent: :destroy | ||||
| 
 | ||||
|   HASHTAG_NAME_RE = '([[:word:]_][[:word:]_·]*[[:alpha:]_·][[:word:]_·]*[[:word:]_])|([[:word:]_]*[[:alpha:]][[:word:]_]*)' | ||||
|   HASHTAG_RE = /(?:^|[^\/\)\w])#(#{HASHTAG_NAME_RE})/i | ||||
|   HASHTAG_SEPARATORS = "_\u00B7\u200c" | ||||
|   HASHTAG_NAME_RE    = "([[:word:]_][[:word:]#{HASHTAG_SEPARATORS}]*[[:alpha:]#{HASHTAG_SEPARATORS}][[:word:]#{HASHTAG_SEPARATORS}]*[[:word:]_])|([[:word:]_]*[[:alpha:]][[:word:]_]*)" | ||||
|   HASHTAG_RE         = /(?:^|[^\/\)\w])#(#{HASHTAG_NAME_RE})/i | ||||
| 
 | ||||
|   validates :name, presence: true, format: { with: /\A(#{HASHTAG_NAME_RE})\z/i } | ||||
|   validate :validate_name_change, if: -> { !new_record? && name_changed? } | ||||
|  |  | |||
|  | @ -62,6 +62,10 @@ RSpec.describe Tag, type: :model do | |||
|       expect(subject.match('hello #one·two·three').to_s).to eq ' #one·two·three' | ||||
|     end | ||||
| 
 | ||||
|     it 'matches ZWNJ' do | ||||
|       expect(subject.match('just add #نرمافزار and').to_s).to eq ' #نرمافزار' | ||||
|     end | ||||
| 
 | ||||
|     it 'does not match middle dots at the start' do | ||||
|       expect(subject.match('hello #·one·two·three')).to be_nil | ||||
|     end | ||||
|  |  | |||
		Reference in a new issue