def self.require_library name, gem_name = true, on_failure = :abort
require name
rescue ::LoadError => e
if gem_name
gem_name = name if gem_name == true
case on_failure
when :abort
fail %(asciidoctor: FAILED: required gem '#{gem_name}' is not installed. Processing aborted.)
when :warn
warn %(asciidoctor: WARNING: optional gem '#{gem_name}' is not installed. Functionality disabled.)
end
else
case on_failure
when :abort
fail %(asciidoctor: FAILED: #{e.message.chomp '.'}. Processing aborted.)
when :warn
warn %(asciidoctor: WARNING: #{e.message.chomp '.'}. Functionality disabled.)
end
end
end