Method: Unread::Base#acts_as_readable

Defined in:
lib/unread/base.rb

#acts_as_readable(options = {}) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/unread/base.rb', line 25

def acts_as_readable(options={})
  ReadMark.readable_classes ||= []

  unless ReadMark.readable_classes.include?(self)
    class_attribute :readable_options

    options.reverse_merge!(on: :updated_at)
    self.readable_options = options

    has_many :read_marks, as: :readable, dependent: :delete_all, inverse_of: :readable

    ReadMark.readable_classes << self

    include Readable::InstanceMethods
    extend Readable::ClassMethods
    extend Readable::Scopes
  end
end