class Ant::Server::Nanoservice::Datasource::Repository

Public Class Methods

new(id, id_generator) click to toggle source
# File lib/ant/server/nanoservice/datasource/repository.rb, line 9
def initialize(id, id_generator)
  @id = id
  @id_generator = id_generator
end

Public Instance Methods

create(id = nil) click to toggle source
# File lib/ant/server/nanoservice/datasource/repository.rb, line 20
def create(id = nil)
  data = create_initial_object(id)
  existent = exist?(data[@id])
  raise(ObjectAlreadyExists.new(data[@id], existent)) if existent
  create_(data)
end
create_initial_object(id) click to toggle source
# File lib/ant/server/nanoservice/datasource/repository.rb, line 14
def create_initial_object(id)
  object = { @id => @id_generator.call(id, @id) }
  object.merge!(id) if id.is_a?(Hash)
  object
end
exist?(id) click to toggle source
# File lib/ant/server/nanoservice/datasource/repository.rb, line 27
def exist?(id)
  get(id)
rescue ObjectNotFound
  nil
end