Sha256: cd8afe6f203e53d9f439c67f7e192d8fdab7d5e8e906aca04b9658c1e6f88679

Contents?: true

Size: 934 Bytes

Versions: 23

Compression:

Stored size: 934 Bytes

Contents

module MyForum
  class Topic < ActiveRecord::Base
    has_many    :posts, counter_cache: true, dependent: :destroy
    belongs_to  :forum, counter_cache: true
    belongs_to  :user

    def info
      author  = (post = posts.first).user.login
      created = post.created_at

      { author: author, created: created }
    end

    def owner
      posts.first.user
    end

    def unread?(current_user, last_post)
      return false unless current_user
      return false if current_user.created_at > last_post.created_at

      !LogReadMark.where(user_id: current_user.id, topic_id: self.id, post_id: last_post.id).present?
    end

    def mark_as_read(current_user, last_post)
      return true unless current_user

      log = LogReadMark.find_or_create_by(user_id: current_user.id, topic_id: self.id)

      if last_post.id.to_i > log.post_id.to_i
        log.post_id = last_post.id
        log.save
      end
    end
  end
end

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
my_forum-0.0.1.beta28 app/models/my_forum/topic.rb
my_forum-0.0.1.beta27 app/models/my_forum/topic.rb
my_forum-0.0.1.beta26 app/models/my_forum/topic.rb
my_forum-0.0.1.beta25 app/models/my_forum/topic.rb
my_forum-0.0.1.beta24 app/models/my_forum/topic.rb
my_forum-0.0.1.beta23 app/models/my_forum/topic.rb
my_forum-0.0.1.beta22 app/models/my_forum/topic.rb
my_forum-0.0.1.beta21 app/models/my_forum/topic.rb
my_forum-0.0.1.beta20 app/models/my_forum/topic.rb
my_forum-0.0.1.beta19 app/models/my_forum/topic.rb
my_forum-0.0.1.beta18 app/models/my_forum/topic.rb
my_forum-0.0.1.beta17 app/models/my_forum/topic.rb
my_forum-0.0.1.beta16 app/models/my_forum/topic.rb
my_forum-0.0.1.beta15 app/models/my_forum/topic.rb
my_forum-0.0.1.beta14 app/models/my_forum/topic.rb
my_forum-0.0.1.beta13 app/models/my_forum/topic.rb
my_forum-0.0.1.beta12 app/models/my_forum/topic.rb
my_forum-0.0.1.beta11 app/models/my_forum/topic.rb
my_forum-0.0.1.beta10 app/models/my_forum/topic.rb
my_forum-0.0.1.beta9 app/models/my_forum/topic.rb