module Asciidoctor::Converter::DefaultFactory
def catch_all
def catch_all @@catch_all end
def for backend
def for backend @@registry.fetch backend do PROVIDED[backend] ? (@@mutex.synchronize do # require is thread-safe, so no reason to refetch require PROVIDED[backend] @@registry[backend] end) : catch_all end end
def register converter, *backends
def register converter, *backends if @@mutex.owned? backends.each {|backend| backend == '*' ? (@@catch_all = converter) : (@@registry = @@registry.merge backend => converter) } else @@mutex.synchronize { register converter, *backends } end end
def registry
def registry @@registry end
def unregister_all
def unregister_all @@mutex.synchronize do @@registry = @@registry.select {|backend| PROVIDED[backend] } @@catch_all = nil end end