class MinimalMarkdown::Parsers::UnorderedList

Public Class Methods

new(style) click to toggle source
# File lib/minimal_markdown/parsers/unordered_list.rb, line 3
def initialize(style)
end

Public Instance Methods

multiline?() click to toggle source
# File lib/minimal_markdown/parsers/unordered_list.rb, line 6
def multiline?
  true
end
update_tree(tree) click to toggle source
# File lib/minimal_markdown/parsers/unordered_list.rb, line 10
def update_tree(tree)
  tree.flat_map do |node|
    if node.is_a?(String)
      update_text(node)
    else
      node
    end
  end
end

Private Instance Methods

update_text(input) click to toggle source
# File lib/minimal_markdown/parsers/unordered_list.rb, line 22
def update_text(input)
  out = []

  while result = input.match(/(?:^[ ]*[*+-][ ]+[^\n]+(?:\n|$))+/m)
    out << result.pre_match unless result.pre_match.empty?

    children = result[0].split("\n").map do |line|
      ::MinimalMarkdown::Nodes::Text.new(line.sub(/^\s*[*+-]\s+/, ''))
    end
    out << ::MinimalMarkdown::Nodes::UnorderedList.new(children)

    input = result.post_match
  end

  out << input unless input.empty?
  out
end