Sha256: 4136472fa89f09740dcc0ca07fd7277572f1adf73aba8fca6a23605496176c00

Contents?: true

Size: 1.2 KB

Versions: 12

Compression:

Stored size: 1.2 KB

Contents

##
# An item within a List that contains paragraphs, headings, etc.

class RDoc::Markup::ListItem

  ##
  # The label for the ListItem

  attr_accessor :label

  ##
  # Parts of the ListItem

  attr_reader :parts

  ##
  # Creates a new ListItem with an optional +label+ containing +parts+

  def initialize label = nil, *parts
    @label = label
    @parts = []
    @parts.push(*parts)
  end

  ##
  # Appends +part+ to the ListItem

  def << part
    @parts << part
  end

  def == other # :nodoc:
    self.class == other.class and
      @label == other.label and
      @parts == other.parts
  end

  def accept visitor
    visitor.accept_list_item_start self

    @parts.each do |part|
      part.accept visitor
    end

    visitor.accept_list_item_end self
  end

  ##
  # Is the ListItem empty?

  def empty?
    @parts.empty?
  end

  ##
  # Length of parts in the ListItem

  def length
    @parts.length
  end

  def pretty_print q # :nodoc:
    q.group 2, '[item: ', ']' do
      if @label then
        q.text @label
        q.breakable
      end

      q.seplist @parts do |part|
        q.pp part
      end
    end
  end

  ##
  # Adds +parts+ to the ListItem

  def push *parts
    @parts.push(*parts)
  end

end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
rdoc-2.5.11 lib/rdoc/markup/list_item.rb
rdoc-2.5.10 lib/rdoc/markup/list_item.rb
rdoc-2.5.9 lib/rdoc/markup/list_item.rb
rdoc-2.5.8 lib/rdoc/markup/list_item.rb
rdoc-2.5.7 lib/rdoc/markup/list_item.rb
rdoc-2.5.6 lib/rdoc/markup/list_item.rb
rdoc-2.5.5 lib/rdoc/markup/list_item.rb
rdoc-2.5.4 lib/rdoc/markup/list_item.rb
rdoc-2.5.3 lib/rdoc/markup/list_item.rb
rdoc-2.5.2 lib/rdoc/markup/list_item.rb
rdoc-2.5.1 lib/rdoc/markup/list_item.rb
rdoc-2.5 lib/rdoc/markup/list_item.rb