module Asciidoctor::Extensions

Public Class Methods

class_for_name(qualified_name) click to toggle source
# File lib/asciidoctor/extensions.rb, line 39
def class_for_name(qualified_name)
  qualified_name.split('::').inject(Object) do |module_, name|
    if name.empty?
      module_
    elsif module_.const_defined? name
      module_.const_get(name)
    else
      raise "Could not resolve class for name: #{qualified_name}"
    end
  end
end
register(extension = nil, &block) click to toggle source

QUESTION should we require extensions to have names? how about autogenerate name for class, assume extension is name of block if block is given having a name makes it easier to unregister an extension

# File lib/asciidoctor/extensions.rb, line 27
def register extension = nil, &block
  if block_given?
    registered << block
  elsif extension
    registered << resolve_class(extension)
  end 
end
registered() click to toggle source
# File lib/asciidoctor/extensions.rb, line 19
def registered
  @registered ||= []
end
registered?() click to toggle source
# File lib/asciidoctor/extensions.rb, line 15
def registered?
  !@registered.nil?
end
resolve_class(object) click to toggle source
# File lib/asciidoctor/extensions.rb, line 35
def resolve_class(object)
  object.is_a?(Class) ? object : class_for_name(object.to_s)
end
unregister_all() click to toggle source
# File lib/asciidoctor/extensions.rb, line 51
def unregister_all
  @registered = []
end