# class RDoc::Markup::ListItem

frozen_string_literal: false

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

### Attributes

label[RW]

The label for the ListItem

parts[R]

Parts of the ListItem

### Public Class Methods

new(label = nil, *parts) click to toggle source

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

    # File lib/rdoc/markup/list_item.rb, line 27
    def initialize label = nil, *parts
      @label = label
      @parts = []
      @parts.concat parts
    end

### Public Instance Methods

<<(part) click to toggle source

Appends `part` to the ListItem

    # File lib/rdoc/markup/list_item.rb, line 36
    def << part
      @parts << part
    end

accept(visitor) click to toggle source

Runs this list item and all its parts through `visitor`

    # File lib/rdoc/markup/list_item.rb, line 49
    def accept visitor
      visitor.accept_list_item_start self

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

      visitor.accept_list_item_end self
    end

empty?() click to toggle source

Is the ListItem empty?

    # File lib/rdoc/markup/list_item.rb, line 62
    def empty?
      @parts.empty?
    end

length() click to toggle source

Length of parts in the ListItem

    # File lib/rdoc/markup/list_item.rb, line 69
    def length
      @parts.length
    end

push(*parts) click to toggle source

Adds `parts` to the ListItem

    # File lib/rdoc/markup/list_item.rb, line 95
    def push *parts
      @parts.concat parts
    end