Sha256: a8e27657aaf8168b839adb833fbc83d1da75cfc5b34404cd2cc50225187adf63
Contents?: true
Size: 1.06 KB
Versions: 19
Compression:
Stored size: 1.06 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
19 entries across 19 versions & 1 rubygems