diff options
author | aycabta <aycabta@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-12-08 17:39:52 +0000 |
---|---|---|
committer | aycabta <aycabta@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-12-08 17:39:52 +0000 |
commit | 18911e99d2960433f4e77e5f6ce28bf187dad5a9 (patch) | |
tree | 53e7e346b56da5d75973fa2447b2175ee08b62c8 /lib | |
parent | f6a38e180e5abc4db445b8e50d698ced71dbea87 (diff) | |
download | ruby-18911e99d2960433f4e77e5f6ce28bf187dad5a9.tar.gz |
Merge RDoc 6.1.0.beta3 from upstream
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66286 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib')
-rw-r--r-- | lib/rdoc/markup/parser.rb | 22 | ||||
-rw-r--r-- | lib/rdoc/options.rb | 24 | ||||
-rw-r--r-- | lib/rdoc/stats/normal.rb | 34 | ||||
-rw-r--r-- | lib/rdoc/version.rb | 2 |
4 files changed, 53 insertions, 29 deletions
diff --git a/lib/rdoc/markup/parser.rb b/lib/rdoc/markup/parser.rb index f08587e676..14f1f6c719 100644 --- a/lib/rdoc/markup/parser.rb +++ b/lib/rdoc/markup/parser.rb @@ -9,8 +9,9 @@ require 'strscan' # RDoc::Markup::ToHTML. # # The parser only handles the block-level constructs Paragraph, List, -# ListItem, Heading, Verbatim, BlankLine and Rule. Inline markup such as -# <tt>\+blah\+</tt> is handled separately by RDoc::Markup::AttributeManager. +# ListItem, Heading, Verbatim, BlankLine, Rule and BlockQuote. +# Inline markup such as <tt>\+blah\+</tt> is handled separately by +# RDoc::Markup::AttributeManager. # # To see what markup the Parser implements read RDoc. To see how to use # RDoc markup to format text in your program read RDoc::Markup. @@ -381,6 +382,17 @@ class RDoc::Markup::Parser when :TEXT then unget parse_text parent, indent + when :BLOCKQUOTE then + type, _, column = get + if type == :NEWLINE + type, _, column = get + end + unget if type + bq = RDoc::Markup::BlockQuote.new + p :blockquote_start => [data, column] if @debug + parse bq, column + p :blockquote_end => indent if @debug + parent << bq when *LIST_TOKENS then unget parent << build_list(indent) @@ -504,8 +516,12 @@ class RDoc::Markup::Parser # text:: followed by spaces or end of line => :NOTE when @s.scan(/(.*?)::( +|\r?$)/) then [:NOTE, @s[1], *token_pos(pos)] + # >>> followed by end of line => :BLOCKQUOTE + when @s.scan(/>>> *(\w+)?$/) then + [:BLOCKQUOTE, @s[1], *token_pos(pos)] # anything else: :TEXT - else @s.scan(/(.*?)( )?\r?$/) + else + @s.scan(/(.*?)( )?\r?$/) token = [:TEXT, @s[1], *token_pos(pos)] if @s[2] then diff --git a/lib/rdoc/options.rb b/lib/rdoc/options.rb index 99d7aaaec1..801a84b21f 100644 --- a/lib/rdoc/options.rb +++ b/lib/rdoc/options.rb @@ -164,7 +164,7 @@ class RDoc::Options ## # Files matching this pattern will be excluded - attr_accessor :exclude + attr_writer :exclude ## # The list of files to be processed @@ -494,6 +494,20 @@ class RDoc::Options end ## + # Create a regexp for #exclude + + def exclude + if @exclude.nil? or Regexp === @exclude then + # done, #finish is being re-run + @exclude + elsif @exclude.empty? then + nil + else + Regexp.new(@exclude.join("|")) + end + end + + ## # Completes any unfinished option setup business such as filtering for # existent files, creating a regexp for #exclude and setting a default # #template. @@ -505,13 +519,7 @@ class RDoc::Options root = @root.to_s @rdoc_include << root unless @rdoc_include.include?(root) - if @exclude.nil? or Regexp === @exclude then - # done, #finish is being re-run - elsif @exclude.empty? then - @exclude = nil - else - @exclude = Regexp.new(@exclude.join("|")) - end + @exclude = self.exclude finish_page_dir diff --git a/lib/rdoc/stats/normal.rb b/lib/rdoc/stats/normal.rb index a3a6ff377e..0a22f0582b 100644 --- a/lib/rdoc/stats/normal.rb +++ b/lib/rdoc/stats/normal.rb @@ -26,28 +26,28 @@ class RDoc::Stats::Normal < RDoc::Stats::Quiet files_so_far, @num_files) - # Print a progress bar, but make sure it fits on a single line. Filename - # will be truncated if necessary. - size = IO.respond_to?(:console_size) ? IO.console_size : IO.console.winsize - terminal_width = size[1].to_i.nonzero? || 80 - max_filename_size = terminal_width - progress_bar.size - - if filename.size > max_filename_size then - # Turn "some_long_filename.rb" to "...ong_filename.rb" - filename = filename[(filename.size - max_filename_size) .. -1] - filename[0..2] = "..." - end - - line = "#{progress_bar}#{filename}" if $stdout.tty? + # Print a progress bar, but make sure it fits on a single line. Filename + # will be truncated if necessary. + size = IO.respond_to?(:console_size) ? IO.console_size : IO.console.winsize + terminal_width = size[1].to_i.nonzero? || 80 + max_filename_size = (terminal_width - progress_bar.size) - 1 + + if filename.size > max_filename_size then + # Turn "some_long_filename.rb" to "...ong_filename.rb" + filename = filename[(filename.size - max_filename_size) .. -1] + filename[0..2] = "..." + end + # Clean the line with whitespaces so that leftover output from the # previous line doesn't show up. - $stdout.print("\r" + (" " * @last_width) + ("\b" * @last_width) + "\r") if @last_width && @last_width > 0 - @last_width = line.size - $stdout.print("#{line}\r") + $stdout.print("\r\e[K") if @last_width && @last_width > 0 + @last_width = progress_bar.size + filename.size + term = "\r" else - $stdout.puts(line) + term = "\n" end + $stdout.print(progress_bar, filename, term) $stdout.flush end diff --git a/lib/rdoc/version.rb b/lib/rdoc/version.rb index 7ad9d47a25..5e48f073da 100644 --- a/lib/rdoc/version.rb +++ b/lib/rdoc/version.rb @@ -3,6 +3,6 @@ module RDoc ## # RDoc version you are using - VERSION = '6.1.0.beta2' + VERSION = '6.1.0.beta3' end |