Class: RDoc::Markup::List

Inherits:
Object
  • Object
show all
Defined in:
lib/rdoc/markup/list.rb

Overview

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.

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



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

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

Instance Attribute Details

#itemsObject (readonly)

Items in the list



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

def items
  @items
end

#typeObject

The list’s type



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

def type
  @type
end

Instance Method Details

#<<(item) ⇒ Object

Appends item to the list



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

def << item
  @items << item
end

#==(other) ⇒ Object

:nodoc:



53
54
55
56
57
# 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) ⇒ Object

Runs this list and all its #items through visitor



62
63
64
65
66
67
68
69
70
# 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?Boolean

Is the list empty?

Returns:

  • (Boolean)


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

def empty?
  @items.empty?
end

#lastObject

Returns the last item in the list



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

def last
  @items.last
end

#pretty_print(q) ⇒ Object

:nodoc:



86
87
88
89
90
91
92
# 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) ⇒ Object

Appends items to the list



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

def push *items
  @items.concat items
end