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.

Files changed (277) hide show
  1. checksums.yaml +5 -5
  2. data/CONTRIBUTING.rdoc +8 -7
  3. data/Gemfile +12 -0
  4. data/History.rdoc +48 -4
  5. data/LEGAL.rdoc +2 -2
  6. data/README.rdoc +5 -5
  7. data/Rakefile +73 -155
  8. data/bin/console +7 -0
  9. data/bin/setup +6 -0
  10. data/{bin → exe}/rdoc +0 -0
  11. data/{bin → exe}/ri +0 -0
  12. data/lib/rdoc/alias.rb +1 -0
  13. data/lib/rdoc/anon_class.rb +1 -0
  14. data/lib/rdoc/any_method.rb +59 -14
  15. data/lib/rdoc/attr.rb +1 -0
  16. data/lib/rdoc/class_module.rb +5 -2
  17. data/lib/rdoc/code_object.rb +3 -11
  18. data/lib/rdoc/code_objects.rb +1 -0
  19. data/lib/rdoc/comment.rb +32 -11
  20. data/lib/rdoc/constant.rb +3 -2
  21. data/lib/rdoc/context/section.rb +7 -13
  22. data/lib/rdoc/context.rb +78 -23
  23. data/lib/rdoc/cross_reference.rb +33 -14
  24. data/lib/rdoc/encoding.rb +92 -55
  25. data/lib/rdoc/erb_partial.rb +2 -1
  26. data/lib/rdoc/erbio.rb +8 -3
  27. data/lib/rdoc/extend.rb +1 -0
  28. data/lib/rdoc/generator/darkfish.rb +62 -32
  29. data/lib/rdoc/generator/json_index.rb +8 -5
  30. data/lib/rdoc/generator/markup.rb +3 -12
  31. data/lib/rdoc/generator/pot/message_extractor.rb +68 -0
  32. data/lib/rdoc/generator/pot/po.rb +84 -0
  33. data/lib/rdoc/generator/pot/po_entry.rb +141 -0
  34. data/lib/rdoc/generator/pot.rb +4 -3
  35. data/lib/rdoc/generator/ri.rb +1 -0
  36. data/lib/rdoc/generator/template/darkfish/_footer.rhtml +2 -2
  37. data/lib/rdoc/generator/template/darkfish/_head.rhtml +11 -8
  38. data/lib/rdoc/generator/template/darkfish/_sidebar_VCS_info.rhtml +2 -2
  39. data/lib/rdoc/generator/template/darkfish/_sidebar_classes.rhtml +2 -2
  40. data/lib/rdoc/generator/template/darkfish/_sidebar_extends.rhtml +7 -7
  41. data/lib/rdoc/generator/template/darkfish/_sidebar_in_files.rhtml +2 -2
  42. data/lib/rdoc/generator/template/darkfish/_sidebar_includes.rhtml +7 -7
  43. data/lib/rdoc/generator/template/darkfish/_sidebar_installed.rhtml +6 -6
  44. data/lib/rdoc/generator/template/darkfish/_sidebar_methods.rhtml +5 -5
  45. data/lib/rdoc/generator/template/darkfish/_sidebar_pages.rhtml +5 -5
  46. data/lib/rdoc/generator/template/darkfish/_sidebar_parent.rhtml +5 -5
  47. data/lib/rdoc/generator/template/darkfish/_sidebar_sections.rhtml +4 -4
  48. data/lib/rdoc/generator/template/darkfish/_sidebar_table_of_contents.rhtml +4 -4
  49. data/lib/rdoc/generator/template/darkfish/class.rhtml +45 -47
  50. data/lib/rdoc/generator/template/darkfish/css/fonts.css +6 -6
  51. data/lib/rdoc/generator/template/darkfish/css/rdoc.css +55 -6
  52. data/lib/rdoc/generator/template/darkfish/index.rhtml +3 -4
  53. data/lib/rdoc/generator/template/darkfish/js/darkfish.js +23 -100
  54. data/lib/rdoc/generator/template/darkfish/js/search.js +32 -31
  55. data/lib/rdoc/generator/template/darkfish/servlet_root.rhtml +15 -16
  56. data/lib/rdoc/generator/template/darkfish/table_of_contents.rhtml +16 -16
  57. data/lib/rdoc/generator/template/json_index/js/navigation.js +4 -41
  58. data/lib/rdoc/generator/template/json_index/js/searcher.js +7 -6
  59. data/lib/rdoc/generator.rb +1 -1
  60. data/lib/rdoc/ghost_method.rb +1 -0
  61. data/lib/rdoc/i18n/locale.rb +2 -1
  62. data/lib/rdoc/i18n/text.rb +5 -4
  63. data/lib/rdoc/i18n.rb +3 -2
  64. data/lib/rdoc/include.rb +1 -0
  65. data/lib/rdoc/known_classes.rb +1 -0
  66. data/lib/rdoc/markdown/entities.rb +1 -0
  67. data/lib/rdoc/markdown/{literals_1_9.kpeg → literals.kpeg} +1 -0
  68. data/lib/rdoc/markdown/{literals_1_9.rb → literals.rb} +1 -4
  69. data/lib/rdoc/markdown.kpeg +94 -51
  70. data/lib/rdoc/markdown.rb +1171 -619
  71. data/lib/rdoc/markup/attr_changer.rb +1 -0
  72. data/lib/rdoc/markup/attr_span.rb +9 -2
  73. data/lib/rdoc/markup/attribute_manager.rb +115 -49
  74. data/lib/rdoc/markup/attributes.rb +7 -6
  75. data/lib/rdoc/markup/blank_line.rb +1 -0
  76. data/lib/rdoc/markup/block_quote.rb +1 -0
  77. data/lib/rdoc/markup/document.rb +1 -0
  78. data/lib/rdoc/markup/formatter.rb +25 -23
  79. data/lib/rdoc/markup/hard_break.rb +1 -0
  80. data/lib/rdoc/markup/heading.rb +4 -3
  81. data/lib/rdoc/markup/include.rb +1 -0
  82. data/lib/rdoc/markup/indented_paragraph.rb +1 -0
  83. data/lib/rdoc/markup/list.rb +1 -0
  84. data/lib/rdoc/markup/list_item.rb +1 -0
  85. data/lib/rdoc/markup/paragraph.rb +1 -0
  86. data/lib/rdoc/markup/parser.rb +78 -61
  87. data/lib/rdoc/markup/pre_process.rb +12 -9
  88. data/lib/rdoc/markup/raw.rb +1 -0
  89. data/lib/rdoc/markup/regexp_handling.rb +41 -0
  90. data/lib/rdoc/markup/rule.rb +1 -0
  91. data/lib/rdoc/markup/to_ansi.rb +1 -0
  92. data/lib/rdoc/markup/to_bs.rb +4 -5
  93. data/lib/rdoc/markup/to_html.rb +71 -25
  94. data/lib/rdoc/markup/to_html_crossref.rb +41 -25
  95. data/lib/rdoc/markup/to_html_snippet.rb +10 -9
  96. data/lib/rdoc/markup/to_joined_paragraph.rb +7 -31
  97. data/lib/rdoc/markup/to_label.rb +10 -9
  98. data/lib/rdoc/markup/to_markdown.rb +9 -8
  99. data/lib/rdoc/markup/to_rdoc.rb +35 -6
  100. data/lib/rdoc/markup/to_table_of_contents.rb +2 -0
  101. data/lib/rdoc/markup/to_test.rb +1 -0
  102. data/lib/rdoc/markup/to_tt_only.rb +3 -2
  103. data/lib/rdoc/markup/verbatim.rb +1 -0
  104. data/lib/rdoc/markup.rb +14 -16
  105. data/lib/rdoc/meta_method.rb +1 -0
  106. data/lib/rdoc/method_attr.rb +2 -1
  107. data/lib/rdoc/mixin.rb +1 -0
  108. data/lib/rdoc/normal_class.rb +3 -2
  109. data/lib/rdoc/normal_module.rb +1 -0
  110. data/lib/rdoc/options.rb +92 -58
  111. data/lib/rdoc/parser/c.rb +219 -223
  112. data/lib/rdoc/parser/changelog.rb +155 -18
  113. data/lib/rdoc/parser/markdown.rb +1 -0
  114. data/lib/rdoc/parser/rd.rb +1 -0
  115. data/lib/rdoc/parser/ripper_state_lex.rb +590 -0
  116. data/lib/rdoc/parser/ruby.rb +635 -468
  117. data/lib/rdoc/parser/ruby_tools.rb +33 -33
  118. data/lib/rdoc/parser/simple.rb +3 -3
  119. data/lib/rdoc/parser/text.rb +1 -0
  120. data/lib/rdoc/parser.rb +17 -50
  121. data/lib/rdoc/rd/block_parser.rb +66 -65
  122. data/lib/rdoc/rd/block_parser.ry +3 -3
  123. data/lib/rdoc/rd/inline.rb +5 -4
  124. data/lib/rdoc/rd/inline_parser.rb +52 -51
  125. data/lib/rdoc/rd/inline_parser.ry +1 -1
  126. data/lib/rdoc/rd.rb +1 -0
  127. data/lib/rdoc/rdoc.rb +68 -63
  128. data/lib/rdoc/require.rb +1 -0
  129. data/lib/rdoc/ri/driver.rb +133 -58
  130. data/lib/rdoc/ri/formatter.rb +1 -0
  131. data/lib/rdoc/ri/paths.rb +4 -20
  132. data/lib/rdoc/ri/store.rb +1 -0
  133. data/lib/rdoc/ri/task.rb +71 -0
  134. data/lib/rdoc/ri.rb +1 -0
  135. data/lib/rdoc/rubygems_hook.rb +5 -12
  136. data/lib/rdoc/servlet.rb +24 -14
  137. data/lib/rdoc/single_class.rb +1 -0
  138. data/lib/rdoc/stats/normal.rb +20 -21
  139. data/lib/rdoc/stats/quiet.rb +1 -0
  140. data/lib/rdoc/stats/verbose.rb +1 -0
  141. data/lib/rdoc/stats.rb +1 -0
  142. data/lib/rdoc/store.rb +41 -41
  143. data/lib/rdoc/task.rb +2 -3
  144. data/lib/rdoc/text.rb +19 -38
  145. data/lib/rdoc/token_stream.rb +56 -32
  146. data/lib/rdoc/tom_doc.rb +17 -11
  147. data/lib/rdoc/top_level.rb +9 -2
  148. data/lib/rdoc/version.rb +8 -0
  149. data/lib/rdoc.rb +24 -10
  150. data/man/ri.1 +247 -0
  151. data/rdoc.gemspec +248 -0
  152. metadata +43 -236
  153. data/.autotest +0 -24
  154. data/.document +0 -5
  155. data/Manifest.txt +0 -306
  156. data/lib/gauntlet_rdoc.rb +0 -84
  157. data/lib/rdoc/generator/template/darkfish/js/jquery.js +0 -4
  158. data/lib/rdoc/markdown/literals_1_8.kpeg +0 -18
  159. data/lib/rdoc/markdown/literals_1_8.rb +0 -416
  160. data/lib/rdoc/markup/formatter_test_case.rb +0 -767
  161. data/lib/rdoc/markup/inline.rb +0 -1
  162. data/lib/rdoc/markup/special.rb +0 -40
  163. data/lib/rdoc/markup/text_formatter_test_case.rb +0 -114
  164. data/lib/rdoc/ruby_lex.rb +0 -1377
  165. data/lib/rdoc/ruby_token.rb +0 -460
  166. data/lib/rdoc/test_case.rb +0 -217
  167. data/test/MarkdownTest_1.0.3/Amps and angle encoding.text +0 -21
  168. data/test/MarkdownTest_1.0.3/Auto links.text +0 -13
  169. data/test/MarkdownTest_1.0.3/Backslash escapes.text +0 -120
  170. data/test/MarkdownTest_1.0.3/Blockquotes with code blocks.text +0 -11
  171. data/test/MarkdownTest_1.0.3/Code Blocks.text +0 -14
  172. data/test/MarkdownTest_1.0.3/Code Spans.text +0 -6
  173. data/test/MarkdownTest_1.0.3/Hard-wrapped paragraphs with list-like lines.text +0 -8
  174. data/test/MarkdownTest_1.0.3/Horizontal rules.text +0 -67
  175. data/test/MarkdownTest_1.0.3/Inline HTML (Advanced).text +0 -15
  176. data/test/MarkdownTest_1.0.3/Inline HTML (Simple).text +0 -69
  177. data/test/MarkdownTest_1.0.3/Inline HTML comments.text +0 -13
  178. data/test/MarkdownTest_1.0.3/Links, inline style.text +0 -12
  179. data/test/MarkdownTest_1.0.3/Links, reference style.text +0 -71
  180. data/test/MarkdownTest_1.0.3/Links, shortcut references.text +0 -20
  181. data/test/MarkdownTest_1.0.3/Literal quotes in titles.text +0 -7
  182. data/test/MarkdownTest_1.0.3/Markdown Documentation - Basics.text +0 -306
  183. data/test/MarkdownTest_1.0.3/Markdown Documentation - Syntax.text +0 -888
  184. data/test/MarkdownTest_1.0.3/Nested blockquotes.text +0 -5
  185. data/test/MarkdownTest_1.0.3/Ordered and unordered lists.text +0 -131
  186. data/test/MarkdownTest_1.0.3/Strong and em together.text +0 -7
  187. data/test/MarkdownTest_1.0.3/Tabs.text +0 -21
  188. data/test/MarkdownTest_1.0.3/Tidyness.text +0 -5
  189. data/test/README +0 -1
  190. data/test/binary.dat +0 -0
  191. data/test/hidden.zip.txt +0 -1
  192. data/test/test.ja.largedoc +0 -3
  193. data/test/test.ja.rdoc +0 -10
  194. data/test/test.ja.txt +0 -8
  195. data/test/test.txt +0 -1
  196. data/test/test_rdoc_alias.rb +0 -13
  197. data/test/test_rdoc_any_method.rb +0 -460
  198. data/test/test_rdoc_attr.rb +0 -190
  199. data/test/test_rdoc_class_module.rb +0 -1492
  200. data/test/test_rdoc_code_object.rb +0 -450
  201. data/test/test_rdoc_comment.rb +0 -504
  202. data/test/test_rdoc_constant.rb +0 -181
  203. data/test/test_rdoc_context.rb +0 -901
  204. data/test/test_rdoc_context_section.rb +0 -130
  205. data/test/test_rdoc_cross_reference.rb +0 -192
  206. data/test/test_rdoc_encoding.rb +0 -227
  207. data/test/test_rdoc_extend.rb +0 -94
  208. data/test/test_rdoc_generator_darkfish.rb +0 -229
  209. data/test/test_rdoc_generator_json_index.rb +0 -324
  210. data/test/test_rdoc_generator_markup.rb +0 -59
  211. data/test/test_rdoc_generator_pot.rb +0 -91
  212. data/test/test_rdoc_generator_pot_po.rb +0 -51
  213. data/test/test_rdoc_generator_pot_po_entry.rb +0 -139
  214. data/test/test_rdoc_generator_ri.rb +0 -78
  215. data/test/test_rdoc_i18n_locale.rb +0 -73
  216. data/test/test_rdoc_i18n_text.rb +0 -123
  217. data/test/test_rdoc_include.rb +0 -108
  218. data/test/test_rdoc_markdown.rb +0 -980
  219. data/test/test_rdoc_markdown_test.rb +0 -1884
  220. data/test/test_rdoc_markup.rb +0 -95
  221. data/test/test_rdoc_markup_attribute_manager.rb +0 -364
  222. data/test/test_rdoc_markup_attributes.rb +0 -39
  223. data/test/test_rdoc_markup_document.rb +0 -207
  224. data/test/test_rdoc_markup_formatter.rb +0 -175
  225. data/test/test_rdoc_markup_hard_break.rb +0 -31
  226. data/test/test_rdoc_markup_heading.rb +0 -29
  227. data/test/test_rdoc_markup_include.rb +0 -19
  228. data/test/test_rdoc_markup_indented_paragraph.rb +0 -53
  229. data/test/test_rdoc_markup_paragraph.rb +0 -32
  230. data/test/test_rdoc_markup_parser.rb +0 -1680
  231. data/test/test_rdoc_markup_pre_process.rb +0 -473
  232. data/test/test_rdoc_markup_raw.rb +0 -22
  233. data/test/test_rdoc_markup_to_ansi.rb +0 -369
  234. data/test/test_rdoc_markup_to_bs.rb +0 -366
  235. data/test/test_rdoc_markup_to_html.rb +0 -662
  236. data/test/test_rdoc_markup_to_html_crossref.rb +0 -225
  237. data/test/test_rdoc_markup_to_html_snippet.rb +0 -711
  238. data/test/test_rdoc_markup_to_joined_paragraph.rb +0 -32
  239. data/test/test_rdoc_markup_to_label.rb +0 -112
  240. data/test/test_rdoc_markup_to_markdown.rb +0 -389
  241. data/test/test_rdoc_markup_to_rdoc.rb +0 -377
  242. data/test/test_rdoc_markup_to_table_of_contents.rb +0 -126
  243. data/test/test_rdoc_markup_to_tt_only.rb +0 -246
  244. data/test/test_rdoc_markup_verbatim.rb +0 -29
  245. data/test/test_rdoc_method_attr.rb +0 -193
  246. data/test/test_rdoc_normal_class.rb +0 -47
  247. data/test/test_rdoc_normal_module.rb +0 -42
  248. data/test/test_rdoc_options.rb +0 -766
  249. data/test/test_rdoc_parser.rb +0 -327
  250. data/test/test_rdoc_parser_c.rb +0 -1896
  251. data/test/test_rdoc_parser_changelog.rb +0 -315
  252. data/test/test_rdoc_parser_markdown.rb +0 -61
  253. data/test/test_rdoc_parser_rd.rb +0 -55
  254. data/test/test_rdoc_parser_ruby.rb +0 -3322
  255. data/test/test_rdoc_parser_simple.rb +0 -115
  256. data/test/test_rdoc_rd.rb +0 -30
  257. data/test/test_rdoc_rd_block_parser.rb +0 -535
  258. data/test/test_rdoc_rd_inline.rb +0 -63
  259. data/test/test_rdoc_rd_inline_parser.rb +0 -177
  260. data/test/test_rdoc_rdoc.rb +0 -455
  261. data/test/test_rdoc_require.rb +0 -25
  262. data/test/test_rdoc_ri_driver.rb +0 -1436
  263. data/test/test_rdoc_ri_paths.rb +0 -155
  264. data/test/test_rdoc_ruby_lex.rb +0 -421
  265. data/test/test_rdoc_ruby_token.rb +0 -19
  266. data/test/test_rdoc_rubygems_hook.rb +0 -251
  267. data/test/test_rdoc_servlet.rb +0 -534
  268. data/test/test_rdoc_single_class.rb +0 -20
  269. data/test/test_rdoc_stats.rb +0 -722
  270. data/test/test_rdoc_store.rb +0 -993
  271. data/test/test_rdoc_task.rb +0 -173
  272. data/test/test_rdoc_text.rb +0 -557
  273. data/test/test_rdoc_token_stream.rb +0 -42
  274. data/test/test_rdoc_tom_doc.rb +0 -520
  275. data/test/test_rdoc_top_level.rb +0 -287
  276. data/test/xref_data.rb +0 -76
  277. data/test/xref_test_case.rb +0 -67
@@ -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, trim_mode = nil, eoutvar = 'io'
23
- super
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,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  ##
2
3
  # A Module extension to a class with \#extend
3
4
  #
@@ -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
- require 'rdoc/generator/markup'
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
- # suppress 1.9.3 warning
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| binding end
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
- # suppress 1.9.3 warning
346
- asset_rel_prefix = asset_rel_prefix = rel_prefix + @asset_rel_path
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| binding end
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
- # suppress 1.9.3 warning
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| binding end
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
- # suppress 1.9.3 warning
461
- current = current = file
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| binding end
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
- # suppress 1.9.3 warning
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| binding end
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
- # suppress 1.9.3 warning
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| binding end
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 if Object.const_defined? :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 if
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
- template = klass.new template, nil, '<>', erbout
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 if Object.const_defined? :Encoding
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 unless defined?(Zlib)
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 +add_line_numbers+ is true.
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 RDoc::MethodAttr.add_line_numbers
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
@@ -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
- autoload :MessageExtractor, 'rdoc/generator/pot/message_extractor'
94
- autoload :PO, 'rdoc/generator/pot/po'
95
- autoload :POEntry, 'rdoc/generator/pot/po_entry'
94
+ require_relative 'pot/message_extractor'
95
+ require_relative 'pot/po'
96
+ require_relative 'pot/po_entry'
96
97
 
97
98
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  ##
2
3
  # Generates ri data files
3
4
 
@@ -1,5 +1,5 @@
1
1
  <footer id="validator-badges" role="contentinfo">
2
- <p><a href="http://validator.w3.org/check/referer">Validate</a>
3
- <p>Generated by <a href="http://docs.seattlerb.org/rdoc/">RDoc</a> <%= RDoc::VERSION %>.
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>