Sha256: 447659014899dc9caa8bdaeee1b278bbea11c374aabdbaf39784e504ff21eaac

Contents?: true

Size: 1.57 KB

Versions: 18

Compression:

Stored size: 1.57 KB

Contents

# frozen_string_literal: true

module Thredded
  # A view model for Messageboard.
  class MessageboardView
    delegate :name,
             :description,
             :locked?,
             :last_topic,
             :last_user,
             to: :@messageboard

    # @return [Integer]
    attr_reader :topics_count

    # @return [Integer]
    attr_reader :posts_count

    # @return [Integer]
    attr_reader :unread_topics_count

    # @return [Integer]
    attr_reader :unread_followed_topics_count

    # @param [Thredded::Messageboard] messageboard
    # @param [Integer] topics_count
    # @param [Integer] posts_count
    # @param [Integer] unread_topics_count
    # @param [Integer] unread_followed_topics_count
    def initialize(
      messageboard,
      topics_count: messageboard.topics_count,
      posts_count: messageboard.posts_count,
      unread_topics_count: 0,
      unread_followed_topics_count: 0
    )
      @messageboard = messageboard
      @topics_count = topics_count
      @posts_count = posts_count
      @unread_topics_count = unread_topics_count
      @unread_followed_topics_count = unread_followed_topics_count
    end

    # @return [Boolean]
    def unread_topics?
      !@unread_topics_count.zero?
    end

    # @return [Boolean]
    def unread_followed_topics?
      !@unread_followed_topics_count.zero?
    end

    # @return [String]
    def path
      Thredded::UrlsHelper.messageboard_topics_path(@messageboard)
    end

    # @return [String]
    def edit_preferences_path
      Thredded::UrlsHelper.edit_messageboard_preferences_path(@messageboard)
    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
thredded-1.1.0 app/view_models/thredded/messageboard_view.rb
thredded-1.0.1 app/view_models/thredded/messageboard_view.rb
thredded-1.0.0 app/view_models/thredded/messageboard_view.rb
thredded-0.16.16 app/view_models/thredded/messageboard_view.rb
thredded-0.16.15 app/view_models/thredded/messageboard_view.rb
thredded-0.16.14 app/view_models/thredded/messageboard_view.rb
thredded-0.16.13 app/view_models/thredded/messageboard_view.rb
thredded-0.16.12 app/view_models/thredded/messageboard_view.rb
thredded-0.16.11 app/view_models/thredded/messageboard_view.rb
thredded-0.16.10 app/view_models/thredded/messageboard_view.rb
thredded-0.16.9 app/view_models/thredded/messageboard_view.rb
thredded-0.16.8 app/view_models/thredded/messageboard_view.rb
thredded-0.16.7 app/view_models/thredded/messageboard_view.rb
thredded-0.16.6 app/view_models/thredded/messageboard_view.rb
thredded-0.16.5 app/view_models/thredded/messageboard_view.rb
thredded-0.16.4 app/view_models/thredded/messageboard_view.rb
thredded-0.16.3 app/view_models/thredded/messageboard_view.rb
thredded-0.16.1 app/view_models/thredded/messageboard_view.rb