Class: RDoc::Markup::List

Inherits:
Object
  • 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 definition 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



39
40
41
42
43
# File 'lib/rdoc/markup/list.rb', line 39

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

Instance Attribute Details

#itemsObject (readonly)

Items in the list



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

def items
  @items
end

#typeObject

The list’s type



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



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

def << item
  @items << item
end

#==(other) ⇒ Object

:nodoc:



52
53
54
55
56
# File 'lib/rdoc/markup/list.rb', line 52

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

#accept(visitor) ⇒ Object

Runs this list and all its #items through visitor



61
62
63
64
65
66
67
68
69
# File 'lib/rdoc/markup/list.rb', line 61

def accept visitor
  visitor.accept_list_start self

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

  visitor.accept_list_end self
end

#empty?Boolean

Is the list empty?

Returns:

  • (Boolean)


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

def empty?
  @items.empty?
end

#lastObject

Returns the last item in the list



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

def last
  @items.last
end

#pretty_print(q) ⇒ Object

:nodoc:



85
86
87
88
89
90
91
# File 'lib/rdoc/markup/list.rb', line 85

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



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

def push *items
  @items.concat items
end