class RDoc::Markup::Document

一个包含列表、标题、段落等的Document

属性

file[R]

创建此文档的文件。另请参阅RDoc::ClassModule#add_comment

omit_headings_below[RW]

如果标题低于给定级别,则会从table_of_contents中省略该标题

parts[R]

Document的组成部分

公共类方法

new(*parts) 点击切换源码

使用 parts 创建一个新的Document

# File rdoc/markup/document.rb, line 29
def initialize *parts
  @parts = []
  @parts.concat parts

  @file = nil
  @omit_headings_from_table_of_contents_below = nil
end

公共实例方法

<<(part) 点击切换源码

part 追加到文档

# File rdoc/markup/document.rb, line 40
def << part
  case part
  when RDoc::Markup::Document then
    unless part.empty? then
      parts.concat part.parts
      parts << RDoc::Markup::BlankLine.new
    end
  when String then
    raise ArgumentError,
          "expected RDoc::Markup::Document and friends, got String" unless
      part.empty?
  else
    parts << part
  end
end
accept(visitor) 点击切换源码

通过 visitor 运行此文档及其所有项

# File rdoc/markup/document.rb, line 65
def accept visitor
  visitor.start_accepting

  visitor.accept_document self

  visitor.end_accepting
end
concat(parts) 点击切换源码

将给定的 parts 连接到文档

# File rdoc/markup/document.rb, line 76
def concat parts
  self.parts.concat parts
end
each(&block) 点击切换源码

此文档各个部分的枚举器

# File rdoc/markup/document.rb, line 83
def each &block
  @parts.each(&block)
end
empty?() 点击切换源码

此文档是否没有部分?

# File rdoc/markup/document.rb, line 90
def empty?
  @parts.empty? or (@parts.length == 1 and merged? and @parts.first.empty?)
end
file=(location) 点击切换源码

创建此Document的文件。

# File rdoc/markup/document.rb, line 97
def file= location
  @file = case location
          when RDoc::TopLevel then
            location.relative_name
          else
            location
          end
end
merge(other) 点击切换源码

当这是一个文档集合时(file 未设置,并且此文档仅包含其他文档作为其直接子级),当文件匹配时,merge 会将此类中的文档替换为来自 other 的文档,当文件不匹配时,会添加来自 other 的文档。

other 中的信息优先于接收者

# File rdoc/markup/document.rb, line 114
def merge other
  if empty? then
    @parts = other.parts
    return self
  end

  other.parts.each do |other_part|
    self.parts.delete_if do |self_part|
      self_part.file and self_part.file == other_part.file
    end

    self.parts << other_part
  end

  self
end
merged?() 点击切换源码

Document是否包含其他文档?

# File rdoc/markup/document.rb, line 134
def merged?
  RDoc::Markup::Document === @parts.first
end
push(*parts) 点击切换源码

parts 追加到文档

# File rdoc/markup/document.rb, line 151
def push *parts
  self.parts.concat parts
end
table_of_contents() 点击切换源码

返回文档中标题的数组。

在调用此方法之前,请 require ‘rdoc/markup/formatter’。

# File rdoc/markup/document.rb, line 160
def table_of_contents
  accept RDoc::Markup::ToTableOfContents.to_toc
end