Module: Schemer::ActsAsSurveyor::LocalInstanceMethods
- Defined in:
- lib/schemer/acts_as_surveyor.rb
Instance Method Summary collapse
- #list_all_survey_questions(survey) ⇒ Object
- #list_all_surveys ⇒ Object
- #list_all_surveys_by_name ⇒ Object
- #list_incomplete_surveys ⇒ Object
- #list_unanswered_questions(surveyor) ⇒ Object
- #mark_survey_question(surveyor, option) ⇒ Object
- #squawk ⇒ Object
- #start_or_complete_survey(survey) ⇒ Object
Instance Method Details
#list_all_survey_questions(survey) ⇒ Object
42 43 44 |
# File 'lib/schemer/acts_as_surveyor.rb', line 42 def list_all_survey_questions(survey) survey.questions end |
#list_all_surveys ⇒ Object
23 24 25 |
# File 'lib/schemer/acts_as_surveyor.rb', line 23 def list_all_surveys ::Schemer::Survey.all end |
#list_all_surveys_by_name ⇒ Object
38 39 40 |
# File 'lib/schemer/acts_as_surveyor.rb', line 38 def list_all_surveys_by_name list_all_surveys.map(&:name) end |
#list_incomplete_surveys ⇒ Object
27 28 29 30 31 32 33 34 35 36 |
# File 'lib/schemer/acts_as_surveyor.rb', line 27 def list_incomplete_surveys ::Schemer::Survey. joins("LEFT JOIN schemer_surveyors ON schemer_surveyors.survey_id = schemer_surveys.id"). where(" (schemer_surveyors.surveyable_id IS NULL) OR (schemer_surveyors.surveyable_id != ? AND schemer_surveyors.surveyable_type = ?) OR (schemer_surveyors.surveyable_id = ? AND schemer_surveyors.surveyable_type = ? AND schemer_surveyors.is_completed != ?) ", id, self.class.name, id, self.class.name, true) end |
#list_unanswered_questions(surveyor) ⇒ Object
54 55 56 57 58 59 60 61 62 |
# File 'lib/schemer/acts_as_surveyor.rb', line 54 def list_unanswered_questions(surveyor) return surveyor. survey. questions. joins("LEFT JOIN schemer_answers ON schemer_questions.id = schemer_answers.question_id "). where("schemer_answers.id IS NULL") end |
#mark_survey_question(surveyor, option) ⇒ Object
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/schemer/acts_as_surveyor.rb', line 64 def mark_survey_question(surveyor, option) # create an answer record for surveyor record answer = surveyor.answers.create(option: option, question: option.question) questions = surveyor.survey.questions.map(&:id) answers = surveyor.answers.map(&:question_id) # check if all question in the survey are answered if (questions - answers).empty? # mark surveyor record as completed surveyor.update(is_completed: true) end return answer end |
#squawk ⇒ Object
80 81 82 |
# File 'lib/schemer/acts_as_surveyor.rb', line 80 def squawk "hello" end |
#start_or_complete_survey(survey) ⇒ Object
46 47 48 49 50 51 52 |
# File 'lib/schemer/acts_as_surveyor.rb', line 46 def start_or_complete_survey(survey) if (surveyor = feedbacks.where(survey: survey).where(is_completed: false).first).present? return surveyor else feedbacks.create(survey: survey) end end |