Class: Slamdown::Conversion::Converter
- Inherits:
-
Object
- Object
- Slamdown::Conversion::Converter
- Defined in:
- lib/slamdown/conversion/converter.rb
Overview
Coordinates the validated public conversion pipeline and applies the conversion error-reporting contract.
Constant Summary collapse
- FORMATS =
{ "markdown" => Output::Markdown, "kramdown" => Output::Kramdown }.freeze
- ERROR_MODES =
[:raise, :warn, :silent].freeze
Class Method Summary collapse
Instance Method Summary collapse
- #convert(input, options) ⇒ Object
-
#initialize(format, errors) ⇒ Converter
constructor
A new instance of Converter.
Constructor Details
#initialize(format, errors) ⇒ Converter
Returns a new instance of Converter.
20 21 22 23 24 25 |
# File 'lib/slamdown/conversion/converter.rb', line 20 def initialize(format, errors) @format = normalise_format(format) @output_class = FORMATS.fetch(@format) validate_error_mode(errors) @errors = errors end |
Class Method Details
.convert(input, format:, options: {}, errors: :warn) ⇒ Object
15 16 17 |
# File 'lib/slamdown/conversion/converter.rb', line 15 def convert(input, format:, options: {}, errors: :warn) new(format, errors).convert(input, ) end |
Instance Method Details
#convert(input, options) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/slamdown/conversion/converter.rb', line 27 def convert(input, ) root = conversion_root(input) configuration = Configuration.build() prepared = Preparer.prepare(root, configuration) normalisation = Normaliser.normalise(prepared, configuration) rendering = Renderer.render(normalisation.tree, configuration, @format) report_rendering_errors(rendering.diagnostics) @output_class.new(rendering.output, normalisation.diagnostics + rendering.diagnostics) rescue ArgumentError raise rescue ConversionError raise rescue StandardError => error handle_conversion_error(error, defined?(normalisation) && normalisation ? normalisation.diagnostics : []) end |