class Quby::Answers::Repos::MongoidRepo
Public Instance Methods
find_completed_after(time, answer_ids)
click to toggle source
# File lib/quby/answer_repos/mongoid_repo.rb, line 48 def find_completed_after(time, answer_ids) records = Record.any_in(_id: answer_ids).where(:completed_at.gt => time) records.map { |record| entity(record) } end
update!(answer)
click to toggle source
# File lib/quby/answer_repos/mongoid_repo.rb, line 53 def update!(answer) record = find_record(answer.id) # MongoDB won't save new hash order if we don't clear it first. record.update_attributes!(scores: {}, actions: {}, completion: {}) update_attributes(record, answer) store_record(record) end
Private Instance Methods
all_records(questionnaire_key)
click to toggle source
# File lib/quby/answer_repos/mongoid_repo.rb, line 63 def all_records(questionnaire_key) Record.where(questionnaire_key: questionnaire_key).all.to_a end
build_record()
click to toggle source
# File lib/quby/answer_repos/mongoid_repo.rb, line 73 def build_record Record.new end
entity(record)
click to toggle source
# File lib/quby/answer_repos/mongoid_repo.rb, line 81 def entity(record) entity_class.new(record.attributes).tap(&:enhance_by_dsl) end
find_record(id)
click to toggle source
# File lib/quby/answer_repos/mongoid_repo.rb, line 67 def find_record(id) Record.find(id) rescue ::Mongoid::Errors::DocumentNotFound, ::Mongoid::Errors::InvalidFind raise AnswerNotFound, "Answer #{id.inspect} could not be found." end
store_record(record)
click to toggle source
# File lib/quby/answer_repos/mongoid_repo.rb, line 77 def store_record(record) record.save! end