diff --git a/lib/post_creator.rb b/lib/post_creator.rb index 4d2b158b87f..2d54204d99b 100644 --- a/lib/post_creator.rb +++ b/lib/post_creator.rb @@ -172,7 +172,7 @@ class PostCreator def self.before_create_tasks(post) set_reply_info(post) - post.word_count = post.raw.scan(/\w+/).size + post.word_count = post.raw.scan(/[[:word:]]+/).size post.post_number ||= Topic.next_post_number(post.topic_id, post.reply_to_post_number.present?) cooking_options = post.cooking_options || {} diff --git a/lib/post_revisor.rb b/lib/post_revisor.rb index e081864201d..873be66e0d2 100644 --- a/lib/post_revisor.rb +++ b/lib/post_revisor.rb @@ -229,7 +229,7 @@ class PostRevisor end @post.last_editor_id = @editor.id - @post.word_count = @fields[:raw].scan(/\w+/).size if @fields.has_key?(:raw) + @post.word_count = @fields[:raw].scan(/[[:word:]]+/).size if @fields.has_key?(:raw) @post.self_edits += 1 if self_edit? remove_flags_and_unhide_post diff --git a/spec/components/post_creator_spec.rb b/spec/components/post_creator_spec.rb index 2cdef4aef8f..958cdbd8e0d 100644 --- a/spec/components/post_creator_spec.rb +++ b/spec/components/post_creator_spec.rb @@ -595,12 +595,12 @@ describe PostCreator do describe "word_count" do it "has a word count" do - creator = PostCreator.new(user, title: 'some inspired poetry for a rainy day', raw: 'mary had a little lamb, little lamb, little lamb. mary had a little lamb') + creator = PostCreator.new(user, title: 'some inspired poetry for a rainy day', raw: 'mary had a little lamb, little lamb, little lamb. mary had a little lamb. Здравствуйте') post = creator.create - expect(post.word_count).to eq(14) + expect(post.word_count).to eq(15) post.topic.reload - expect(post.topic.word_count).to eq(14) + expect(post.topic.word_count).to eq(15) end end diff --git a/spec/components/post_revisor_spec.rb b/spec/components/post_revisor_spec.rb index 0c035fcea4f..4667ede9cd3 100644 --- a/spec/components/post_revisor_spec.rb +++ b/spec/components/post_revisor_spec.rb @@ -278,14 +278,14 @@ describe PostRevisor do describe 'with a new body' do let(:changed_by) { Fabricate(:coding_horror) } - let!(:result) { subject.revise!(changed_by, { raw: "lets update the body" }) } + let!(:result) { subject.revise!(changed_by, { raw: "lets update the body. Здравствуйте" }) } it 'returns true' do expect(result).to eq(true) end it 'updates the body' do - expect(post.raw).to eq("lets update the body") + expect(post.raw).to eq("lets update the body. Здравствуйте") end it 'sets the invalidate oneboxes attribute' do @@ -306,9 +306,9 @@ describe PostRevisor do end it "updates the word count" do - expect(post.word_count).to eq(4) + expect(post.word_count).to eq(5) post.topic.reload - expect(post.topic.word_count).to eq(4) + expect(post.topic.word_count).to eq(5) end context 'second poster posts again quickly' do