class Coupdoeil::Hovercard::Registry

def initialize

def initialize
  @semaphore = Mutex.new
  @registry = Hash.new
end

def lookup(type) = @semaphore.synchronize {@registry.fetch(type) }

def lookup(type) = @semaphore.synchronize {@registry.fetch(type) }

def lookup_or_register(type)

def lookup_or_register(type)
  safe_lookup(type) ||
    begin
      register(type, (type.classify + "Hovercard").constantize)
    end
end

def register(type, klass) = @semaphore.synchronize { @registry[type] = klass }

def register(type, klass) = @semaphore.synchronize { @registry[type] = klass }

def safe_lookup(type) = @semaphore.synchronize {@registry[type] }

def safe_lookup(type) = @semaphore.synchronize {@registry[type] }