class MinimalMarkdown::Parsers::Base

Public Instance Methods

multiline?() click to toggle source
# File lib/minimal_markdown/parsers/base.rb, line 3
def multiline?
  false
end
update_tree(tree) click to toggle source
# File lib/minimal_markdown/parsers/base.rb, line 7
def update_tree(tree)
  tree.each { |node| update_node(node) }
end

Private Instance Methods

update_node(node) click to toggle source
# File lib/minimal_markdown/parsers/base.rb, line 13
def update_node(node)
  if node.is_a?(::MinimalMarkdown::Nodes::Text)
    if node.text.is_a?(Array)
      update_tree(node.text)
    else
      out = []
      input = node.text
      while result = input.match(@regex)
        out << ::MinimalMarkdown::Nodes::Text.new(result.pre_match + result[1]) unless result.pre_match.empty?
        out << @node_class.new(::MinimalMarkdown::Nodes::Text.new(result[3]))
        input = result[4] + result.post_match
      end

      if !out.empty?
        out << ::MinimalMarkdown::Nodes::Text.new(input) unless input.empty?
        node.text = out
      end
    end
  elsif node.respond_to?(:children)
    update_tree(node.children)
  else
    update_node(node.child)
  end
end