123456789_123456789_123456789_123456789_123456789_

Class: RDoc::Markup::ListItem

Relationships & Source Files
Inherits: Object
Defined in: lib/rdoc/markup/list_item.rb

Overview

An item within a List that contains paragraphs, headings, etc.

For BULLET, NUMBER, LALPHA and UALPHA lists, the label will always be nil. For NOTE and LABEL lists, the list label may contain:

  • a single String for a single label

  • an Array of Strings for a list item with multiple terms

  • nil for an extra description attached to a previously labeled list item

Class Method Summary

Instance Attribute Summary

Instance Method Summary

Constructor Details

.new(label = nil, *parts) ⇒ ListItem

Creates a new ListItem with an optional #label containing #parts

[ GitHub ]

  
# File 'lib/rdoc/markup/list_item.rb', line 26

def initialize label = nil, *parts
  @label = label
  @parts = []
  @parts.concat parts
end

Instance Attribute Details

#empty?Boolean (readonly)

Is the ListItem empty?

[ GitHub ]

  
# File 'lib/rdoc/markup/list_item.rb', line 61

def empty?
  @parts.empty?
end

#label (rw)

The label for the ListItem

[ GitHub ]

  
# File 'lib/rdoc/markup/list_item.rb', line 16

attr_accessor :label

#parts (readonly)

Parts of the ListItem

[ GitHub ]

  
# File 'lib/rdoc/markup/list_item.rb', line 21

attr_reader :parts

Instance Method Details

#<<(part)

Appends part to the ListItem

[ GitHub ]

  
# File 'lib/rdoc/markup/list_item.rb', line 35

def << part
  @parts << part
end

#accept(visitor)

Runs this list item and all its #parts through visitor

[ GitHub ]

  
# File 'lib/rdoc/markup/list_item.rb', line 48

def accept visitor
  visitor.accept_list_item_start self

  @parts.each do |part|
    part.accept visitor
  end

  visitor.accept_list_item_end self
end

#length

Length of parts in the ListItem

[ GitHub ]

  
# File 'lib/rdoc/markup/list_item.rb', line 68

def length
  @parts.length
end

#push(*parts)

Adds #parts to the ListItem

[ GitHub ]

  
# File 'lib/rdoc/markup/list_item.rb', line 94

def push *parts
  @parts.concat parts
end