module Undelivered::ReadMark::InstanceMethods

Public Instance Methods

mark_as_delivered_for!(reader) click to toggle source
# File lib/undelivered/read_mark.rb, line 12
def mark_as_delivered_for!(reader)
  ReadMark.transaction do
    rm = find_or_build_read_mark(reader, :delivered)
    rm.timestamp = self.send(read_mark_options[:on])
    rm.save!
  end
end
mark_as_read_for!(reader) click to toggle source
# File lib/undelivered/read_mark.rb, line 20
def mark_as_read_for!(reader)
  ReadMark.transaction do
    delivered_rm = find_or_build_read_mark(reader, :delivered)
    delivered_rm.timestamp = self.send(read_mark_options[:on])
    delivered_rm.save!
    read_rm = find_or_build_read_mark(reader, :read)
    read_rm.timestamp = self.send(read_mark_options[:on])
    read_rm.save!
  end
end

Private Instance Methods

find_or_build_read_mark(reader, status) click to toggle source
# File lib/undelivered/read_mark.rb, line 33
def find_or_build_read_mark(reader, status)
  read_marks.find_or_initialize_by(reader: reader, status: status)
end
find_read_mark(reader, status) click to toggle source
# File lib/undelivered/read_mark.rb, line 37
def find_read_mark(reader, status)
  read_marks.find_by(reader: reader, status: status)
end