Class: TopicParticipantGroupsSummary

Inherits:
Object
  • Object
show all
Defined in:
app/models/topic_participant_groups_summary.rb

Overview

This is used on a topic page

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(topic, options = {}) ⇒ TopicParticipantGroupsSummary

Returns a new instance of TopicParticipantGroupsSummary.



7
8
9
10
11
# File 'app/models/topic_participant_groups_summary.rb', line 7

def initialize(topic, options = {})
  @topic = topic
  @options = options
  @group = options[:group]
end

Instance Attribute Details

#optionsObject (readonly)

Returns the value of attribute options.



5
6
7
# File 'app/models/topic_participant_groups_summary.rb', line 5

def options
  @options
end

#topicObject (readonly)

Returns the value of attribute topic.



5
6
7
# File 'app/models/topic_participant_groups_summary.rb', line 5

def topic
  @topic
end

Instance Method Details

#group_idsObject



22
23
24
25
26
# File 'app/models/topic_participant_groups_summary.rb', line 22

def group_ids
  ids = topic.allowed_group_ids
  ids = ids - [@group.id] if @group.present?
  ids
end

#group_lookupObject



28
29
30
# File 'app/models/topic_participant_groups_summary.rb', line 28

def group_lookup
  @group_lookup ||= options[:group_lookup] || GroupLookup.new(group_ids)
end

#group_participantsObject



17
18
19
20
# File 'app/models/topic_participant_groups_summary.rb', line 17

def group_participants
  return [] if group_ids.blank?
  group_ids.map { |id| group_lookup[id] }
end

#summaryObject



13
14
15
# File 'app/models/topic_participant_groups_summary.rb', line 13

def summary
  group_participants.compact
end