summaryrefslogtreecommitdiff
path: root/lib/rdoc/markup/verbatim.rb
blob: faf539a7233cffbd70f20f30244c898ffde338ac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
##
# A section of verbatim text

class RDoc::Markup::Verbatim < RDoc::Markup::Paragraph

  def accept visitor
    visitor.accept_verbatim self
  end

  ##
  # Collapses 3+ newlines into two newlines

  def normalize
    parts = []

    newlines = 0

    @parts.each do |part|
      case part
      when /\n/ then
        newlines += 1
        parts << part if newlines <= 2
      else
        newlines = 0
        parts << part
      end
    end

    parts.slice!(-1) if parts[-2..-1] == ["\n", "\n"]

    @parts = parts
  end

  ##
  # The text of the section

  def text
    @parts.join
  end

end