Mixed into the {Converter} module to provide the global registry of converters that are registered statically.
This registry includes built-in converters for {Html5Converter HTML 5}, {DocBook5Converter DocBook 5} and {ManPageConverter man(ual) page}, as well as any custom converters that have been discovered or explicitly registered. Converter registration is synchronized (where applicable) and is thus guaranteed to be thread safe.
# File lib/asciidoctor/converter.rb, line 333 def catch_all @@catch_all end
# File lib/asciidoctor/converter.rb, line 315 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
# File lib/asciidoctor/converter.rb, line 300 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
# File lib/asciidoctor/converter.rb, line 293 def registry @@registry end
# File lib/asciidoctor/converter.rb, line 308 def unregister_all @@mutex.synchronize do @@registry = @@registry.select {|backend| PROVIDED[backend] } @@catch_all = nil end end