Class: Decidim::Forms::UserAnswersSerializer

Inherits:
Exporters::Serializer show all
Includes:
TranslationsHelper
Defined in:
decidim-forms/lib/decidim/forms/user_answers_serializer.rb

Overview

This class serializes the answers given by a User for questionnaire so can be exported to CSV, JSON or other formats.

Instance Method Summary collapse

Methods included from TranslationsHelper

empty_translatable, ensure_translatable, multi_translation, translated_in_current_locale?

Methods included from TranslatableAttributes

#default_locale?

Methods inherited from Exporters::Serializer

#event_name, #finalize, #run

Constructor Details

#initialize(answers) ⇒ UserAnswersSerializer

Public: Initializes the serializer with a collection of Answers.


11
12
13
# File 'decidim-forms/lib/decidim/forms/user_answers_serializer.rb', line 11

def initialize(answers)
  @answers = answers
end

Instance Method Details

#serializeObject

Public: Exports a hash with the serialized data for the user answers.


16
17
18
19
20
21
22
23
24
25
# File 'decidim-forms/lib/decidim/forms/user_answers_serializer.rb', line 16

def serialize
  answers_hash = hash_for(@answers.first)
  answers_hash.merge!(questions_hash)

  @answers.each do |answer|
    answers_hash[translated_question_key(answer.question.position, answer.question.body)] = normalize_body(answer)
  end

  answers_hash
end