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