class RDoc::Markup::ToTtOnly

提取用加号、tt 或代码括起来的文本部分。用于发现未记录的参数。

属性

list_type[R]

列表类型的堆栈

res[R]

输出累加器

公共类方法

new(markup = nil) 点击以切换源代码

创建一个新的仅限 tt 格式化程序。

调用超类方法 RDoc::Markup::Formatter::new
# File rdoc/markup/to_tt_only.rb, line 21
def initialize markup = nil
  super nil, markup

  add_tag :TT, nil, nil
end

公共实例方法

accept_blank_line(markup_item)
别名为: do_nothing
accept_block_quote(block_quote) 点击以切换源代码

将来自 block_quote 的 tts 添加到输出

# File rdoc/markup/to_tt_only.rb, line 30
def accept_block_quote block_quote
  tt_sections block_quote.text
end
accept_heading(markup_item)
别名为: do_nothing
accept_list_end(list) 点击以切换源代码

list_type 中弹出 list 的列表类型

# File rdoc/markup/to_tt_only.rb, line 37
def accept_list_end list
  @list_type.pop
end
accept_list_item_end(markup_item)
别名为: do_nothing
accept_list_item_start(list_item) 点击以切换源代码

准备访问者以消费 list_item

# File rdoc/markup/to_tt_only.rb, line 51
def accept_list_item_start list_item
  case @list_type.last
  when :NOTE, :LABEL then
    Array(list_item.label).map do |label|
      tt_sections label
    end.flatten
  end
end
accept_list_start(list) 点击以切换源代码

list 的列表类型推送到 list_type

# File rdoc/markup/to_tt_only.rb, line 44
def accept_list_start list
  @list_type << list.type
end
accept_paragraph(paragraph) 点击以切换源代码

paragraph 添加到输出

# File rdoc/markup/to_tt_only.rb, line 63
def accept_paragraph paragraph
  tt_sections(paragraph.text)
end
accept_raw(markup_item)
别名为: do_nothing
accept_rule(markup_item)
别名为: do_nothing
accept_verbatim(markup_item)
别名为: do_nothing
do_nothing(markup_item) 点击以切换源代码

markup_item 不做任何操作,因为它没有任何用户构建的内容

# File rdoc/markup/to_tt_only.rb, line 71
def do_nothing markup_item
end
end_accepting() 点击以切换源代码

返回一个数组,其中包含用加号、tt 或代码包装的项目。

# File rdoc/markup/to_tt_only.rb, line 107
def end_accepting
  @res.compact
end
start_accepting() 点击以切换源代码

准备访问者以收集 tt 部分

# File rdoc/markup/to_tt_only.rb, line 114
def start_accepting
  @res = []

  @list_type = []
end
tt_sections(text) 点击以切换源代码

text 中提取 tt 部分

# File rdoc/markup/to_tt_only.rb, line 84
def tt_sections text
  flow = @am.flow text.dup

  flow.each do |item|
    case item
    when String then
      @res << item if in_tt?
    when RDoc::Markup::AttrChanger then
      off_tags res, item
      on_tags res, item
    when RDoc::Markup::RegexpHandling then
      @res << convert_regexp_handling(item) if in_tt? # TODO can this happen?
    else
      raise "Unknown flow element: #{item.inspect}"
    end
  end

  res
end