# class RDoc::Markup::ToJoinedParagraph

frozen_string_literal: false

Joins the parts of an RDoc::Markup::Paragraph into a single String.

This allows for easier maintenance and testing of Markdown support.

This formatter only works on Paragraph instances. Attempting to process other markup syntax items will not work.

### Public Instance Methods

accept_paragraph(paragraph) click to toggle source

Converts the parts of `paragraph` to a single entry.

    # File lib/rdoc/markup/to_joined_paragraph.rb, line 25
    def accept_paragraph paragraph
      parts = []
      string = false

      paragraph.parts.each do |part|
        if String === part then
          if string then
            string << part
          else
            parts << part
            string = part
          end
        else
          parts << part
          string = false
        end
      end

      parts = parts.map do |part|
        if String === part then
          part.rstrip
        else
          part
        end
      end

      # TODO use Enumerable#chunk when Ruby 1.8 support is dropped
      #parts = paragraph.parts.chunk do |part|
      #  String === part
      #end.map do |string, chunk|
      #  string ? chunk.join.rstrip : chunk
      #end.flatten

      paragraph.parts.replace parts
    end