rdoc 4.2.1 → 6.3.1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of rdoc might be problematic. Click here for more details.
- checksums.yaml +5 -5
- data/CONTRIBUTING.rdoc +8 -7
- data/Gemfile +12 -0
- data/History.rdoc +48 -4
- data/LEGAL.rdoc +2 -2
- data/README.rdoc +5 -5
- data/Rakefile +73 -155
- data/bin/console +7 -0
- data/bin/setup +6 -0
- data/{bin → exe}/rdoc +0 -0
- data/{bin → exe}/ri +0 -0
- data/lib/rdoc/alias.rb +1 -0
- data/lib/rdoc/anon_class.rb +1 -0
- data/lib/rdoc/any_method.rb +59 -14
- data/lib/rdoc/attr.rb +1 -0
- data/lib/rdoc/class_module.rb +5 -2
- data/lib/rdoc/code_object.rb +3 -11
- data/lib/rdoc/code_objects.rb +1 -0
- data/lib/rdoc/comment.rb +32 -11
- data/lib/rdoc/constant.rb +3 -2
- data/lib/rdoc/context/section.rb +7 -13
- data/lib/rdoc/context.rb +78 -23
- data/lib/rdoc/cross_reference.rb +33 -14
- data/lib/rdoc/encoding.rb +92 -55
- data/lib/rdoc/erb_partial.rb +2 -1
- data/lib/rdoc/erbio.rb +8 -3
- data/lib/rdoc/extend.rb +1 -0
- data/lib/rdoc/generator/darkfish.rb +62 -32
- data/lib/rdoc/generator/json_index.rb +8 -5
- data/lib/rdoc/generator/markup.rb +3 -12
- data/lib/rdoc/generator/pot/message_extractor.rb +68 -0
- data/lib/rdoc/generator/pot/po.rb +84 -0
- data/lib/rdoc/generator/pot/po_entry.rb +141 -0
- data/lib/rdoc/generator/pot.rb +4 -3
- data/lib/rdoc/generator/ri.rb +1 -0
- data/lib/rdoc/generator/template/darkfish/_footer.rhtml +2 -2
- data/lib/rdoc/generator/template/darkfish/_head.rhtml +11 -8
- data/lib/rdoc/generator/template/darkfish/_sidebar_VCS_info.rhtml +2 -2
- data/lib/rdoc/generator/template/darkfish/_sidebar_classes.rhtml +2 -2
- data/lib/rdoc/generator/template/darkfish/_sidebar_extends.rhtml +7 -7
- data/lib/rdoc/generator/template/darkfish/_sidebar_in_files.rhtml +2 -2
- data/lib/rdoc/generator/template/darkfish/_sidebar_includes.rhtml +7 -7
- data/lib/rdoc/generator/template/darkfish/_sidebar_installed.rhtml +6 -6
- data/lib/rdoc/generator/template/darkfish/_sidebar_methods.rhtml +5 -5
- data/lib/rdoc/generator/template/darkfish/_sidebar_pages.rhtml +5 -5
- data/lib/rdoc/generator/template/darkfish/_sidebar_parent.rhtml +5 -5
- data/lib/rdoc/generator/template/darkfish/_sidebar_sections.rhtml +4 -4
- data/lib/rdoc/generator/template/darkfish/_sidebar_table_of_contents.rhtml +4 -4
- data/lib/rdoc/generator/template/darkfish/class.rhtml +45 -47
- data/lib/rdoc/generator/template/darkfish/css/fonts.css +6 -6
- data/lib/rdoc/generator/template/darkfish/css/rdoc.css +55 -6
- data/lib/rdoc/generator/template/darkfish/index.rhtml +3 -4
- data/lib/rdoc/generator/template/darkfish/js/darkfish.js +23 -100
- data/lib/rdoc/generator/template/darkfish/js/search.js +32 -31
- data/lib/rdoc/generator/template/darkfish/servlet_root.rhtml +15 -16
- data/lib/rdoc/generator/template/darkfish/table_of_contents.rhtml +16 -16
- data/lib/rdoc/generator/template/json_index/js/navigation.js +4 -41
- data/lib/rdoc/generator/template/json_index/js/searcher.js +7 -6
- data/lib/rdoc/generator.rb +1 -1
- data/lib/rdoc/ghost_method.rb +1 -0
- data/lib/rdoc/i18n/locale.rb +2 -1
- data/lib/rdoc/i18n/text.rb +5 -4
- data/lib/rdoc/i18n.rb +3 -2
- data/lib/rdoc/include.rb +1 -0
- data/lib/rdoc/known_classes.rb +1 -0
- data/lib/rdoc/markdown/entities.rb +1 -0
- data/lib/rdoc/markdown/{literals_1_9.kpeg → literals.kpeg} +1 -0
- data/lib/rdoc/markdown/{literals_1_9.rb → literals.rb} +1 -4
- data/lib/rdoc/markdown.kpeg +94 -51
- data/lib/rdoc/markdown.rb +1171 -619
- data/lib/rdoc/markup/attr_changer.rb +1 -0
- data/lib/rdoc/markup/attr_span.rb +9 -2
- data/lib/rdoc/markup/attribute_manager.rb +115 -49
- data/lib/rdoc/markup/attributes.rb +7 -6
- data/lib/rdoc/markup/blank_line.rb +1 -0
- data/lib/rdoc/markup/block_quote.rb +1 -0
- data/lib/rdoc/markup/document.rb +1 -0
- data/lib/rdoc/markup/formatter.rb +25 -23
- data/lib/rdoc/markup/hard_break.rb +1 -0
- data/lib/rdoc/markup/heading.rb +4 -3
- data/lib/rdoc/markup/include.rb +1 -0
- data/lib/rdoc/markup/indented_paragraph.rb +1 -0
- data/lib/rdoc/markup/list.rb +1 -0
- data/lib/rdoc/markup/list_item.rb +1 -0
- data/lib/rdoc/markup/paragraph.rb +1 -0
- data/lib/rdoc/markup/parser.rb +78 -61
- data/lib/rdoc/markup/pre_process.rb +12 -9
- data/lib/rdoc/markup/raw.rb +1 -0
- data/lib/rdoc/markup/regexp_handling.rb +41 -0
- data/lib/rdoc/markup/rule.rb +1 -0
- data/lib/rdoc/markup/to_ansi.rb +1 -0
- data/lib/rdoc/markup/to_bs.rb +4 -5
- data/lib/rdoc/markup/to_html.rb +71 -25
- data/lib/rdoc/markup/to_html_crossref.rb +41 -25
- data/lib/rdoc/markup/to_html_snippet.rb +10 -9
- data/lib/rdoc/markup/to_joined_paragraph.rb +7 -31
- data/lib/rdoc/markup/to_label.rb +10 -9
- data/lib/rdoc/markup/to_markdown.rb +9 -8
- data/lib/rdoc/markup/to_rdoc.rb +35 -6
- data/lib/rdoc/markup/to_table_of_contents.rb +2 -0
- data/lib/rdoc/markup/to_test.rb +1 -0
- data/lib/rdoc/markup/to_tt_only.rb +3 -2
- data/lib/rdoc/markup/verbatim.rb +1 -0
- data/lib/rdoc/markup.rb +14 -16
- data/lib/rdoc/meta_method.rb +1 -0
- data/lib/rdoc/method_attr.rb +2 -1
- data/lib/rdoc/mixin.rb +1 -0
- data/lib/rdoc/normal_class.rb +3 -2
- data/lib/rdoc/normal_module.rb +1 -0
- data/lib/rdoc/options.rb +92 -58
- data/lib/rdoc/parser/c.rb +219 -223
- data/lib/rdoc/parser/changelog.rb +155 -18
- data/lib/rdoc/parser/markdown.rb +1 -0
- data/lib/rdoc/parser/rd.rb +1 -0
- data/lib/rdoc/parser/ripper_state_lex.rb +590 -0
- data/lib/rdoc/parser/ruby.rb +635 -468
- data/lib/rdoc/parser/ruby_tools.rb +33 -33
- data/lib/rdoc/parser/simple.rb +3 -3
- data/lib/rdoc/parser/text.rb +1 -0
- data/lib/rdoc/parser.rb +17 -50
- data/lib/rdoc/rd/block_parser.rb +66 -65
- data/lib/rdoc/rd/block_parser.ry +3 -3
- data/lib/rdoc/rd/inline.rb +5 -4
- data/lib/rdoc/rd/inline_parser.rb +52 -51
- data/lib/rdoc/rd/inline_parser.ry +1 -1
- data/lib/rdoc/rd.rb +1 -0
- data/lib/rdoc/rdoc.rb +68 -63
- data/lib/rdoc/require.rb +1 -0
- data/lib/rdoc/ri/driver.rb +133 -58
- data/lib/rdoc/ri/formatter.rb +1 -0
- data/lib/rdoc/ri/paths.rb +4 -20
- data/lib/rdoc/ri/store.rb +1 -0
- data/lib/rdoc/ri/task.rb +71 -0
- data/lib/rdoc/ri.rb +1 -0
- data/lib/rdoc/rubygems_hook.rb +5 -12
- data/lib/rdoc/servlet.rb +24 -14
- data/lib/rdoc/single_class.rb +1 -0
- data/lib/rdoc/stats/normal.rb +20 -21
- data/lib/rdoc/stats/quiet.rb +1 -0
- data/lib/rdoc/stats/verbose.rb +1 -0
- data/lib/rdoc/stats.rb +1 -0
- data/lib/rdoc/store.rb +41 -41
- data/lib/rdoc/task.rb +2 -3
- data/lib/rdoc/text.rb +19 -38
- data/lib/rdoc/token_stream.rb +56 -32
- data/lib/rdoc/tom_doc.rb +17 -11
- data/lib/rdoc/top_level.rb +9 -2
- data/lib/rdoc/version.rb +8 -0
- data/lib/rdoc.rb +24 -10
- data/man/ri.1 +247 -0
- data/rdoc.gemspec +248 -0
- metadata +43 -236
- data/.autotest +0 -24
- data/.document +0 -5
- data/Manifest.txt +0 -306
- data/lib/gauntlet_rdoc.rb +0 -84
- data/lib/rdoc/generator/template/darkfish/js/jquery.js +0 -4
- data/lib/rdoc/markdown/literals_1_8.kpeg +0 -18
- data/lib/rdoc/markdown/literals_1_8.rb +0 -416
- data/lib/rdoc/markup/formatter_test_case.rb +0 -767
- data/lib/rdoc/markup/inline.rb +0 -1
- data/lib/rdoc/markup/special.rb +0 -40
- data/lib/rdoc/markup/text_formatter_test_case.rb +0 -114
- data/lib/rdoc/ruby_lex.rb +0 -1377
- data/lib/rdoc/ruby_token.rb +0 -460
- data/lib/rdoc/test_case.rb +0 -217
- data/test/MarkdownTest_1.0.3/Amps and angle encoding.text +0 -21
- data/test/MarkdownTest_1.0.3/Auto links.text +0 -13
- data/test/MarkdownTest_1.0.3/Backslash escapes.text +0 -120
- data/test/MarkdownTest_1.0.3/Blockquotes with code blocks.text +0 -11
- data/test/MarkdownTest_1.0.3/Code Blocks.text +0 -14
- data/test/MarkdownTest_1.0.3/Code Spans.text +0 -6
- data/test/MarkdownTest_1.0.3/Hard-wrapped paragraphs with list-like lines.text +0 -8
- data/test/MarkdownTest_1.0.3/Horizontal rules.text +0 -67
- data/test/MarkdownTest_1.0.3/Inline HTML (Advanced).text +0 -15
- data/test/MarkdownTest_1.0.3/Inline HTML (Simple).text +0 -69
- data/test/MarkdownTest_1.0.3/Inline HTML comments.text +0 -13
- data/test/MarkdownTest_1.0.3/Links, inline style.text +0 -12
- data/test/MarkdownTest_1.0.3/Links, reference style.text +0 -71
- data/test/MarkdownTest_1.0.3/Links, shortcut references.text +0 -20
- data/test/MarkdownTest_1.0.3/Literal quotes in titles.text +0 -7
- data/test/MarkdownTest_1.0.3/Markdown Documentation - Basics.text +0 -306
- data/test/MarkdownTest_1.0.3/Markdown Documentation - Syntax.text +0 -888
- data/test/MarkdownTest_1.0.3/Nested blockquotes.text +0 -5
- data/test/MarkdownTest_1.0.3/Ordered and unordered lists.text +0 -131
- data/test/MarkdownTest_1.0.3/Strong and em together.text +0 -7
- data/test/MarkdownTest_1.0.3/Tabs.text +0 -21
- data/test/MarkdownTest_1.0.3/Tidyness.text +0 -5
- data/test/README +0 -1
- data/test/binary.dat +0 -0
- data/test/hidden.zip.txt +0 -1
- data/test/test.ja.largedoc +0 -3
- data/test/test.ja.rdoc +0 -10
- data/test/test.ja.txt +0 -8
- data/test/test.txt +0 -1
- data/test/test_rdoc_alias.rb +0 -13
- data/test/test_rdoc_any_method.rb +0 -460
- data/test/test_rdoc_attr.rb +0 -190
- data/test/test_rdoc_class_module.rb +0 -1492
- data/test/test_rdoc_code_object.rb +0 -450
- data/test/test_rdoc_comment.rb +0 -504
- data/test/test_rdoc_constant.rb +0 -181
- data/test/test_rdoc_context.rb +0 -901
- data/test/test_rdoc_context_section.rb +0 -130
- data/test/test_rdoc_cross_reference.rb +0 -192
- data/test/test_rdoc_encoding.rb +0 -227
- data/test/test_rdoc_extend.rb +0 -94
- data/test/test_rdoc_generator_darkfish.rb +0 -229
- data/test/test_rdoc_generator_json_index.rb +0 -324
- data/test/test_rdoc_generator_markup.rb +0 -59
- data/test/test_rdoc_generator_pot.rb +0 -91
- data/test/test_rdoc_generator_pot_po.rb +0 -51
- data/test/test_rdoc_generator_pot_po_entry.rb +0 -139
- data/test/test_rdoc_generator_ri.rb +0 -78
- data/test/test_rdoc_i18n_locale.rb +0 -73
- data/test/test_rdoc_i18n_text.rb +0 -123
- data/test/test_rdoc_include.rb +0 -108
- data/test/test_rdoc_markdown.rb +0 -980
- data/test/test_rdoc_markdown_test.rb +0 -1884
- data/test/test_rdoc_markup.rb +0 -95
- data/test/test_rdoc_markup_attribute_manager.rb +0 -364
- data/test/test_rdoc_markup_attributes.rb +0 -39
- data/test/test_rdoc_markup_document.rb +0 -207
- data/test/test_rdoc_markup_formatter.rb +0 -175
- data/test/test_rdoc_markup_hard_break.rb +0 -31
- data/test/test_rdoc_markup_heading.rb +0 -29
- data/test/test_rdoc_markup_include.rb +0 -19
- data/test/test_rdoc_markup_indented_paragraph.rb +0 -53
- data/test/test_rdoc_markup_paragraph.rb +0 -32
- data/test/test_rdoc_markup_parser.rb +0 -1680
- data/test/test_rdoc_markup_pre_process.rb +0 -473
- data/test/test_rdoc_markup_raw.rb +0 -22
- data/test/test_rdoc_markup_to_ansi.rb +0 -369
- data/test/test_rdoc_markup_to_bs.rb +0 -366
- data/test/test_rdoc_markup_to_html.rb +0 -662
- data/test/test_rdoc_markup_to_html_crossref.rb +0 -225
- data/test/test_rdoc_markup_to_html_snippet.rb +0 -711
- data/test/test_rdoc_markup_to_joined_paragraph.rb +0 -32
- data/test/test_rdoc_markup_to_label.rb +0 -112
- data/test/test_rdoc_markup_to_markdown.rb +0 -389
- data/test/test_rdoc_markup_to_rdoc.rb +0 -377
- data/test/test_rdoc_markup_to_table_of_contents.rb +0 -126
- data/test/test_rdoc_markup_to_tt_only.rb +0 -246
- data/test/test_rdoc_markup_verbatim.rb +0 -29
- data/test/test_rdoc_method_attr.rb +0 -193
- data/test/test_rdoc_normal_class.rb +0 -47
- data/test/test_rdoc_normal_module.rb +0 -42
- data/test/test_rdoc_options.rb +0 -766
- data/test/test_rdoc_parser.rb +0 -327
- data/test/test_rdoc_parser_c.rb +0 -1896
- data/test/test_rdoc_parser_changelog.rb +0 -315
- data/test/test_rdoc_parser_markdown.rb +0 -61
- data/test/test_rdoc_parser_rd.rb +0 -55
- data/test/test_rdoc_parser_ruby.rb +0 -3322
- data/test/test_rdoc_parser_simple.rb +0 -115
- data/test/test_rdoc_rd.rb +0 -30
- data/test/test_rdoc_rd_block_parser.rb +0 -535
- data/test/test_rdoc_rd_inline.rb +0 -63
- data/test/test_rdoc_rd_inline_parser.rb +0 -177
- data/test/test_rdoc_rdoc.rb +0 -455
- data/test/test_rdoc_require.rb +0 -25
- data/test/test_rdoc_ri_driver.rb +0 -1436
- data/test/test_rdoc_ri_paths.rb +0 -155
- data/test/test_rdoc_ruby_lex.rb +0 -421
- data/test/test_rdoc_ruby_token.rb +0 -19
- data/test/test_rdoc_rubygems_hook.rb +0 -251
- data/test/test_rdoc_servlet.rb +0 -534
- data/test/test_rdoc_single_class.rb +0 -20
- data/test/test_rdoc_stats.rb +0 -722
- data/test/test_rdoc_store.rb +0 -993
- data/test/test_rdoc_task.rb +0 -173
- data/test/test_rdoc_text.rb +0 -557
- data/test/test_rdoc_token_stream.rb +0 -42
- data/test/test_rdoc_tom_doc.rb +0 -520
- data/test/test_rdoc_top_level.rb +0 -287
- data/test/xref_data.rb +0 -76
- data/test/xref_test_case.rb +0 -67
data/lib/rdoc/servlet.rb
CHANGED
@@ -1,7 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
require 'rdoc'
|
3
|
+
require 'erb'
|
2
4
|
require 'time'
|
3
5
|
require 'json'
|
4
|
-
|
6
|
+
|
7
|
+
begin
|
8
|
+
require 'webrick'
|
9
|
+
rescue LoadError
|
10
|
+
abort "webrick is not found. You may need to `gem install webrick` to install webrick."
|
11
|
+
end
|
5
12
|
|
6
13
|
##
|
7
14
|
# This is a WEBrick servlet that allows you to browse ri documentation.
|
@@ -100,9 +107,9 @@ class RDoc::Servlet < WEBrick::HTTPServlet::AbstractServlet
|
|
100
107
|
res.body = File.read asset_path
|
101
108
|
|
102
109
|
res.content_type = case req.path
|
103
|
-
when /
|
104
|
-
when /
|
105
|
-
else
|
110
|
+
when /\.css\z/ then 'text/css'
|
111
|
+
when /\.js\z/ then 'application/javascript'
|
112
|
+
else 'application/octet-stream'
|
106
113
|
end
|
107
114
|
end
|
108
115
|
|
@@ -110,13 +117,13 @@ class RDoc::Servlet < WEBrick::HTTPServlet::AbstractServlet
|
|
110
117
|
# GET request entry point. Fills in +res+ for the path, etc. in +req+.
|
111
118
|
|
112
119
|
def do_GET req, res
|
113
|
-
req.path.sub!(
|
120
|
+
req.path.sub!(/\A#{Regexp.escape @mount_path}/, '') if @mount_path
|
114
121
|
|
115
122
|
case req.path
|
116
123
|
when '/' then
|
117
124
|
root req, res
|
118
|
-
when '/
|
119
|
-
%r%^/images/% then
|
125
|
+
when '/js/darkfish.js', '/js/jquery.js', '/js/search.js',
|
126
|
+
%r%^/css/%, %r%^/images/%, %r%^/fonts/% then
|
120
127
|
asset :darkfish, req, res
|
121
128
|
when '/js/navigation.js', '/js/searcher.js' then
|
122
129
|
asset :json_index, req, res
|
@@ -143,11 +150,14 @@ class RDoc::Servlet < WEBrick::HTTPServlet::AbstractServlet
|
|
143
150
|
# +generator+ is used to create the page.
|
144
151
|
|
145
152
|
def documentation_page store, generator, path, req, res
|
146
|
-
|
153
|
+
text_name = path.chomp '.html'
|
154
|
+
name = text_name.gsub '/', '::'
|
147
155
|
|
148
156
|
if klass = store.find_class_or_module(name) then
|
149
157
|
res.body = generator.generate_class klass
|
150
|
-
elsif page = store.find_text_page(name.sub(/_([^_]*)
|
158
|
+
elsif page = store.find_text_page(name.sub(/_([^_]*)\z/, '.\1')) then
|
159
|
+
res.body = generator.generate_page page
|
160
|
+
elsif page = store.find_text_page(text_name.sub(/_([^_]*)\z/, '.\1')) then
|
151
161
|
res.body = generator.generate_page page
|
152
162
|
else
|
153
163
|
not_found generator, req, res
|
@@ -203,7 +213,7 @@ class RDoc::Servlet < WEBrick::HTTPServlet::AbstractServlet
|
|
203
213
|
|
204
214
|
<title>Error - #{ERB::Util.html_escape exception.class}</title>
|
205
215
|
|
206
|
-
<link type="text/css" media="screen" href="#{@mount_path}/rdoc.css" rel="stylesheet">
|
216
|
+
<link type="text/css" media="screen" href="#{@mount_path}/css/rdoc.css" rel="stylesheet">
|
207
217
|
</head>
|
208
218
|
<body>
|
209
219
|
<h1>Error</h1>
|
@@ -216,7 +226,7 @@ exception:
|
|
216
226
|
<pre>#{ERB::Util.html_escape exception.message}</pre>
|
217
227
|
|
218
228
|
<p>Please report this to the
|
219
|
-
<a href="https://github.com/
|
229
|
+
<a href="https://github.com/ruby/rdoc/issues">RDoc issues tracker</a>. Please
|
220
230
|
include the RDoc version, the URI above and exception class, message and
|
221
231
|
backtrace. If you're viewing a gem's documentation, include the gem name and
|
222
232
|
version. If you're viewing Ruby's documentation, include the version of ruby.
|
@@ -414,7 +424,7 @@ version. If you're viewing Ruby's documentation, include the version of ruby.
|
|
414
424
|
RDoc::Store.new RDoc::RI::Paths.system_dir, :system
|
415
425
|
when 'site' then
|
416
426
|
RDoc::Store.new RDoc::RI::Paths.site_dir, :site
|
417
|
-
when
|
427
|
+
when /\Aextra-(\d+)\z/ then
|
418
428
|
index = $1.to_i - 1
|
419
429
|
ri_dir = installed_docs[index][4]
|
420
430
|
RDoc::Store.new ri_dir, :extra
|
@@ -426,14 +436,14 @@ version. If you're viewing Ruby's documentation, include the version of ruby.
|
|
426
436
|
end
|
427
437
|
|
428
438
|
raise WEBrick::HTTPStatus::NotFound,
|
429
|
-
"Could not find gem \"#{source_name}\". Are you sure you installed it?" unless ri_dir
|
439
|
+
"Could not find gem \"#{ERB::Util.html_escape(source_name)}\". Are you sure you installed it?" unless ri_dir
|
430
440
|
|
431
441
|
store = RDoc::Store.new ri_dir, type
|
432
442
|
|
433
443
|
return store if File.exist? store.cache_path
|
434
444
|
|
435
445
|
raise WEBrick::HTTPStatus::NotFound,
|
436
|
-
"Could not find documentation for \"#{source_name}\". Please run `gem rdoc --ri gem_name`"
|
446
|
+
"Could not find documentation for \"#{ERB::Util.html_escape(source_name)}\". Please run `gem rdoc --ri gem_name`"
|
437
447
|
|
438
448
|
end
|
439
449
|
end
|
data/lib/rdoc/single_class.rb
CHANGED
data/lib/rdoc/stats/normal.rb
CHANGED
@@ -1,6 +1,9 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
begin
|
2
3
|
require 'io/console/size'
|
3
4
|
rescue LoadError
|
5
|
+
# for JRuby
|
6
|
+
require 'io/console'
|
4
7
|
end
|
5
8
|
|
6
9
|
##
|
@@ -23,31 +26,28 @@ class RDoc::Stats::Normal < RDoc::Stats::Quiet
|
|
23
26
|
files_so_far,
|
24
27
|
@num_files)
|
25
28
|
|
26
|
-
# Print a progress bar, but make sure it fits on a single line. Filename
|
27
|
-
# will be truncated if necessary.
|
28
|
-
terminal_width = if defined?(IO) && IO.respond_to?(:console_size)
|
29
|
-
IO.console_size[1].to_i.nonzero? || 80
|
30
|
-
else
|
31
|
-
80
|
32
|
-
end
|
33
|
-
max_filename_size = terminal_width - progress_bar.size
|
34
|
-
|
35
|
-
if filename.size > max_filename_size then
|
36
|
-
# Turn "some_long_filename.rb" to "...ong_filename.rb"
|
37
|
-
filename = filename[(filename.size - max_filename_size) .. -1]
|
38
|
-
filename[0..2] = "..."
|
39
|
-
end
|
40
|
-
|
41
|
-
line = "#{progress_bar}#{filename}"
|
42
29
|
if $stdout.tty?
|
30
|
+
# Print a progress bar, but make sure it fits on a single line. Filename
|
31
|
+
# will be truncated if necessary.
|
32
|
+
size = IO.respond_to?(:console_size) ? IO.console_size : IO.console.winsize
|
33
|
+
terminal_width = size[1].to_i.nonzero? || 80
|
34
|
+
max_filename_size = (terminal_width - progress_bar.size) - 1
|
35
|
+
|
36
|
+
if filename.size > max_filename_size then
|
37
|
+
# Turn "some_long_filename.rb" to "...ong_filename.rb"
|
38
|
+
filename = filename[(filename.size - max_filename_size) .. -1]
|
39
|
+
filename[0..2] = "..."
|
40
|
+
end
|
41
|
+
|
43
42
|
# Clean the line with whitespaces so that leftover output from the
|
44
43
|
# previous line doesn't show up.
|
45
|
-
$stdout.print("\r
|
46
|
-
@last_width =
|
47
|
-
|
44
|
+
$stdout.print("\r\e[K") if @last_width && @last_width > 0
|
45
|
+
@last_width = progress_bar.size + filename.size
|
46
|
+
term = "\r"
|
48
47
|
else
|
49
|
-
|
48
|
+
term = "\n"
|
50
49
|
end
|
50
|
+
$stdout.print(progress_bar, filename, term)
|
51
51
|
$stdout.flush
|
52
52
|
end
|
53
53
|
|
@@ -56,4 +56,3 @@ class RDoc::Stats::Normal < RDoc::Stats::Quiet
|
|
56
56
|
end
|
57
57
|
|
58
58
|
end
|
59
|
-
|
data/lib/rdoc/stats/quiet.rb
CHANGED
data/lib/rdoc/stats/verbose.rb
CHANGED
data/lib/rdoc/stats.rb
CHANGED
data/lib/rdoc/store.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
require 'fileutils'
|
2
3
|
|
3
4
|
##
|
@@ -115,6 +116,11 @@ class RDoc::Store
|
|
115
116
|
|
116
117
|
attr_accessor :encoding
|
117
118
|
|
119
|
+
##
|
120
|
+
# The lazy constants alias will be discovered in passing
|
121
|
+
|
122
|
+
attr_reader :unmatched_constant_alias
|
123
|
+
|
118
124
|
##
|
119
125
|
# Creates a new Store of +type+ that will load or save to +path+
|
120
126
|
|
@@ -142,6 +148,7 @@ class RDoc::Store
|
|
142
148
|
@classes_hash = {}
|
143
149
|
@modules_hash = {}
|
144
150
|
@files_hash = {}
|
151
|
+
@text_files_hash = {}
|
145
152
|
|
146
153
|
@c_enclosure_classes = {}
|
147
154
|
@c_enclosure_names = {}
|
@@ -151,6 +158,8 @@ class RDoc::Store
|
|
151
158
|
|
152
159
|
@unique_classes = nil
|
153
160
|
@unique_modules = nil
|
161
|
+
|
162
|
+
@unmatched_constant_alias = {}
|
154
163
|
end
|
155
164
|
|
156
165
|
##
|
@@ -176,16 +185,24 @@ class RDoc::Store
|
|
176
185
|
# Adds the file with +name+ as an RDoc::TopLevel to the store. Returns the
|
177
186
|
# created RDoc::TopLevel.
|
178
187
|
|
179
|
-
def add_file absolute_name, relative_name
|
188
|
+
def add_file absolute_name, relative_name: absolute_name, parser: nil
|
180
189
|
unless top_level = @files_hash[relative_name] then
|
181
190
|
top_level = RDoc::TopLevel.new absolute_name, relative_name
|
191
|
+
top_level.parser = parser if parser
|
182
192
|
top_level.store = self
|
183
193
|
@files_hash[relative_name] = top_level
|
194
|
+
@text_files_hash[relative_name] = top_level if top_level.text?
|
184
195
|
end
|
185
196
|
|
186
197
|
top_level
|
187
198
|
end
|
188
199
|
|
200
|
+
def update_parser_of_file(absolute_name, parser)
|
201
|
+
if top_level = @files_hash[absolute_name] then
|
202
|
+
@text_files_hash[absolute_name] = top_level if top_level.text?
|
203
|
+
end
|
204
|
+
end
|
205
|
+
|
189
206
|
##
|
190
207
|
# Returns all classes discovered by RDoc
|
191
208
|
|
@@ -420,8 +437,8 @@ class RDoc::Store
|
|
420
437
|
# +file_name+
|
421
438
|
|
422
439
|
def find_text_page file_name
|
423
|
-
@
|
424
|
-
file.
|
440
|
+
@text_files_hash.each_value.find do |file|
|
441
|
+
file.full_name == file_name
|
425
442
|
end
|
426
443
|
end
|
427
444
|
|
@@ -449,18 +466,12 @@ class RDoc::Store
|
|
449
466
|
# inherit from Object, we have the above wrong inheritance.
|
450
467
|
#
|
451
468
|
# We fix BasicObject right away if we are running in a Ruby
|
452
|
-
# version >= 1.9.
|
453
|
-
# while running under 1.8: we search the files of BasicObject
|
454
|
-
# for "object.c", and fix the inheritance if we find it.
|
469
|
+
# version >= 1.9.
|
455
470
|
|
456
471
|
def fix_basic_object_inheritance
|
457
472
|
basic = classes_hash['BasicObject']
|
458
473
|
return unless basic
|
459
|
-
|
460
|
-
basic.superclass = nil
|
461
|
-
elsif basic.in_files.any? { |f| File.basename(f.full_name) == 'object.c' }
|
462
|
-
basic.superclass = nil
|
463
|
-
end
|
474
|
+
basic.superclass = nil
|
464
475
|
end
|
465
476
|
|
466
477
|
##
|
@@ -471,7 +482,7 @@ class RDoc::Store
|
|
471
482
|
when :gem then
|
472
483
|
parent = File.expand_path '..', @path
|
473
484
|
"gem #{File.basename parent}"
|
474
|
-
when :home then
|
485
|
+
when :home then RDoc.home
|
475
486
|
when :site then 'ruby site'
|
476
487
|
when :system then 'ruby core'
|
477
488
|
else @path
|
@@ -535,6 +546,7 @@ class RDoc::Store
|
|
535
546
|
@cache[:pages].each do |page_name|
|
536
547
|
page = load_page page_name
|
537
548
|
@files_hash[page_name] = page
|
549
|
+
@text_files_hash[page_name] = page if page.text?
|
538
550
|
end
|
539
551
|
end
|
540
552
|
|
@@ -544,7 +556,7 @@ class RDoc::Store
|
|
544
556
|
def load_cache
|
545
557
|
#orig_enc = @encoding
|
546
558
|
|
547
|
-
open cache_path, 'rb' do |io|
|
559
|
+
File.open cache_path, 'rb' do |io|
|
548
560
|
@cache = Marshal.load io.read
|
549
561
|
end
|
550
562
|
|
@@ -590,6 +602,8 @@ class RDoc::Store
|
|
590
602
|
case obj
|
591
603
|
when RDoc::NormalClass then
|
592
604
|
@classes_hash[klass_name] = obj
|
605
|
+
when RDoc::SingleClass then
|
606
|
+
@classes_hash[klass_name] = obj
|
593
607
|
when RDoc::NormalModule then
|
594
608
|
@modules_hash[klass_name] = obj
|
595
609
|
end
|
@@ -601,7 +615,7 @@ class RDoc::Store
|
|
601
615
|
def load_class_data klass_name
|
602
616
|
file = class_file klass_name
|
603
617
|
|
604
|
-
open file, 'rb' do |io|
|
618
|
+
File.open file, 'rb' do |io|
|
605
619
|
Marshal.load io.read
|
606
620
|
end
|
607
621
|
rescue Errno::ENOENT => e
|
@@ -616,7 +630,7 @@ class RDoc::Store
|
|
616
630
|
def load_method klass_name, method_name
|
617
631
|
file = method_file klass_name, method_name
|
618
632
|
|
619
|
-
open file, 'rb' do |io|
|
633
|
+
File.open file, 'rb' do |io|
|
620
634
|
obj = Marshal.load io.read
|
621
635
|
obj.store = self
|
622
636
|
obj.parent =
|
@@ -636,7 +650,7 @@ class RDoc::Store
|
|
636
650
|
def load_page page_name
|
637
651
|
file = page_file page_name
|
638
652
|
|
639
|
-
open file, 'rb' do |io|
|
653
|
+
File.open file, 'rb' do |io|
|
640
654
|
obj = Marshal.load io.read
|
641
655
|
obj.store = self
|
642
656
|
obj
|
@@ -684,12 +698,7 @@ class RDoc::Store
|
|
684
698
|
method_name =~ /#(.*)/
|
685
699
|
method_type = $1 ? 'i' : 'c'
|
686
700
|
method_name = $1 if $1
|
687
|
-
|
688
|
-
method_name = if ''.respond_to? :ord then
|
689
|
-
method_name.gsub(/\W/) { "%%%02x" % $&[0].ord }
|
690
|
-
else
|
691
|
-
method_name.gsub(/\W/) { "%%%02x" % $&[0] }
|
692
|
-
end
|
701
|
+
method_name = method_name.gsub(/\W/) { "%%%02x" % $&[0].ord }
|
693
702
|
|
694
703
|
File.join class_path(klass_name), "#{method_name}-#{method_type}.ri"
|
695
704
|
end
|
@@ -713,8 +722,8 @@ class RDoc::Store
|
|
713
722
|
# Returns the RDoc::TopLevel that is a text file and has the given +name+
|
714
723
|
|
715
724
|
def page name
|
716
|
-
@
|
717
|
-
file.
|
725
|
+
@text_files_hash.each_value.find do |file|
|
726
|
+
file.page_name == name or file.base_name == name
|
718
727
|
end
|
719
728
|
end
|
720
729
|
|
@@ -786,10 +795,8 @@ class RDoc::Store
|
|
786
795
|
|
787
796
|
return if @dry_run
|
788
797
|
|
789
|
-
|
790
|
-
|
791
|
-
open cache_path, 'wb' do |io|
|
792
|
-
io.write marshal
|
798
|
+
File.open cache_path, 'wb' do |io|
|
799
|
+
Marshal.dump @cache, io
|
793
800
|
end
|
794
801
|
end
|
795
802
|
|
@@ -862,10 +869,8 @@ class RDoc::Store
|
|
862
869
|
|
863
870
|
FileUtils.rm_f to_delete
|
864
871
|
|
865
|
-
|
866
|
-
|
867
|
-
open path, 'wb' do |io|
|
868
|
-
io.write marshal
|
872
|
+
File.open path, 'wb' do |io|
|
873
|
+
Marshal.dump klass, io
|
869
874
|
end
|
870
875
|
end
|
871
876
|
|
@@ -887,10 +892,8 @@ class RDoc::Store
|
|
887
892
|
|
888
893
|
return if @dry_run
|
889
894
|
|
890
|
-
|
891
|
-
|
892
|
-
open method_file(full_name, method.full_name), 'wb' do |io|
|
893
|
-
io.write marshal
|
895
|
+
File.open method_file(full_name, method.full_name), 'wb' do |io|
|
896
|
+
Marshal.dump method, io
|
894
897
|
end
|
895
898
|
end
|
896
899
|
|
@@ -909,10 +912,8 @@ class RDoc::Store
|
|
909
912
|
|
910
913
|
return if @dry_run
|
911
914
|
|
912
|
-
|
913
|
-
|
914
|
-
open path, 'wb' do |io|
|
915
|
-
io.write marshal
|
915
|
+
File.open path, 'wb' do |io|
|
916
|
+
Marshal.dump page, io
|
916
917
|
end
|
917
918
|
end
|
918
919
|
|
@@ -976,4 +977,3 @@ class RDoc::Store
|
|
976
977
|
end
|
977
978
|
|
978
979
|
end
|
979
|
-
|
data/lib/rdoc/task.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
#--
|
2
3
|
# Copyright (c) 2003, 2004 Jim Weirich, 2009 Eric Hodel
|
3
4
|
#
|
@@ -21,7 +22,6 @@
|
|
21
22
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
23
|
#++
|
23
24
|
|
24
|
-
require 'rubygems'
|
25
25
|
begin
|
26
26
|
gem 'rdoc'
|
27
27
|
rescue Gem::LoadError
|
@@ -128,7 +128,7 @@ class RDoc::Task < Rake::TaskLib
|
|
128
128
|
attr_accessor :template
|
129
129
|
|
130
130
|
##
|
131
|
-
# Name of format generator (<tt>--format
|
131
|
+
# Name of format generator (<tt>--format</tt>) used by rdoc. (defaults to
|
132
132
|
# rdoc's default)
|
133
133
|
|
134
134
|
attr_accessor :generator
|
@@ -327,4 +327,3 @@ module Rake
|
|
327
327
|
|
328
328
|
end
|
329
329
|
# :startdoc:
|
330
|
-
|
data/lib/rdoc/text.rb
CHANGED
@@ -1,25 +1,17 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
3
|
##
|
4
4
|
# For RDoc::Text#to_html
|
5
5
|
|
6
6
|
require 'strscan'
|
7
7
|
|
8
|
-
##
|
9
|
-
# For RDoc::Text#snippet
|
10
|
-
|
11
|
-
begin
|
12
|
-
gem 'json'
|
13
|
-
rescue NameError => e # --disable-gems
|
14
|
-
raise unless e.name == :gem
|
15
|
-
rescue Gem::LoadError
|
16
|
-
end
|
17
|
-
|
18
8
|
##
|
19
9
|
# Methods for manipulating comment text
|
20
10
|
|
21
11
|
module RDoc::Text
|
22
12
|
|
13
|
+
attr_accessor :language
|
14
|
+
|
23
15
|
##
|
24
16
|
# Maps markup formats to classes that can parse them. If the format is
|
25
17
|
# unknown, "rdoc" format is used.
|
@@ -51,7 +43,7 @@ module RDoc::Text
|
|
51
43
|
:open_squote => encode_fallback('‘', encoding, '\''),
|
52
44
|
:trademark => encode_fallback('®', encoding, '(r)'),
|
53
45
|
}
|
54
|
-
end
|
46
|
+
end
|
55
47
|
|
56
48
|
##
|
57
49
|
# Transcodes +character+ to +encoding+ with a +fallback+ character.
|
@@ -70,7 +62,7 @@ module RDoc::Text
|
|
70
62
|
text.each_line do |line|
|
71
63
|
nil while line.gsub!(/(?:\G|\r)((?:.{8})*?)([^\t\r\n]{0,7})\t/) do
|
72
64
|
r = "#{$1}#{$2}#{' ' * (8 - $2.size)}"
|
73
|
-
r.
|
65
|
+
r = RDoc::Encoding.change_encoding r, text.encoding
|
74
66
|
r
|
75
67
|
end
|
76
68
|
|
@@ -92,7 +84,7 @@ module RDoc::Text
|
|
92
84
|
end
|
93
85
|
|
94
86
|
empty = ''
|
95
|
-
empty.
|
87
|
+
empty = RDoc::Encoding.change_encoding empty, text.encoding
|
96
88
|
|
97
89
|
text.gsub(/^ {0,#{indent}}/, empty)
|
98
90
|
end
|
@@ -121,8 +113,12 @@ module RDoc::Text
|
|
121
113
|
def normalize_comment text
|
122
114
|
return text if text.empty?
|
123
115
|
|
124
|
-
|
125
|
-
|
116
|
+
case language
|
117
|
+
when :ruby
|
118
|
+
text = strip_hashes text
|
119
|
+
when :c
|
120
|
+
text = strip_stars text
|
121
|
+
end
|
126
122
|
text = expand_tabs text
|
127
123
|
text = flush_left text
|
128
124
|
text = strip_newlines text
|
@@ -159,7 +155,7 @@ module RDoc::Text
|
|
159
155
|
return text if text =~ /^(?>\s*)[^\#]/
|
160
156
|
|
161
157
|
empty = ''
|
162
|
-
empty.
|
158
|
+
empty = RDoc::Encoding.change_encoding empty, text.encoding
|
163
159
|
|
164
160
|
text.gsub(/^\s*(#+)/) { $1.tr '#', ' ' }.gsub(/^\s+$/, empty)
|
165
161
|
end
|
@@ -177,19 +173,19 @@ module RDoc::Text
|
|
177
173
|
def strip_stars text
|
178
174
|
return text unless text =~ %r%/\*.*\*/%m
|
179
175
|
|
180
|
-
encoding = text.encoding
|
176
|
+
encoding = text.encoding
|
181
177
|
|
182
|
-
text = text.gsub %r%Document-method:\s+[\w
|
178
|
+
text = text.gsub %r%Document-method:\s+[\w:.#=!?|^&<>~+\-/*\%@`\[\]]+%, ''
|
183
179
|
|
184
180
|
space = ' '
|
185
|
-
space.
|
181
|
+
space = RDoc::Encoding.change_encoding space, encoding if encoding
|
186
182
|
|
187
183
|
text.sub! %r%/\*+% do space * $&.length end
|
188
184
|
text.sub! %r%\*+/% do space * $&.length end
|
189
185
|
text.gsub! %r%^[ \t]*\*%m do space * $&.length end
|
190
186
|
|
191
187
|
empty = ''
|
192
|
-
empty.
|
188
|
+
empty = RDoc::Encoding.change_encoding empty, encoding if encoding
|
193
189
|
text.gsub(/^\s+$/, empty)
|
194
190
|
end
|
195
191
|
|
@@ -198,24 +194,9 @@ module RDoc::Text
|
|
198
194
|
# trademark symbols in +text+ to properly encoded characters.
|
199
195
|
|
200
196
|
def to_html text
|
201
|
-
|
202
|
-
html = ''.encode text.encoding
|
197
|
+
html = (''.encode text.encoding).dup
|
203
198
|
|
204
|
-
|
205
|
-
else
|
206
|
-
html = ''
|
207
|
-
encoded = {
|
208
|
-
:close_dquote => '”',
|
209
|
-
:close_squote => '’',
|
210
|
-
:copyright => '©',
|
211
|
-
:ellipsis => '…',
|
212
|
-
:em_dash => '—',
|
213
|
-
:en_dash => '–',
|
214
|
-
:open_dquote => '“',
|
215
|
-
:open_squote => '‘',
|
216
|
-
:trademark => '®',
|
217
|
-
}
|
218
|
-
end
|
199
|
+
encoded = RDoc::Text::TO_HTML_CHARACTERS[text.encoding]
|
219
200
|
|
220
201
|
s = StringScanner.new text
|
221
202
|
insquotes = false
|