Sha256: e0f9754b8bc4a0ccc0255df3bf5da86c9454a011cbea849e5a6f2e884aaa0dc8

Contents?: true

Size: 934 Bytes

Versions: 14

Compression:

Stored size: 934 Bytes

Contents

# frozen_string_literal: true

module Thredded
  # A view model for a page of MessageboardGroupViews.
  class MessageboardGroupView
    delegate :name, to: :@group, allow_nil: true
    attr_reader :group, :messageboards

    # @param messageboard_scope [ActiveRecord::Relation<Thredded::Messageboard>]
    # @return [Array<MessageboardGroupView>]
    def self.grouped(messageboard_scope)
      messageboard_scope.preload(last_topic: [:last_user])
        .eager_load(:group)
        .order('coalesce(thredded_messageboard_groups.position, 0) asc, thredded_messageboard_groups.id asc').ordered
        .group_by(&:group)
        .map { |(group, messageboards)| MessageboardGroupView.new(group, messageboards) }
    end

    # @param group Thredded::MessageboardGroup
    # @param messageboards [Thredded::TopicCommon]
    def initialize(group, messageboards)
      @group = group
      @messageboards = messageboards
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
thredded-0.14.1 app/view_models/thredded/messageboard_group_view.rb
thredded-0.14.0 app/view_models/thredded/messageboard_group_view.rb
thredded-0.13.8 app/view_models/thredded/messageboard_group_view.rb
thredded-0.13.7 app/view_models/thredded/messageboard_group_view.rb
thredded-0.13.6 app/view_models/thredded/messageboard_group_view.rb
thredded-0.13.5 app/view_models/thredded/messageboard_group_view.rb
thredded-0.13.4 app/view_models/thredded/messageboard_group_view.rb
thredded-0.13.3 app/view_models/thredded/messageboard_group_view.rb
thredded-0.13.2 app/view_models/thredded/messageboard_group_view.rb
thredded-0.13.1 app/view_models/thredded/messageboard_group_view.rb
thredded-0.13.0 app/view_models/thredded/messageboard_group_view.rb
thredded-0.12.4 app/view_models/thredded/messageboard_group_view.rb
thredded-0.12.3 app/view_models/thredded/messageboard_group_view.rb
thredded-0.12.2 app/view_models/thredded/messageboard_group_view.rb