blob: 7963e9afe173222a8b505d9e255c64277d44494c (
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
##
# A Document containing lists, headings, paragraphs, etc.
class RDoc::Markup::Document
##
# The parts of the Document
attr_reader :parts
##
# Creates a new Document with +parts+
def initialize *parts
@parts = []
@parts.push(*parts)
end
##
# Appends +part+ to the document
def << part
case part
when RDoc::Markup::Document then
unless part.empty? then
parts.push(*part.parts)
parts << RDoc::Markup::BlankLine.new
end
when String then
raise ArgumentError,
"expected RDoc::Markup::Document and friends, got String" unless
part.empty?
else
parts << part
end
end
def == other # :nodoc:
self.class == other.class and @parts == other.parts
end
def accept visitor
visitor.start_accepting
@parts.each do |item|
item.accept visitor
end
visitor.end_accepting
end
def empty?
@parts.empty?
end
def pretty_print q # :nodoc:
q.group 2, '[doc: ', ']' do
q.seplist @parts do |part|
q.pp part
end
end
end
##
# Appends +parts+ to the document
def push *parts
self.parts.push(*parts)
end
end
|