diff options
Diffstat (limited to 'lib/rdoc/text.rb')
| -rw-r--r-- | lib/rdoc/text.rb | 130 |
1 files changed, 0 insertions, 130 deletions
diff --git a/lib/rdoc/text.rb b/lib/rdoc/text.rb deleted file mode 100644 index 5280aa0fd2..0000000000 --- a/lib/rdoc/text.rb +++ /dev/null @@ -1,130 +0,0 @@ -## -# Methods for manipulating comment text - -module RDoc::Text - - ## - # Expands tab characters in +text+ to eight spaces - - def expand_tabs text - expanded = [] - - text.each_line do |line| - line.gsub!(/^(.{8}*?)([^\t\r\n]{0,7})\t/) do - "#{$1}#{$2}#{' ' * (8 - $2.size)}" - end until line !~ /\t/ - - expanded << line - end - - expanded.join - end - - ## - # Flush +text+ left based on the shortest line - - def flush_left text - indents = [] - - text.each_line do |line| - indents << (line =~ /[^\s]/ || 9999) - end - - indent = indents.min - - flush = [] - - text.each_line do |line| - line[/^ {0,#{indent}}/] = '' - flush << line - end - - flush.join - end - - ## - # Convert a string in markup format into HTML. Removes the first paragraph - # tags if +remove_para+ is true. - # - # Requires the including class to implement #formatter - - def markup text - document = parse text - - document.accept formatter - end - - ## - # Strips hashes, expands tabs then flushes +text+ to the left - - def normalize_comment text - return text if text.empty? - - text = strip_hashes text - text = expand_tabs text - text = flush_left text - strip_newlines text - end - - ## - # Normalizes +text+ then builds a RDoc::Markup::Document from it - - def parse text - return text if RDoc::Markup::Document === text - - text = normalize_comment text - - return RDoc::Markup::Document.new if text =~ /\A\n*\z/ - - RDoc::Markup::Parser.parse text - rescue RDoc::Markup::Parser::Error => e - $stderr.puts <<-EOF -While parsing markup, RDoc encountered a #{e.class}: - -#{e} -\tfrom #{e.backtrace.join "\n\tfrom "} - ----8<--- -#{text} ----8<--- - -RDoc #{RDoc::VERSION} - -Ruby #{RUBY_VERSION}-p#{RUBY_PATCHLEVEL} #{RUBY_RELEASE_DATE} - -Please file a bug report with the above information at: - -http://rubyforge.org/tracker/?atid=2472&group_id=627&func=browse - - EOF - raise - end - - ## - # Strips leading # characters from +text+ - - def strip_hashes text - return text if text =~ /^(?>\s*)[^\#]/ - text.gsub(/^\s*(#+)/) { $1.tr '#',' ' } - end - - ## - # Strips leading and trailing \n characters from +text+ - - def strip_newlines text - text.gsub(/\A\n*(.*?)\n*\z/m, '\1') - end - - ## - # Strips /* */ style comments - - def strip_stars text - text = text.gsub %r%Document-method:\s+[\w:.#]+%, '' - text.sub! %r%/\*+% do " " * $&.length end - text.sub! %r%\*+/% do " " * $&.length end - text.gsub! %r%^[ \t]*\*%m do " " * $&.length end - text - end - -end - |
