# class RDoc::Markup::List

frozen_string_literal: false

A List is a homogeneous set of ListItems.

The supported list types include:

:BULLET

  An unordered list

:LABEL

  An unordered definition list, but using an alternate RDoc::Markup syntax

:LALPHA

  An ordered list using increasing lowercase English letters

:NOTE

  An unordered definition list

:NUMBER

  An ordered list using increasing Arabic numerals

:UALPHA

  An ordered list using increasing uppercase English letters

Definition lists behave like HTML definition lists. Each list item can describe multiple terms. See RDoc::Markup::ListItem for how labels and definition are stored as list items.

### Attributes

items[R]

Items in the list

type[RW]

The list's type

### Public Class Methods

new(type = nil, *items) click to toggle source

Creates a new list of `type` with `items`. Valid list types are: `:BULLET`, `:LABEL`, `:LALPHA`, `:NOTE`, `:NUMBER`, `:UALPHA`

    # File lib/rdoc/markup/list.rb, line 40
    def initialize type = nil, *items
      @type = type
      @items = []
      @items.concat items
    end

### Public Instance Methods

<<(item) click to toggle source

Appends `item` to the list

    # File lib/rdoc/markup/list.rb, line 49
    def << item
      @items << item
    end

accept(visitor) click to toggle source

Runs this list and all its items through `visitor`

    # File lib/rdoc/markup/list.rb, line 62
    def accept visitor
      visitor.accept_list_start self

      @items.each do |item|
        item.accept visitor
      end

      visitor.accept_list_end self
    end

empty?() click to toggle source

Is the list empty?

    # File lib/rdoc/markup/list.rb, line 75
    def empty?
      @items.empty?
    end

last() click to toggle source

Returns the last item in the list

    # File lib/rdoc/markup/list.rb, line 82
    def last
      @items.last
    end

push(*items) click to toggle source

Appends `items` to the list

    # File lib/rdoc/markup/list.rb, line 97
    def push *items
      @items.concat items
    end