Module: Unread::Reader::InstanceMethods

Defined in:
lib/unread/reader.rb

Instance Method Summary collapse

Instance Method Details

#forget_memoized_read_mark_globalObject



28
29
30
# File 'lib/unread/reader.rb', line 28

def forget_memoized_read_mark_global
  @read_mark_global = nil
end

#have_read?(readable) ⇒ Boolean

Returns:

  • (Boolean)


32
33
34
35
36
37
38
39
# File 'lib/unread/reader.rb', line 32

def have_read?(readable)
  if self.respond_to?(:read_mark_id) && read_mark_id_belongs_to?(readable)
    # For use with scope "with_read_marks_for"
    !self.read_mark_id.nil?
  else
    !self.class.have_not_read(readable).exists?(self.id)
  end
end

#read_mark_global(klass) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
# File 'lib/unread/reader.rb', line 16

def read_mark_global(klass)
  @read_mark_global ||= {}
  readable_klass = klass.readable_parent

  # Memoize with NIL handling
  if @read_mark_global.has_key?(readable_klass)
    @read_mark_global[readable_klass]
  else
    @read_mark_global[readable_klass] = read_marks.where(readable_type: readable_klass.name).global.first
  end
end