123456789_123456789_123456789_123456789_123456789_

Class: RDoc::Markup::List

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

Overview

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 ListItem for how labels and definition are stored as list items.

Class Method Summary

Instance Attribute Summary

Instance Method Summary

Constructor Details

.new(type = nil, *items) ⇒ List

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

[ GitHub ]

  
# File 'lib/rdoc/markup/list.rb', line 40

def initialize type = nil, *items
  @type = type
  @items = []
  @items.concat items
end

Instance Attribute Details

#empty?Boolean (readonly)

Is the list empty?

[ GitHub ]

  
# File 'lib/rdoc/markup/list.rb', line 75

def empty?
  @items.empty?
end

#items (readonly)

Items in the list

[ GitHub ]

  
# File 'lib/rdoc/markup/list.rb', line 34

attr_reader :items

#type (rw)

The list's type

[ GitHub ]

  
# File 'lib/rdoc/markup/list.rb', line 29

attr_accessor :type

Instance Method Details

#<<(item)

Appends item to the list

[ GitHub ]

  
# File 'lib/rdoc/markup/list.rb', line 49

def << item
  @items << item
end

#==(other)

This method is for internal use only.
[ GitHub ]

  
# File 'lib/rdoc/markup/list.rb', line 53

def == other # :nodoc:
  self.class == other.class and
    @type == other.type and
    @items == other.items
end

#accept(visitor)

Runs this list and all its #items through visitor

[ GitHub ]

  
# 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

#last

Returns the last item in the list

[ GitHub ]

  
# File 'lib/rdoc/markup/list.rb', line 82

def last
  @items.last
end

#pretty_print(q)

This method is for internal use only.
[ GitHub ]

  
# File 'lib/rdoc/markup/list.rb', line 86

def pretty_print q # :nodoc:
  q.group 2, "[list: #{@type} ", ']' do
    q.seplist @items do |item|
      q.pp item
    end
  end
end

#push(*items)

Appends #items to the list

[ GitHub ]

  
# File 'lib/rdoc/markup/list.rb', line 97

def push *items
  @items.concat items
end