Base class for RDoc markup formatters
Formatters use a visitor pattern to convert content into output.
Tag for inline markup containing a bit for the bitmask and the on and off triggers.
Creates a new Formatter
# File lib/rdoc/markup/formatter.rb, line 19 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 lib/rdoc/markup/formatter.rb, line 32 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 lib/rdoc/markup/formatter.rb, line 42 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 lib/rdoc/markup/formatter.rb, line 50 def annotate(tag) tag end
Marks up content
# File lib/rdoc/markup/formatter.rb, line 57 def convert(content) @markup.convert content, self end
Converts flow items flow
# File lib/rdoc/markup/formatter.rb, line 64 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 lib/rdoc/markup/formatter.rb, line 87 def convert_special(special) 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 lib/rdoc/markup/formatter.rb, line 107 def convert_string string string end
Generated with the Darkfish Rdoc Generator 2.