Module: TopicTagsMixin

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(klass) ⇒ Object



4
5
6
7
# File 'app/serializers/concerns/topic_tags_mixin.rb', line 4

def self.included(klass)
  klass.attributes :tags
  klass.attributes :tags_descriptions
end

Instance Method Details

#include_tags?Boolean

Returns:

  • (Boolean)


9
10
11
# File 'app/serializers/concerns/topic_tags_mixin.rb', line 9

def include_tags?
  scope.can_see_tags?(topic)
end

#tagsObject



13
14
15
# File 'app/serializers/concerns/topic_tags_mixin.rb', line 13

def tags
  all_tags.map(&:name)
end

#tags_descriptionsObject



17
18
19
# File 'app/serializers/concerns/topic_tags_mixin.rb', line 17

def tags_descriptions
  all_tags.each.with_object({}) { |tag, acc| acc[tag.name] = tag.description }.compact
end

#topicObject



21
22
23
# File 'app/serializers/concerns/topic_tags_mixin.rb', line 21

def topic
  object.is_a?(Topic) ? object : object.topic
end