Sha256: e420492cc273df837a771f55589b4cc9be50daea44e16f18c89a51826bf0acfd
Contents?: true
Size: 1.89 KB
Versions: 3
Compression:
Stored size: 1.89 KB
Contents
module ActionController class Base < Metal protected def update_qwester_answer_store get_qwester_answer_store(true) add_answers_to_qwester_answer_store add_questionnaire_to_qwester_answer_store end def get_qwester_answer_store(create_new = false) if session[Qwester.session_key] current_qwester_answer_store elsif create_new new_qwester_answer_store end end helper_method :get_qwester_answer_store def current_qwester_answer_store @qwester_answer_store = Qwester::AnswerStore.find_by_session_id(session[Qwester.session_key]) end def new_qwester_answer_store set_qwester_answer_store Qwester::AnswerStore.create end def set_qwester_answer_store(answer_store) @qwester_answer_store = answer_store session[Qwester.session_key] = @qwester_answer_store.session_id @qwester_answer_store end def matching_rule_sets if get_qwester_answer_store Qwester::RuleSet.matching(@qwester_answer_store.answers) end end # private def add_answers_to_qwester_answer_store answers = params[:question_id].values.collect do |question_values| question_values[:answer_ids].collect{|id| Qwester::Answer.find(id)} end answers.flatten! remove_answers_to_questions_answered_with(answers) if answers.present? @qwester_answer_store.answers = (@qwester_answer_store.answers | answers) end def remove_answers_to_questions_answered_with(answers) question_ids = answers.collect(&:question_id).uniq answers_to_delete = @qwester_answer_store.answers.collect {|a| a if question_ids.include? a.question_id.to_i}.compact @qwester_answer_store.answers.delete(answers_to_delete) end def add_questionnaire_to_qwester_answer_store @qwester_answer_store.questionnaires << @questionnaire end end end
Version data entries
3 entries across 3 versions & 1 rubygems