class Quby::Questionnaires::Repos::MemoryRepo

Attributes

records[R]

Public Class Methods

new(definitions = {}) click to toggle source
# File lib/quby/questionnaires/repos/memory_repo.rb, line 12
def initialize(definitions = {})
  @records = definitions.map do |key, definition|
    [key, record_for_definition(definition)]
  end.to_h
end

Public Instance Methods

exists?(key) click to toggle source
# File lib/quby/questionnaires/repos/memory_repo.rb, line 28
def exists?(key)
  records.key?(key)
end
find(key) click to toggle source
# File lib/quby/questionnaires/repos/memory_repo.rb, line 22
def find(key)
  fail(QuestionnaireNotFound, key) unless exists?(key)
  record = records.fetch(key)
  entity(key, record.fetch(:definition), record.fetch(:last_update), "memoryrepo #{key}")
end
keys() click to toggle source
# File lib/quby/questionnaires/repos/memory_repo.rb, line 18
def keys
  records.keys
end
timestamp(key) click to toggle source
# File lib/quby/questionnaires/repos/memory_repo.rb, line 32
def timestamp(key)
  fail(QuestionnaireNotFound, key) unless exists?(key)
  records.fetch(key).fetch(:last_update)
end

Private Instance Methods

record_for_definition(definition) click to toggle source
# File lib/quby/questionnaires/repos/memory_repo.rb, line 43
def record_for_definition(definition)
  {definition: definition, last_update: Time.now}
end
store!(key, definition) click to toggle source
# File lib/quby/questionnaires/repos/memory_repo.rb, line 39
def store!(key, definition)
  records[key] = record_for_definition(definition)
end