class ActsAsMentionable::MentionablesManipulator
Attributes
current_set[R]
previous_set[R]
Public Class Methods
new(mentionables)
click to toggle source
# File lib/acts_as_mentionable/mentionables_manipulator.rb, line 5 def initialize mentionables @previous_set = mentionables.to_set @current_set = mentionables.to_set end
Public Instance Methods
add(*mentionables)
click to toggle source
# File lib/acts_as_mentionable/mentionables_manipulator.rb, line 10 def add *mentionables current_set.merge prepare_mentionables(mentionables) self end
added()
click to toggle source
# File lib/acts_as_mentionable/mentionables_manipulator.rb, line 44 def added (current_set - previous_set).to_a end
changed?()
click to toggle source
# File lib/acts_as_mentionable/mentionables_manipulator.rb, line 40 def changed? current_set != previous_set end
changes()
click to toggle source
# File lib/acts_as_mentionable/mentionables_manipulator.rb, line 30 def changes { changed: changed?, added: added, removed: removed, previous: previous, current: current } end
current()
click to toggle source
# File lib/acts_as_mentionable/mentionables_manipulator.rb, line 56 def current current_set.to_a end
fix_changes!()
click to toggle source
# File lib/acts_as_mentionable/mentionables_manipulator.rb, line 25 def fix_changes! previous_set.replace current_set self end
previous()
click to toggle source
# File lib/acts_as_mentionable/mentionables_manipulator.rb, line 52 def previous previous_set.to_a end
remove(*mentionables)
click to toggle source
# File lib/acts_as_mentionable/mentionables_manipulator.rb, line 15 def remove *mentionables current_set.subtract prepare_mentionables(mentionables) self end
removed()
click to toggle source
# File lib/acts_as_mentionable/mentionables_manipulator.rb, line 48 def removed (previous_set - current_set).to_a end
replace(*mentionables)
click to toggle source
# File lib/acts_as_mentionable/mentionables_manipulator.rb, line 20 def replace *mentionables current_set.replace prepare_mentionables(mentionables) self end
Private Instance Methods
prepare_mentionables(mentionables)
click to toggle source
# File lib/acts_as_mentionable/mentionables_manipulator.rb, line 62 def prepare_mentionables mentionables mentionables.flatten end