Module: ActsAsMentionable::Mentioner

Extended by:
ActiveSupport::Concern
Defined in:
lib/acts_as_mentionable/mentioner.rb

Instance Method Summary collapse

Instance Method Details

#mention(*mentionables, save: false) ⇒ Object



20
21
22
23
# File 'lib/acts_as_mentionable/mentioner.rb', line 20

def mention *mentionables, save: false
  mentionables_manipulator.add(*mentionables)
  return_changes { save_mentions if save }
end

#mentionablesObject



16
17
18
# File 'lib/acts_as_mentionable/mentioner.rb', line 16

def mentionables
  RetrievePolymorphic.new(mentions, :mentionable).call
end

#mentioner?Boolean

Returns:

  • (Boolean)


12
13
14
# File 'lib/acts_as_mentionable/mentioner.rb', line 12

def mentioner?
  true
end

#replace_mentionables(*mentionables, save: false) ⇒ Object



30
31
32
33
# File 'lib/acts_as_mentionable/mentioner.rb', line 30

def replace_mentionables *mentionables, save: false
  mentionables_manipulator.replace(*mentionables)
  return_changes { save_mentions if save }
end

#save_mentionsObject



35
36
37
38
39
40
41
42
43
# File 'lib/acts_as_mentionable/mentioner.rb', line 35

def save_mentions
  return unless mentionables_manipulator.changed?

  return_changes do
    MentionsUpdater.new(self, mentionables_manipulator.changes).call do
      fix_mentionables_changes!
    end
  end
end

#unmention(*mentionables, save: false) ⇒ Object



25
26
27
28
# File 'lib/acts_as_mentionable/mentioner.rb', line 25

def unmention *mentionables, save: false
  mentionables_manipulator.remove(*mentionables)
  return_changes { save_mentions if save }
end