Class: RDoc::Markup::List

Inherits:
Element
  • Object
show all
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 RDoc::Markup::ListItem for how labels and definitions are stored as list items.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(type = nil, *items) ⇒ List

Creates a new list of type with items. Valid list types are: :BULLET, :LABEL, :LALPHA, :NOTE, :NUMBER, :UALPHA : (Symbol?, *ListItem) -> void



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

def initialize(type = nil, *items)
  @type = type
  @items = items
end

Instance Attribute Details

#items ⇒ Object (readonly)

Items in the list : Array



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

def items
  @items
end

#type ⇒ Object

The list's type : Symbol?



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

def type
  @type
end

Instance Method Details

#<<(item) ⇒ Object

Appends item to the list : (ListItem) -> void



44
45
46
# File 'lib/rdoc/markup/list.rb', line 44

def <<(item)
  @items << item
end

#==(other) ⇒ Object

: (top) -> bool



49
50
51
52
53
# File 'lib/rdoc/markup/list.rb', line 49

def ==(other) # :nodoc:
  self.class == other.class &&
    @type == other.type &&
    @items == other.items
end

#accept(visitor) ⇒ Object

Runs this list and all its #items through visitor : (untyped) -> void



58
59
60
61
62
# File 'lib/rdoc/markup/list.rb', line 58

def accept(visitor)
  visitor.accept_list_start(self)
  @items.each { |item| item.accept(visitor) }
  visitor.accept_list_end(self)
end

#empty? ⇒ Boolean

Is the list empty? : () -> bool

Returns:

  • (Boolean)


66
67
68
# File 'lib/rdoc/markup/list.rb', line 66

def empty?
  @items.empty?
end

#last ⇒ Object

Returns the last item in the list : () -> ListItem?



72
73
74
# File 'lib/rdoc/markup/list.rb', line 72

def last
  @items.last
end

#pretty_print(q) ⇒ Object

: (PP) -> void



78
79
80
81
82
83
84
# File 'lib/rdoc/markup/list.rb', line 78

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

#push(*items) ⇒ Object

Appends items to the list : (*ListItem) -> void



88
89
90
# File 'lib/rdoc/markup/list.rb', line 88

def push(*items)
  @items.concat(items)
end