Class: Rapidfire::SurveyResults
- Inherits:
-
BaseService
- Object
- BaseService
- Rapidfire::SurveyResults
- Defined in:
- app/services/rapidfire/survey_results.rb
Instance Attribute Summary collapse
-
#survey ⇒ Object
Returns the value of attribute survey.
Instance Method Summary collapse
-
#extract ⇒ Object
extracts question along with results each entry will have the following: 1.
Instance Attribute Details
#survey ⇒ Object
Returns the value of attribute survey.
3 4 5 |
# File 'app/services/rapidfire/survey_results.rb', line 3 def survey @survey end |
Instance Method Details
#extract ⇒ Object
extracts question along with results each entry will have the following:
-
question type and question id
-
question text
-
if aggregatable, return each option with value
-
else return an array of all the answers given
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'app/services/rapidfire/survey_results.rb', line 11 def extract @survey.questions.collect do |question| results = case question when Rapidfire::Questions::Select, Rapidfire::Questions::Radio, Rapidfire::Questions::Checkbox answers = question.answers.map(&:answer_text).map do |text| text.to_s.split(Rapidfire.answers_delimiter) end.flatten answers.inject(Hash.new(0)) { |total, e| total[e] += 1; total } when Rapidfire::Questions::Short, Rapidfire::Questions::Date, Rapidfire::Questions::Long, Rapidfire::Questions::Numeric question.answers.pluck(:answer_text) end QuestionResult.new(question: question, results: results) end end |