lib/unread_mongoid/base.rb in unread-mongoid-0.0.5 vs lib/unread_mongoid/base.rb in unread-mongoid-0.1.0

- old
+ new

@@ -3,34 +3,20 @@ base.extend Base end module Base def acts_as_reader - ReadMark.belongs_to :user, :class_name => self.to_s + has_many :read_marks, as: :reader, dependent: :destroy - has_many :read_marks, :dependent => :destroy, :foreign_key => 'user_id', :inverse_of => :user - - after_create do |user| - # We assume that a new user should not be tackled by tons of old messages - # created BEFORE he signed up. - # Instead, the new user starts with zero unread messages - (ReadMark.readable_classes || []).each do |klass| - klass.mark_as_read! :all, :for => user - end - end - - include Reader::InstanceMethods + include Reader end - def acts_as_readable(options={}) - class_attribute :readable_options + def acts_as_readable + has_many :read_marks, as: :readable, dependent: :destroy - self.readable_options = options - - has_many :read_marks, :as => :readable, :dependent => :destroy - - ReadMark.readable_classes ||= [] - ReadMark.readable_classes << self unless ReadMark.readable_classes.include?(self) + before_save do |readable| + readable.mark_as_unread! + end include Readable::InstanceMethods extend Readable::ClassMethods extend Readable::Scopes end