Extended maintenance of Ruby 1.9.3 ended on February 23, 2015. Read more
Object
Base class for RDoc markup formatters
Formatters use a visitor pattern to convert content into output.
If you'd like to write your own Formatter use RDoc::Markup::FormatterTestCase. If you're writing a text-output formatter use RDoc::Markup::TextFormatterTestCase which provides extra test cases.
Tag for inline markup containing a bit for the bitmask and the
on and off triggers.
Creates a new Formatter
# File rdoc/markup/formatter.rb, line 23
def initialize markup = nil
@markup = markup || RDoc::Markup.new
@am = @markup.attribute_manager
@attr_tags = []
@in_tt = 0
@tt_bit = RDoc::Markup::Attribute.bitmap_for :TT
end
Adds document to the output
# File rdoc/markup/formatter.rb, line 36
def accept_document document
document.parts.each do |item|
item.accept self
end
end
Add a new set of tags for an attribute. We allow separate start and end tags for flexibility
# File rdoc/markup/formatter.rb, line 46
def add_tag(name, start, stop)
attr = RDoc::Markup::Attribute.bitmap_for name
@attr_tags << InlineTag.new(attr, start, stop)
end
Allows tag to be decorated with additional information.
# File rdoc/markup/formatter.rb, line 54
def annotate(tag)
tag
end
Marks up content
# File rdoc/markup/formatter.rb, line 61
def convert(content)
@markup.convert content, self
end
Converts flow items flow
# File rdoc/markup/formatter.rb, line 68
def convert_flow(flow)
res = []
flow.each do |item|
case item
when String then
res << convert_string(item)
when RDoc::Markup::AttrChanger then
off_tags res, item
on_tags res, item
when RDoc::Markup::Special then
res << convert_special(item)
else
raise "Unknown flow element: #{item.inspect}"
end
end
res.join
end
Converts added specials. See RDoc::Markup#add_special
# File rdoc/markup/formatter.rb, line 91
def convert_special special
return special.text if in_tt?
handled = false
RDoc::Markup::Attribute.each_name_of special.type do |name|
method_name = "handle_special_#{name}"
if respond_to? method_name then
special.text = send method_name, special
handled = true
end
end
raise "Unhandled special: #{special}" unless handled
special.text
end
Converts a string to be fancier if desired
# File rdoc/markup/formatter.rb, line 113
def convert_string string
string
end