class Mato::Config

Constants

DEFAULT_MARKDOWN_EXTENSIONS

github.com/github/cmark/tree/master/extensions

DEFAULT_MARKDOWN_PARSE_OPTIONS

github.com/gjtorikian/commonmarker#parse-options

DEFAULT_MARKDOWN_RENDER_OPTIONS

github.com/gjtorikian/commonmarker#render-options

Attributes

document_factory[RW]

@return [Class<Mato::Document>]

html_filters[RW]

@return [Array<Proc>]

html_parser[RW]

@return [Cass<Nokogiri::HTML4::DocumentFragment>]

markdown_extensions[RW]

@return [Array<Symbol>] CommonMarker's parse extensions

markdown_filters[RW]

@return [Array<Proc>]

markdown_parse_options[RW]

@return [Array<Symbol>] CommonMarker's pars options

markdown_parser[RW]

@return [Class<CommonMarker]

markdown_render_options[RW]

@return [Array<Symbol>] CommonMarker's HTML rendering options

text_filters[RW]

@return [Array<Proc>]

Public Class Methods

new() click to toggle source
# File lib/mato/config.rb, line 60
def initialize
  @text_filters = []
  @markdown_filters = []
  @html_filters = []

  @markdown_parser = CommonMarker
  @html_parser = Nokogiri::HTML4::DocumentFragment

  @document_factory = Document

  @markdown_extensions = DEFAULT_MARKDOWN_EXTENSIONS
  @markdown_parse_options = DEFAULT_MARKDOWN_PARSE_OPTIONS
  @markdown_render_options = DEFAULT_MARKDOWN_RENDER_OPTIONS
end

Public Instance Methods

append_html_filter(html_filter, timeout: nil, on_timeout: nil, on_error: nil) click to toggle source
# File lib/mato/config.rb, line 93
def append_html_filter(html_filter, timeout: nil, on_timeout: nil, on_error: nil)
  raise "html_filter must respond to call()" unless html_filter.respond_to?(:call)

  html_filters.push(wrap(html_filter, timeout: timeout, on_timeout: on_timeout, on_error: on_error))
end
append_markdown_filter(markdown_filter, timeout: nil, on_timeout: nil, on_error: nil) click to toggle source
# File lib/mato/config.rb, line 87
def append_markdown_filter(markdown_filter, timeout: nil, on_timeout: nil, on_error: nil)
  raise "markdown_filter must respond to call()" unless markdown_filter.respond_to?(:call)

  markdown_filters.push(wrap(markdown_filter, timeout: timeout, on_timeout: on_timeout, on_error: on_error))
end
append_text_filter(text_filter, timeout: nil, on_timeout: nil, on_error: nil) click to toggle source
# File lib/mato/config.rb, line 81
def append_text_filter(text_filter, timeout: nil, on_timeout: nil, on_error: nil)
  raise "text_filter must respond to call()" unless text_filter.respond_to?(:call)

  text_filters.push(wrap(text_filter, timeout: timeout, on_timeout: on_timeout, on_error: on_error))
end
configure(&block) click to toggle source

@param [Proc] block @yieldparam [Mato::Config] config

# File lib/mato/config.rb, line 77
def configure(&block)
  block.call(self)
end

Private Instance Methods

wrap(filter, timeout:, on_timeout:, on_error:) click to toggle source
# File lib/mato/config.rb, line 101
def wrap(filter, timeout:, on_timeout:, on_error:)
  if timeout
    filter = Mato::Timeout.new(filter, timeout: timeout, on_timeout: on_timeout || on_error)
  end

  if on_error
    filter = Mato::Rescue.new(filter, on_error: on_error)
  end

  filter
end