mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
2ef9c50c6e
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30249 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
81 lines
1.1 KiB
Ruby
81 lines
1.1 KiB
Ruby
##
|
|
# A List of ListItems
|
|
|
|
class RDoc::Markup::List
|
|
|
|
##
|
|
# The list's type
|
|
|
|
attr_accessor :type
|
|
|
|
##
|
|
# Items in the list
|
|
|
|
attr_reader :items
|
|
|
|
##
|
|
# Creates a new list of +type+ with +items+
|
|
|
|
def initialize type = nil, *items
|
|
@type = type
|
|
@items = []
|
|
@items.push(*items)
|
|
end
|
|
|
|
##
|
|
# Appends +item+ to the list
|
|
|
|
def << item
|
|
@items << item
|
|
end
|
|
|
|
def == other # :nodoc:
|
|
self.class == other.class and
|
|
@type == other.type and
|
|
@items == other.items
|
|
end
|
|
|
|
##
|
|
# Runs this list and all its #items through +visitor+
|
|
|
|
def accept visitor
|
|
visitor.accept_list_start self
|
|
|
|
@items.each do |item|
|
|
item.accept visitor
|
|
end
|
|
|
|
visitor.accept_list_end self
|
|
end
|
|
|
|
##
|
|
# Is the list empty?
|
|
|
|
def empty?
|
|
@items.empty?
|
|
end
|
|
|
|
##
|
|
# Returns the last item in the list
|
|
|
|
def last
|
|
@items.last
|
|
end
|
|
|
|
def pretty_print q # :nodoc:
|
|
q.group 2, "[list: #{@type} ", ']' do
|
|
q.seplist @items do |item|
|
|
q.pp item
|
|
end
|
|
end
|
|
end
|
|
|
|
##
|
|
# Appends +items+ to the list
|
|
|
|
def push *items
|
|
@items.push(*items)
|
|
end
|
|
|
|
end
|
|
|