Class: Markbridge::Conversion

Inherits:
Data
  • Object
show all
Defined in:
lib/markbridge/conversion.rb

Overview

Result of a *_to_markdown / convert / render call.

Wraps a Parse (the input-side fields: ast, format, unknown_tags, diagnostics) and adds the render-side outputs: markdown and errors. The wrapped Parse is reachable via #parsed, and each of its fields is also exposed as a delegated reader so the common usage stays ergonomic (+conversion.ast+, conversion.unknown_tags, …) without forcing callers to chain through #parsed.

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#errorsArray<StandardError> (readonly)

Returns render-time errors collected when raise_on_error: false was passed; empty otherwise.

Returns:

  • (Array<StandardError>)

    render-time errors collected when raise_on_error: false was passed; empty otherwise.



30
31
32
33
34
35
36
37
38
39
# File 'lib/markbridge/conversion.rb', line 30

Conversion =
Data.define(:parsed, :markdown, :errors) do
  def ast = parsed.ast
  def format = parsed.format
  def unknown_tags = parsed.unknown_tags
  def diagnostics = parsed.diagnostics

  # Allows +puts result+ and +"text: #{result}"+ to work seamlessly.
  def to_s = markdown
end

#markdownString (readonly)

Returns the rendered Discourse-flavored Markdown.

Returns:

  • (String)

    the rendered Discourse-flavored Markdown



30
31
32
33
34
35
36
37
38
39
# File 'lib/markbridge/conversion.rb', line 30

Conversion =
Data.define(:parsed, :markdown, :errors) do
  def ast = parsed.ast
  def format = parsed.format
  def unknown_tags = parsed.unknown_tags
  def diagnostics = parsed.diagnostics

  # Allows +puts result+ and +"text: #{result}"+ to work seamlessly.
  def to_s = markdown
end

#parsedParse (readonly)

Returns the parsed input — also reusable for a direct re-render via Markbridge.render(conversion.parsed, …).

Returns:

  • (Parse)

    the parsed input — also reusable for a direct re-render via Markbridge.render(conversion.parsed, …).



30
31
32
33
34
35
36
37
38
39
# File 'lib/markbridge/conversion.rb', line 30

Conversion =
Data.define(:parsed, :markdown, :errors) do
  def ast = parsed.ast
  def format = parsed.format
  def unknown_tags = parsed.unknown_tags
  def diagnostics = parsed.diagnostics

  # Allows +puts result+ and +"text: #{result}"+ to work seamlessly.
  def to_s = markdown
end

Instance Method Details

#astAST::Document

Returns delegated to Parse#ast.

Returns:



30
31
32
33
34
35
36
37
38
39
# File 'lib/markbridge/conversion.rb', line 30

Conversion =
Data.define(:parsed, :markdown, :errors) do
  def ast = parsed.ast
  def format = parsed.format
  def unknown_tags = parsed.unknown_tags
  def diagnostics = parsed.diagnostics

  # Allows +puts result+ and +"text: #{result}"+ to work seamlessly.
  def to_s = markdown
end

#diagnosticsHash{Symbol => Object}

Returns delegated to Parse#diagnostics.

Returns:



30
31
32
33
34
35
36
37
38
39
# File 'lib/markbridge/conversion.rb', line 30

Conversion =
Data.define(:parsed, :markdown, :errors) do
  def ast = parsed.ast
  def format = parsed.format
  def unknown_tags = parsed.unknown_tags
  def diagnostics = parsed.diagnostics

  # Allows +puts result+ and +"text: #{result}"+ to work seamlessly.
  def to_s = markdown
end

#formatSymbol?

Returns delegated to Parse#format.

Returns:



30
31
32
33
34
35
36
37
38
39
# File 'lib/markbridge/conversion.rb', line 30

Conversion =
Data.define(:parsed, :markdown, :errors) do
  def ast = parsed.ast
  def format = parsed.format
  def unknown_tags = parsed.unknown_tags
  def diagnostics = parsed.diagnostics

  # Allows +puts result+ and +"text: #{result}"+ to work seamlessly.
  def to_s = markdown
end

#to_sObject

Allows puts result and "text: #{result}" to work seamlessly.



38
# File 'lib/markbridge/conversion.rb', line 38

def to_s = markdown

#unknown_tagsHash{String => Integer}

Returns delegated to Parse#unknown_tags.

Returns:



30
31
32
33
34
35
36
37
38
39
# File 'lib/markbridge/conversion.rb', line 30

Conversion =
Data.define(:parsed, :markdown, :errors) do
  def ast = parsed.ast
  def format = parsed.format
  def unknown_tags = parsed.unknown_tags
  def diagnostics = parsed.diagnostics

  # Allows +puts result+ and +"text: #{result}"+ to work seamlessly.
  def to_s = markdown
end