Class: SM::LineCollection

Inherits:
Object
  • Object
show all
Defined in:
lib/rdoc/markup/simple_markup/fragments.rb

Overview

Collect groups of lines together. Each group will end up containing a flow of text

Instance Method Summary collapse

Constructor Details

#initializeLineCollection

Returns a new instance of LineCollection.



127
128
129
# File 'lib/rdoc/markup/simple_markup/fragments.rb', line 127

def initialize
  @fragments = []
end

Instance Method Details

#accept(am, visitor) ⇒ Object



161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
# File 'lib/rdoc/markup/simple_markup/fragments.rb', line 161

def accept(am, visitor)

  visitor.start_accepting

  @fragments.each do |fragment|
    case fragment
    when Verbatim
      visitor.accept_verbatim(am, fragment)
    when Rule
      visitor.accept_rule(am, fragment)
    when ListStart
      visitor.accept_list_start(am, fragment)
    when ListEnd
      visitor.accept_list_end(am, fragment)
    when ListItem
      visitor.accept_list_item(am, fragment)
    when BlankLine
      visitor.accept_blank_line(am, fragment)
    when Heading
      visitor.accept_heading(am, fragment)
    when Paragraph
      visitor.accept_paragraph(am, fragment)
    end
  end

  visitor.end_accepting
end

#add(fragment) ⇒ Object



131
132
133
# File 'lib/rdoc/markup/simple_markup/fragments.rb', line 131

def add(fragment)
  @fragments << fragment
end

#each(&b) ⇒ Object



135
136
137
# File 'lib/rdoc/markup/simple_markup/fragments.rb', line 135

def each(&b)
  @fragments.each(&b)
end

#fragment_for(*args) ⇒ Object

Factory for different fragment types



145
146
147
# File 'lib/rdoc/markup/simple_markup/fragments.rb', line 145

def fragment_for(*args)
  Fragment.for(*args)
end

#normalizeObject

tidy up at the end



150
151
152
153
154
155
# File 'lib/rdoc/markup/simple_markup/fragments.rb', line 150

def normalize
  change_verbatim_blank_lines
  add_list_start_and_ends
  add_list_breaks
  tidy_blank_lines
end

#to_aObject

For testing



140
141
142
# File 'lib/rdoc/markup/simple_markup/fragments.rb', line 140

def to_a
  @fragments.map {|fragment| fragment.to_s}
end

#to_sObject



157
158
159
# File 'lib/rdoc/markup/simple_markup/fragments.rb', line 157

def to_s
  @fragments.join("\n----\n")
end