Sha256: 0eaae5212a7a8ecda38664b83ddffc9abb697f0b9977c086f2cb73171416bd15
Contents?: true
Size: 1.07 KB
Versions: 9
Compression:
Stored size: 1.07 KB
Contents
# frozen_string_literal: true require 'ostruct' module Quby module Answers module Repos class MemoryRepo < Base class Record < OpenStruct end def find_completed_after(time, answer_ids) records = storage.values.select do |record| answer_ids.include?(record._id) && record.completed_at.present? && record.completed_at > time end records.map { |record| entity(record) } end private def all_records(questionnaire_key) storage.values.select { |record| record.questionnaire_key == questionnaire_key } end def find_record(id) storage[id] end def build_record Record.new(_id: SecureRandom.uuid) end def store_record(record) storage[record[:_id]] = record record.created_at = Time.zone.now end def storage @storage ||= {} end def entity(record) entity_class.new(**record.to_h).tap(&:enhance_by_dsl) end end end end end
Version data entries
9 entries across 9 versions & 1 rubygems