Class: Message

Inherits:
ApplicationRecord show all
Defined in:
app/models/message.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.topic?(word) ⇒ Boolean

Returns:

  • (Boolean)


28
29
30
# File 'app/models/message.rb', line 28

def self.topic?(word)
  (4..15).cover?(word.length)
end

.topic_of(topic) ⇒ Object



8
9
10
# File 'app/models/message.rb', line 8

def self.topic_of(topic)
  Message.joins(:message_topics).where(message_topics: { topic: topic })
end

Instance Method Details

#regenerate_topicsObject



32
33
34
35
36
37
# File 'app/models/message.rb', line 32

def regenerate_topics
  MessageTopic.where(message: self).delete_all
  topics.each do |word|
    MessageTopic.create(message: self, topic: word) if Message.topic?(word)
  end
end

#split(full: true) ⇒ Object



16
17
18
19
20
21
22
# File 'app/models/message.rb', line 16

def split(full: true)
  if full
    text.split(/([  ,.、。])/)
  else
    text.split(/[  ,.、。]/)
  end
end

#split_fullObject



12
13
14
# File 'app/models/message.rb', line 12

def split_full
  text.split(/([  ,.、。])/)
end

#topicsObject



24
25
26
# File 'app/models/message.rb', line 24

def topics
  split.uniq.delete_if { |word| !Message.topic?(word) }
end