module Mentionable

Constants

REGEXP
VERSION

Public Class Methods

included(base) click to toggle source
# File lib/mentionable.rb, line 8
def self.included(base)
  base.after_save do
    if self.class.class_variable_defined? :@@on_mention
      send self.class.on_mention, new_mentions if new_mentions?
    end
  end
  base.extend ClassMethods
end

Public Instance Methods

extract_mentions(text) click to toggle source
# File lib/mentionable.rb, line 38
def extract_mentions(text)
  text.scan(self.class.regexp).uniq
end
mentionable() click to toggle source
# File lib/mentionable.rb, line 42
def mentionable
  send self.class.mentionable_name
end
mentionable_before_last_save() click to toggle source
# File lib/mentionable.rb, line 46
def mentionable_before_last_save
  send "#{self.class.mentionable_name}_before_last_save"
end
mentions() click to toggle source
# File lib/mentionable.rb, line 50
def mentions
  extract_mentions(mentionable)
end
mentions?() click to toggle source
# File lib/mentionable.rb, line 54
def mentions?
  mentions.present?
end
mentions_were() click to toggle source
# File lib/mentionable.rb, line 58
def mentions_were
  extract_mentions(mentionable_before_last_save || '')
end
new_mentions() click to toggle source
# File lib/mentionable.rb, line 62
def new_mentions
  mentions - mentions_were
end
new_mentions?() click to toggle source
# File lib/mentionable.rb, line 66
def new_mentions?
  new_mentions.present?
end