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] }