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/erb_partial.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
##
|
2
3
|
# Allows an ERB template to be rendered in the context (binding) of an
|
3
4
|
# existing ERB template evaluation.
|
@@ -11,7 +12,7 @@ class RDoc::ERBPartial < ERB
|
|
11
12
|
def set_eoutvar compiler, eoutvar = '_erbout'
|
12
13
|
super
|
13
14
|
|
14
|
-
compiler.pre_cmd = ["#{eoutvar} ||= ''"]
|
15
|
+
compiler.pre_cmd = ["#{eoutvar} ||= +''"]
|
15
16
|
end
|
16
17
|
|
17
18
|
end
|
data/lib/rdoc/erbio.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
require 'erb'
|
2
3
|
|
3
4
|
##
|
@@ -8,7 +9,7 @@ require 'erb'
|
|
8
9
|
#
|
9
10
|
# erbio = RDoc::ERBIO.new '<%= "hello world" %>', nil, nil
|
10
11
|
#
|
11
|
-
# open 'hello.txt', 'w' do |io|
|
12
|
+
# File.open 'hello.txt', 'w' do |io|
|
12
13
|
# erbio.result binding
|
13
14
|
# end
|
14
15
|
#
|
@@ -19,8 +20,12 @@ class RDoc::ERBIO < ERB
|
|
19
20
|
##
|
20
21
|
# Defaults +eoutvar+ to 'io', otherwise is identical to ERB's initialize
|
21
22
|
|
22
|
-
def initialize str, safe_level = nil,
|
23
|
-
|
23
|
+
def initialize str, safe_level = nil, legacy_trim_mode = nil, legacy_eoutvar = 'io', trim_mode: nil, eoutvar: 'io'
|
24
|
+
if RUBY_VERSION >= '2.6'
|
25
|
+
super(str, trim_mode: trim_mode, eoutvar: eoutvar)
|
26
|
+
else
|
27
|
+
super(str, safe_level, legacy_trim_mode, legacy_eoutvar)
|
28
|
+
end
|
24
29
|
end
|
25
30
|
|
26
31
|
##
|
data/lib/rdoc/extend.rb
CHANGED
@@ -1,9 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
# -*- mode: ruby; ruby-indent-level: 2; tab-width: 2 -*-
|
2
3
|
|
3
4
|
require 'erb'
|
4
5
|
require 'fileutils'
|
5
6
|
require 'pathname'
|
6
|
-
|
7
|
+
require_relative 'markup'
|
7
8
|
|
8
9
|
##
|
9
10
|
# Darkfish RDoc HTML Generator
|
@@ -268,7 +269,7 @@ class RDoc::Generator::Darkfish
|
|
268
269
|
|
269
270
|
@options.static_path.each do |path|
|
270
271
|
unless File.directory? path then
|
271
|
-
FileUtils.install path, @outputdir, fu_options.merge(:mode => 0644)
|
272
|
+
FileUtils.install path, @outputdir, **fu_options.merge(:mode => 0644)
|
272
273
|
next
|
273
274
|
end
|
274
275
|
|
@@ -277,9 +278,9 @@ class RDoc::Generator::Darkfish
|
|
277
278
|
dest_file = @outputdir + entry
|
278
279
|
|
279
280
|
if File.directory? entry then
|
280
|
-
FileUtils.mkdir_p entry, fu_options
|
281
|
+
FileUtils.mkdir_p entry, **fu_options
|
281
282
|
else
|
282
|
-
FileUtils.install entry, dest_file, fu_options.merge(:mode => 0644)
|
283
|
+
FileUtils.install entry, dest_file, **fu_options.merge(:mode => 0644)
|
283
284
|
end
|
284
285
|
end
|
285
286
|
end
|
@@ -312,12 +313,16 @@ class RDoc::Generator::Darkfish
|
|
312
313
|
search_index_rel_prefix = rel_prefix
|
313
314
|
search_index_rel_prefix += @asset_rel_path if @file_output
|
314
315
|
|
315
|
-
|
316
|
-
asset_rel_prefix = asset_rel_prefix = rel_prefix + @asset_rel_path
|
316
|
+
asset_rel_prefix = rel_prefix + @asset_rel_path
|
317
317
|
|
318
318
|
@title = @options.title
|
319
319
|
|
320
|
-
render_template template_file, out_file do |io|
|
320
|
+
render_template template_file, out_file do |io|
|
321
|
+
here = binding
|
322
|
+
# suppress 1.9.3 warning
|
323
|
+
here.local_variable_set(:asset_rel_prefix, asset_rel_prefix)
|
324
|
+
here
|
325
|
+
end
|
321
326
|
rescue => e
|
322
327
|
error = RDoc::Error.new \
|
323
328
|
"error generating index.html: #{e.message} (#{e.class})"
|
@@ -342,14 +347,19 @@ class RDoc::Generator::Darkfish
|
|
342
347
|
search_index_rel_prefix = rel_prefix
|
343
348
|
search_index_rel_prefix += @asset_rel_path if @file_output
|
344
349
|
|
345
|
-
|
346
|
-
|
347
|
-
svninfo = svninfo = get_svninfo(current)
|
350
|
+
asset_rel_prefix = rel_prefix + @asset_rel_path
|
351
|
+
svninfo = get_svninfo(current)
|
348
352
|
|
349
353
|
@title = "#{klass.type} #{klass.full_name} - #{@options.title}"
|
350
354
|
|
351
355
|
debug_msg " rendering #{out_file}"
|
352
|
-
render_template template_file, out_file do |io|
|
356
|
+
render_template template_file, out_file do |io|
|
357
|
+
here = binding
|
358
|
+
# suppress 1.9.3 warning
|
359
|
+
here.local_variable_set(:asset_rel_prefix, asset_rel_prefix)
|
360
|
+
here.local_variable_set(:svninfo, svninfo)
|
361
|
+
here
|
362
|
+
end
|
353
363
|
end
|
354
364
|
|
355
365
|
##
|
@@ -415,8 +425,7 @@ class RDoc::Generator::Darkfish
|
|
415
425
|
search_index_rel_prefix = rel_prefix
|
416
426
|
search_index_rel_prefix += @asset_rel_path if @file_output
|
417
427
|
|
418
|
-
|
419
|
-
asset_rel_prefix = asset_rel_prefix = rel_prefix + @asset_rel_path
|
428
|
+
asset_rel_prefix = rel_prefix + @asset_rel_path
|
420
429
|
|
421
430
|
unless filepage_file then
|
422
431
|
if file.text? then
|
@@ -433,7 +442,13 @@ class RDoc::Generator::Darkfish
|
|
433
442
|
@title += " - #{@options.title}"
|
434
443
|
template_file ||= filepage_file
|
435
444
|
|
436
|
-
render_template template_file, out_file do |io|
|
445
|
+
render_template template_file, out_file do |io|
|
446
|
+
here = binding
|
447
|
+
# suppress 1.9.3 warning
|
448
|
+
here.local_variable_set(:asset_rel_prefix, asset_rel_prefix)
|
449
|
+
here.local_variable_set(:current, current)
|
450
|
+
here
|
451
|
+
end
|
437
452
|
end
|
438
453
|
rescue => e
|
439
454
|
error =
|
@@ -457,14 +472,19 @@ class RDoc::Generator::Darkfish
|
|
457
472
|
search_index_rel_prefix = rel_prefix
|
458
473
|
search_index_rel_prefix += @asset_rel_path if @file_output
|
459
474
|
|
460
|
-
|
461
|
-
|
462
|
-
asset_rel_prefix = asset_rel_prefix = rel_prefix + @asset_rel_path
|
475
|
+
current = file
|
476
|
+
asset_rel_prefix = rel_prefix + @asset_rel_path
|
463
477
|
|
464
478
|
@title = "#{file.page_name} - #{@options.title}"
|
465
479
|
|
466
480
|
debug_msg " rendering #{out_file}"
|
467
|
-
render_template template_file, out_file do |io|
|
481
|
+
render_template template_file, out_file do |io|
|
482
|
+
here = binding
|
483
|
+
# suppress 1.9.3 warning
|
484
|
+
here.local_variable_set(:current, current)
|
485
|
+
here.local_variable_set(:asset_rel_prefix, asset_rel_prefix)
|
486
|
+
here
|
487
|
+
end
|
468
488
|
end
|
469
489
|
|
470
490
|
##
|
@@ -482,12 +502,16 @@ class RDoc::Generator::Darkfish
|
|
482
502
|
search_index_rel_prefix = rel_prefix
|
483
503
|
search_index_rel_prefix += @asset_rel_path if @file_output
|
484
504
|
|
485
|
-
|
486
|
-
asset_rel_prefix = asset_rel_prefix = ''
|
505
|
+
asset_rel_prefix = ''
|
487
506
|
|
488
507
|
@title = 'Not Found'
|
489
508
|
|
490
|
-
render_template template_file do |io|
|
509
|
+
render_template template_file do |io|
|
510
|
+
here = binding
|
511
|
+
# suppress 1.9.3 warning
|
512
|
+
here.local_variable_set(:asset_rel_prefix, asset_rel_prefix)
|
513
|
+
here
|
514
|
+
end
|
491
515
|
rescue => e
|
492
516
|
error = RDoc::Error.new \
|
493
517
|
"error generating servlet_not_found: #{e.message} (#{e.class})"
|
@@ -539,12 +563,16 @@ class RDoc::Generator::Darkfish
|
|
539
563
|
search_index_rel_prefix = rel_prefix
|
540
564
|
search_index_rel_prefix += @asset_rel_path if @file_output
|
541
565
|
|
542
|
-
|
543
|
-
asset_rel_prefix = asset_rel_prefix = rel_prefix + @asset_rel_path
|
566
|
+
asset_rel_prefix = rel_prefix + @asset_rel_path
|
544
567
|
|
545
568
|
@title = "Table of Contents - #{@options.title}"
|
546
569
|
|
547
|
-
render_template template_file, out_file do |io|
|
570
|
+
render_template template_file, out_file do |io|
|
571
|
+
here = binding
|
572
|
+
# suppress 1.9.3 warning
|
573
|
+
here.local_variable_set(:asset_rel_prefix, asset_rel_prefix)
|
574
|
+
here
|
575
|
+
end
|
548
576
|
rescue => e
|
549
577
|
error = RDoc::Error.new \
|
550
578
|
"error generating table_of_contents.html: #{e.message} (#{e.class})"
|
@@ -557,16 +585,16 @@ class RDoc::Generator::Darkfish
|
|
557
585
|
return unless source.exist?
|
558
586
|
|
559
587
|
begin
|
560
|
-
FileUtils.mkdir_p File.dirname(destination), options
|
588
|
+
FileUtils.mkdir_p File.dirname(destination), **options
|
561
589
|
|
562
590
|
begin
|
563
|
-
FileUtils.ln source, destination, options
|
591
|
+
FileUtils.ln source, destination, **options
|
564
592
|
rescue Errno::EEXIST
|
565
593
|
FileUtils.rm destination
|
566
594
|
retry
|
567
595
|
end
|
568
596
|
rescue
|
569
|
-
FileUtils.cp source, destination, options
|
597
|
+
FileUtils.cp source, destination, **options
|
570
598
|
end
|
571
599
|
end
|
572
600
|
|
@@ -697,7 +725,7 @@ class RDoc::Generator::Darkfish
|
|
697
725
|
|
698
726
|
out_file.dirname.mkpath
|
699
727
|
out_file.open 'w', 0644 do |io|
|
700
|
-
io.set_encoding @options.encoding
|
728
|
+
io.set_encoding @options.encoding
|
701
729
|
|
702
730
|
@context = yield io
|
703
731
|
|
@@ -743,18 +771,20 @@ class RDoc::Generator::Darkfish
|
|
743
771
|
erbout = 'io'
|
744
772
|
else
|
745
773
|
template = file.read
|
746
|
-
template = template.encode @options.encoding
|
747
|
-
Object.const_defined? :Encoding
|
774
|
+
template = template.encode @options.encoding
|
748
775
|
|
749
776
|
file_var = File.basename(file).sub(/\..*/, '')
|
750
777
|
|
751
778
|
erbout = "_erbout_#{file_var}"
|
752
779
|
end
|
753
780
|
|
754
|
-
|
781
|
+
if RUBY_VERSION >= '2.6'
|
782
|
+
template = klass.new template, trim_mode: '-', eoutvar: erbout
|
783
|
+
else
|
784
|
+
template = klass.new template, nil, '-', erbout
|
785
|
+
end
|
755
786
|
@template_cache[file] = template
|
756
787
|
template
|
757
788
|
end
|
758
789
|
|
759
790
|
end
|
760
|
-
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
require 'json'
|
2
3
|
begin
|
3
4
|
require 'zlib'
|
@@ -141,17 +142,20 @@ class RDoc::Generator::JsonIndex
|
|
141
142
|
FileUtils.mkdir_p index_file.dirname, :verbose => $DEBUG_RDOC
|
142
143
|
|
143
144
|
index_file.open 'w', 0644 do |io|
|
144
|
-
io.set_encoding Encoding::UTF_8
|
145
|
+
io.set_encoding Encoding::UTF_8
|
145
146
|
io.write 'var search_data = '
|
146
147
|
|
147
148
|
JSON.dump data, io, 0
|
148
149
|
end
|
150
|
+
unless ENV['SOURCE_DATE_EPOCH'].nil?
|
151
|
+
index_file.utime index_file.atime, Time.at(ENV['SOURCE_DATE_EPOCH'].to_i).gmtime
|
152
|
+
end
|
149
153
|
|
150
154
|
Dir.chdir @template_dir do
|
151
155
|
Dir['**/*.js'].each do |source|
|
152
156
|
dest = File.join out_dir, source
|
153
157
|
|
154
|
-
FileUtils.install source, dest, :mode => 0644, :verbose => $DEBUG_RDOC
|
158
|
+
FileUtils.install source, dest, :mode => 0644, :preserve => true, :verbose => $DEBUG_RDOC
|
155
159
|
end
|
156
160
|
end
|
157
161
|
end
|
@@ -160,7 +164,7 @@ class RDoc::Generator::JsonIndex
|
|
160
164
|
# Compress the search_index.js file using gzip
|
161
165
|
|
162
166
|
def generate_gzipped
|
163
|
-
return
|
167
|
+
return if @options.dry_run or not defined?(Zlib)
|
164
168
|
|
165
169
|
debug_msg "Compressing generated JSON index"
|
166
170
|
out_dir = @base_dir + @options.op_dir
|
@@ -169,7 +173,7 @@ class RDoc::Generator::JsonIndex
|
|
169
173
|
outfile = out_dir + "#{search_index_file}.gz"
|
170
174
|
|
171
175
|
debug_msg "Reading the JSON index file from %s" % search_index_file
|
172
|
-
search_index = search_index_file.read
|
176
|
+
search_index = search_index_file.read(mode: 'r:utf-8')
|
173
177
|
|
174
178
|
debug_msg "Writing gzipped search index to %s" % outfile
|
175
179
|
|
@@ -294,4 +298,3 @@ class RDoc::Generator::JsonIndex
|
|
294
298
|
end
|
295
299
|
|
296
300
|
end
|
297
|
-
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
##
|
2
3
|
# Handle common RDoc::Markup tasks for various CodeObjects
|
3
4
|
#
|
@@ -64,16 +65,6 @@ end
|
|
64
65
|
|
65
66
|
class RDoc::MethodAttr
|
66
67
|
|
67
|
-
@add_line_numbers = false
|
68
|
-
|
69
|
-
class << self
|
70
|
-
##
|
71
|
-
# Allows controlling whether <tt>#markup_code</tt> adds line numbers to
|
72
|
-
# the source code.
|
73
|
-
|
74
|
-
attr_accessor :add_line_numbers
|
75
|
-
end
|
76
|
-
|
77
68
|
##
|
78
69
|
# Prepend +src+ with line numbers. Relies on the first line of a source
|
79
70
|
# code listing having:
|
@@ -105,7 +96,7 @@ class RDoc::MethodAttr
|
|
105
96
|
##
|
106
97
|
# Turns the method's token stream into HTML.
|
107
98
|
#
|
108
|
-
# Prepends line numbers if +
|
99
|
+
# Prepends line numbers if +options.line_numbers+ is true.
|
109
100
|
|
110
101
|
def markup_code
|
111
102
|
return '' unless @token_stream
|
@@ -125,7 +116,7 @@ class RDoc::MethodAttr
|
|
125
116
|
end
|
126
117
|
src.gsub!(/^#{' ' * indent}/, '') if indent > 0
|
127
118
|
|
128
|
-
add_line_numbers(src) if
|
119
|
+
add_line_numbers(src) if options.line_numbers
|
129
120
|
|
130
121
|
src
|
131
122
|
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
##
|
3
|
+
# Extracts message from RDoc::Store
|
4
|
+
|
5
|
+
class RDoc::Generator::POT::MessageExtractor
|
6
|
+
|
7
|
+
##
|
8
|
+
# Creates a message extractor for +store+.
|
9
|
+
|
10
|
+
def initialize store
|
11
|
+
@store = store
|
12
|
+
@po = RDoc::Generator::POT::PO.new
|
13
|
+
end
|
14
|
+
|
15
|
+
##
|
16
|
+
# Extracts messages from +store+, stores them into
|
17
|
+
# RDoc::Generator::POT::PO and returns it.
|
18
|
+
|
19
|
+
def extract
|
20
|
+
@store.all_classes_and_modules.each do |klass|
|
21
|
+
extract_from_klass(klass)
|
22
|
+
end
|
23
|
+
@po
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
def extract_from_klass klass
|
29
|
+
extract_text(klass.comment_location, klass.full_name)
|
30
|
+
|
31
|
+
klass.each_section do |section, constants, attributes|
|
32
|
+
extract_text(section.title ,"#{klass.full_name}: section title")
|
33
|
+
section.comments.each do |comment|
|
34
|
+
extract_text(comment, "#{klass.full_name}: #{section.title}")
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
klass.each_constant do |constant|
|
39
|
+
extract_text(constant.comment, constant.full_name)
|
40
|
+
end
|
41
|
+
|
42
|
+
klass.each_attribute do |attribute|
|
43
|
+
extract_text(attribute.comment, attribute.full_name)
|
44
|
+
end
|
45
|
+
|
46
|
+
klass.each_method do |method|
|
47
|
+
extract_text(method.comment, method.full_name)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def extract_text text, comment, location = nil
|
52
|
+
return if text.nil?
|
53
|
+
|
54
|
+
options = {
|
55
|
+
:extracted_comment => comment,
|
56
|
+
:references => [location].compact,
|
57
|
+
}
|
58
|
+
i18n_text = RDoc::I18n::Text.new(text)
|
59
|
+
i18n_text.extract_messages do |part|
|
60
|
+
@po.add(entry(part[:paragraph], options))
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
def entry msgid, options
|
65
|
+
RDoc::Generator::POT::POEntry.new(msgid, options)
|
66
|
+
end
|
67
|
+
|
68
|
+
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
##
|
3
|
+
# Generates a PO format text
|
4
|
+
|
5
|
+
class RDoc::Generator::POT::PO
|
6
|
+
|
7
|
+
##
|
8
|
+
# Creates an object that represents PO format.
|
9
|
+
|
10
|
+
def initialize
|
11
|
+
@entries = {}
|
12
|
+
add_header
|
13
|
+
end
|
14
|
+
|
15
|
+
##
|
16
|
+
# Adds a PO entry to the PO.
|
17
|
+
|
18
|
+
def add entry
|
19
|
+
existing_entry = @entries[entry.msgid]
|
20
|
+
if existing_entry
|
21
|
+
entry = existing_entry.merge(entry)
|
22
|
+
end
|
23
|
+
@entries[entry.msgid] = entry
|
24
|
+
end
|
25
|
+
|
26
|
+
##
|
27
|
+
# Returns PO format text for the PO.
|
28
|
+
|
29
|
+
def to_s
|
30
|
+
po = ''
|
31
|
+
sort_entries.each do |entry|
|
32
|
+
po += "\n" unless po.empty?
|
33
|
+
po += entry.to_s
|
34
|
+
end
|
35
|
+
po
|
36
|
+
end
|
37
|
+
|
38
|
+
private
|
39
|
+
|
40
|
+
def add_header
|
41
|
+
add(header_entry)
|
42
|
+
end
|
43
|
+
|
44
|
+
def header_entry
|
45
|
+
comment = <<-COMMENT
|
46
|
+
SOME DESCRIPTIVE TITLE.
|
47
|
+
Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
48
|
+
This file is distributed under the same license as the PACKAGE package.
|
49
|
+
FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
50
|
+
COMMENT
|
51
|
+
|
52
|
+
content = <<-CONTENT
|
53
|
+
Project-Id-Version: PACKAGE VERSEION
|
54
|
+
Report-Msgid-Bugs-To:
|
55
|
+
PO-Revision-Date: YEAR-MO_DA HO:MI+ZONE
|
56
|
+
Last-Translator: FULL NAME <EMAIL@ADDRESS>
|
57
|
+
Language-Team: LANGUAGE <LL@li.org>
|
58
|
+
Language:
|
59
|
+
MIME-Version: 1.0
|
60
|
+
Content-Type: text/plain; charset=CHARSET
|
61
|
+
Content-Transfer-Encoding: 8bit
|
62
|
+
Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;
|
63
|
+
CONTENT
|
64
|
+
|
65
|
+
options = {
|
66
|
+
:msgstr => content,
|
67
|
+
:translator_comment => comment,
|
68
|
+
:flags => ['fuzzy'],
|
69
|
+
}
|
70
|
+
RDoc::Generator::POT::POEntry.new('', options)
|
71
|
+
end
|
72
|
+
|
73
|
+
def sort_entries
|
74
|
+
headers, messages = @entries.values.partition do |entry|
|
75
|
+
entry.msgid.empty?
|
76
|
+
end
|
77
|
+
# TODO: sort by location
|
78
|
+
sorted_messages = messages.sort_by do |entry|
|
79
|
+
entry.msgid
|
80
|
+
end
|
81
|
+
headers + sorted_messages
|
82
|
+
end
|
83
|
+
|
84
|
+
end
|
@@ -0,0 +1,141 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
##
|
3
|
+
# A PO entry in PO
|
4
|
+
|
5
|
+
class RDoc::Generator::POT::POEntry
|
6
|
+
|
7
|
+
# The msgid content
|
8
|
+
attr_reader :msgid
|
9
|
+
|
10
|
+
# The msgstr content
|
11
|
+
attr_reader :msgstr
|
12
|
+
|
13
|
+
# The comment content created by translator (PO editor)
|
14
|
+
attr_reader :translator_comment
|
15
|
+
|
16
|
+
# The comment content extracted from source file
|
17
|
+
attr_reader :extracted_comment
|
18
|
+
|
19
|
+
# The locations where the PO entry is extracted
|
20
|
+
attr_reader :references
|
21
|
+
|
22
|
+
# The flags of the PO entry
|
23
|
+
attr_reader :flags
|
24
|
+
|
25
|
+
##
|
26
|
+
# Creates a PO entry for +msgid+. Other valus can be specified by
|
27
|
+
# +options+.
|
28
|
+
|
29
|
+
def initialize msgid, options = {}
|
30
|
+
@msgid = msgid
|
31
|
+
@msgstr = options[:msgstr] || ""
|
32
|
+
@translator_comment = options[:translator_comment]
|
33
|
+
@extracted_comment = options[:extracted_comment]
|
34
|
+
@references = options[:references] || []
|
35
|
+
@flags = options[:flags] || []
|
36
|
+
end
|
37
|
+
|
38
|
+
##
|
39
|
+
# Returns the PO entry in PO format.
|
40
|
+
|
41
|
+
def to_s
|
42
|
+
entry = ''
|
43
|
+
entry += format_translator_comment
|
44
|
+
entry += format_extracted_comment
|
45
|
+
entry += format_references
|
46
|
+
entry += format_flags
|
47
|
+
entry += <<-ENTRY
|
48
|
+
msgid #{format_message(@msgid)}
|
49
|
+
msgstr #{format_message(@msgstr)}
|
50
|
+
ENTRY
|
51
|
+
end
|
52
|
+
|
53
|
+
##
|
54
|
+
# Merges the PO entry with +other_entry+.
|
55
|
+
|
56
|
+
def merge other_entry
|
57
|
+
options = {
|
58
|
+
:extracted_comment => merge_string(@extracted_comment,
|
59
|
+
other_entry.extracted_comment),
|
60
|
+
:translator_comment => merge_string(@translator_comment,
|
61
|
+
other_entry.translator_comment),
|
62
|
+
:references => merge_array(@references,
|
63
|
+
other_entry.references),
|
64
|
+
:flags => merge_array(@flags,
|
65
|
+
other_entry.flags),
|
66
|
+
}
|
67
|
+
self.class.new(@msgid, options)
|
68
|
+
end
|
69
|
+
|
70
|
+
private
|
71
|
+
|
72
|
+
def format_comment mark, comment
|
73
|
+
return '' unless comment
|
74
|
+
return '' if comment.empty?
|
75
|
+
|
76
|
+
formatted_comment = ''
|
77
|
+
comment.each_line do |line|
|
78
|
+
formatted_comment += "#{mark} #{line}"
|
79
|
+
end
|
80
|
+
formatted_comment += "\n" unless formatted_comment.end_with?("\n")
|
81
|
+
formatted_comment
|
82
|
+
end
|
83
|
+
|
84
|
+
def format_translator_comment
|
85
|
+
format_comment('#', @translator_comment)
|
86
|
+
end
|
87
|
+
|
88
|
+
def format_extracted_comment
|
89
|
+
format_comment('#.', @extracted_comment)
|
90
|
+
end
|
91
|
+
|
92
|
+
def format_references
|
93
|
+
return '' if @references.empty?
|
94
|
+
|
95
|
+
formatted_references = ''
|
96
|
+
@references.sort.each do |file, line|
|
97
|
+
formatted_references += "\#: #{file}:#{line}\n"
|
98
|
+
end
|
99
|
+
formatted_references
|
100
|
+
end
|
101
|
+
|
102
|
+
def format_flags
|
103
|
+
return '' if @flags.empty?
|
104
|
+
|
105
|
+
formatted_flags = flags.join(",")
|
106
|
+
"\#, #{formatted_flags}\n"
|
107
|
+
end
|
108
|
+
|
109
|
+
def format_message message
|
110
|
+
return "\"#{escape(message)}\"" unless message.include?("\n")
|
111
|
+
|
112
|
+
formatted_message = '""'
|
113
|
+
message.each_line do |line|
|
114
|
+
formatted_message += "\n"
|
115
|
+
formatted_message += "\"#{escape(line)}\""
|
116
|
+
end
|
117
|
+
formatted_message
|
118
|
+
end
|
119
|
+
|
120
|
+
def escape string
|
121
|
+
string.gsub(/["\\\t\n]/) do |special_character|
|
122
|
+
case special_character
|
123
|
+
when "\t"
|
124
|
+
"\\t"
|
125
|
+
when "\n"
|
126
|
+
"\\n"
|
127
|
+
else
|
128
|
+
"\\#{special_character}"
|
129
|
+
end
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
133
|
+
def merge_string string1, string2
|
134
|
+
[string1, string2].compact.join("\n")
|
135
|
+
end
|
136
|
+
|
137
|
+
def merge_array array1, array2
|
138
|
+
(array1 + array2).uniq
|
139
|
+
end
|
140
|
+
|
141
|
+
end
|
data/lib/rdoc/generator/pot.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
##
|
2
3
|
# Generates a POT file.
|
3
4
|
#
|
@@ -90,8 +91,8 @@ class RDoc::Generator::POT
|
|
90
91
|
extractor.extract
|
91
92
|
end
|
92
93
|
|
93
|
-
|
94
|
-
|
95
|
-
|
94
|
+
require_relative 'pot/message_extractor'
|
95
|
+
require_relative 'pot/po'
|
96
|
+
require_relative 'pot/po_entry'
|
96
97
|
|
97
98
|
end
|
data/lib/rdoc/generator/ri.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
<footer id="validator-badges" role="contentinfo">
|
2
|
-
<p><a href="
|
3
|
-
<p>Generated by <a href="
|
2
|
+
<p><a href="https://validator.w3.org/check/referer">Validate</a>
|
3
|
+
<p>Generated by <a href="https://ruby.github.io/rdoc/">RDoc</a> <%= RDoc::VERSION %>.
|
4
4
|
<p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
|
5
5
|
</footer>
|