class Rohbau::DefaultMemoryGateway

Public Class Methods

new(memory = Index.new, services = {}) click to toggle source
# File lib/rohbau/default_memory_gateway.rb, line 5
def initialize(memory = Index.new, services = {})
  @memory = memory
  @services = services
end

Public Instance Methods

add(entity) click to toggle source
# File lib/rohbau/default_memory_gateway.rb, line 14
def add(entity)
  @memory.add entity
end
all() click to toggle source
# File lib/rohbau/default_memory_gateway.rb, line 38
def all
  @memory.all
end
bulk_add(*entities) click to toggle source
# File lib/rohbau/default_memory_gateway.rb, line 18
def bulk_add(*entities)
  @memory.bulk_add(*entities)
end
bulk_delete(*uids) click to toggle source
# File lib/rohbau/default_memory_gateway.rb, line 34
def bulk_delete(*uids)
  @memory.bulk_delete(*uids)
end
delete(uid) click to toggle source
# File lib/rohbau/default_memory_gateway.rb, line 30
def delete(uid)
  @memory.delete(uid)
end
get(uid) click to toggle source
# File lib/rohbau/default_memory_gateway.rb, line 22
def get(uid)
  @memory.get(uid)
end
memory() click to toggle source
# File lib/rohbau/default_memory_gateway.rb, line 10
def memory
  @memory
end
size() click to toggle source
# File lib/rohbau/default_memory_gateway.rb, line 42
def size
  @memory.size
end
update(entity) click to toggle source
# File lib/rohbau/default_memory_gateway.rb, line 26
def update(entity)
  @memory.update(entity)
end

Protected Instance Methods

gateway_for_entity(entity_name) click to toggle source
# File lib/rohbau/default_memory_gateway.rb, line 72
def gateway_for_entity(entity_name)
  service(:"#{entity_name}_gateway")
end
map(entity_name, entity) click to toggle source
# File lib/rohbau/default_memory_gateway.rb, line 56
def map(entity_name, entity)
  gateway = gateway_for_entity(entity_name)

  if entity.uid
    result = gateway.update(entity)
  else
    result = gateway.add(entity)
  end

  result.uid
end
no_service_error(service_name) click to toggle source
# File lib/rohbau/default_memory_gateway.rb, line 52
def no_service_error(service_name)
  NotImplementedError.new("#{service_name} service in #{self.class}")
end
service(service_name) click to toggle source
# File lib/rohbau/default_memory_gateway.rb, line 48
def service(service_name)
  @services[service_name] || raise(no_service_error service_name)
end
unmap(entity_name, uid) click to toggle source
# File lib/rohbau/default_memory_gateway.rb, line 68
def unmap(entity_name, uid)
  gateway_for_entity(entity_name).get(uid)
end