docspring 3.0.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (523) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +7 -0
  3. data/Gemfile.lock +4 -4
  4. data/README.md +11 -5
  5. data/docs/CreateHtmlSubmissionData.md +3 -1
  6. data/docs/CreatePdfSubmissionData.md +3 -1
  7. data/docs/PDFApi.md +156 -10
  8. data/docs/PublishVersionData.md +20 -0
  9. data/docs/RestoreVersionData.md +18 -0
  10. data/docs/Submission.md +4 -0
  11. data/docs/SubmissionPreview.md +4 -0
  12. data/docs/Template.md +15 -1
  13. data/docs/TemplateDeleteResponse.md +24 -0
  14. data/docs/TemplatePreview.md +13 -1
  15. data/docs/TemplatePublishVersionResponse.md +22 -0
  16. data/lib/docspring/api/pdf_api.rb +152 -5
  17. data/lib/docspring/api_client.rb +1 -1
  18. data/lib/docspring/models/combined_submission_action.rb +1 -5
  19. data/lib/docspring/models/create_html_submission_data.rb +13 -4
  20. data/lib/docspring/models/create_pdf_submission_data.rb +13 -4
  21. data/lib/docspring/models/publish_version_data.rb +230 -0
  22. data/lib/docspring/models/restore_version_data.rb +221 -0
  23. data/lib/docspring/models/submission.rb +41 -1
  24. data/lib/docspring/models/submission_data_request_event.rb +1 -5
  25. data/lib/docspring/models/submission_preview.rb +41 -1
  26. data/lib/docspring/models/template.rb +106 -4
  27. data/lib/docspring/models/template_delete_response.rb +287 -0
  28. data/lib/docspring/models/template_preview.rb +88 -4
  29. data/lib/docspring/models/template_publish_version_response.rb +282 -0
  30. data/lib/docspring/version.rb +1 -1
  31. data/lib/docspring.rb +4 -0
  32. data/spec/api/pdf_api_spec.rb +27 -2
  33. data/spec/models/create_html_submission_data_spec.rb +6 -0
  34. data/spec/models/create_pdf_submission_data_spec.rb +6 -0
  35. data/spec/models/publish_version_data_spec.rb +42 -0
  36. data/spec/models/restore_version_data_spec.rb +36 -0
  37. data/spec/models/submission_preview_spec.rb +16 -0
  38. data/spec/models/submission_spec.rb +16 -0
  39. data/spec/models/template_delete_response_spec.rb +58 -0
  40. data/spec/models/template_preview_spec.rb +40 -0
  41. data/spec/models/template_publish_version_response_spec.rb +52 -0
  42. data/spec/models/template_spec.rb +46 -0
  43. data/vendor/bundle/ruby/3.3.0/bin/irb +29 -0
  44. data/vendor/bundle/ruby/3.3.0/bin/rdbg +29 -0
  45. data/vendor/bundle/ruby/3.3.0/bin/rdoc +29 -0
  46. data/vendor/bundle/ruby/3.3.0/bin/ri +29 -0
  47. data/vendor/bundle/ruby/3.3.0/cache/ast-2.4.3.gem +0 -0
  48. data/vendor/bundle/ruby/3.3.0/cache/debug-1.10.0.gem +0 -0
  49. data/vendor/bundle/ruby/3.3.0/cache/io-console-0.8.0.gem +0 -0
  50. data/vendor/bundle/ruby/3.3.0/cache/irb-1.15.1.gem +0 -0
  51. data/vendor/bundle/ruby/3.3.0/cache/parser-3.3.7.2.gem +0 -0
  52. data/vendor/bundle/ruby/3.3.0/cache/pp-0.6.2.gem +0 -0
  53. data/vendor/bundle/ruby/3.3.0/cache/prettyprint-0.2.0.gem +0 -0
  54. data/vendor/bundle/ruby/3.3.0/cache/rdoc-6.12.0.gem +0 -0
  55. data/vendor/bundle/ruby/3.3.0/cache/reline-0.6.0.gem +0 -0
  56. data/vendor/bundle/ruby/3.3.0/extensions/arm64-darwin-24/3.3.0/debug-1.10.0/debug/debug.bundle +0 -0
  57. data/vendor/bundle/ruby/3.3.0/extensions/arm64-darwin-24/3.3.0/debug-1.10.0/gem.build_complete +0 -0
  58. data/vendor/bundle/ruby/3.3.0/extensions/arm64-darwin-24/3.3.0/debug-1.10.0/gem_make.out +19 -0
  59. data/vendor/bundle/ruby/3.3.0/extensions/arm64-darwin-24/3.3.0/io-console-0.8.0/gem.build_complete +0 -0
  60. data/vendor/bundle/ruby/3.3.0/extensions/arm64-darwin-24/3.3.0/io-console-0.8.0/gem_make.out +31 -0
  61. data/vendor/bundle/ruby/3.3.0/extensions/arm64-darwin-24/3.3.0/io-console-0.8.0/io/console.bundle +0 -0
  62. data/vendor/bundle/ruby/3.3.0/extensions/arm64-darwin-24/3.3.0/io-console-0.8.0/mkmf.log +447 -0
  63. data/vendor/bundle/ruby/3.3.0/gems/ast-2.4.3/LICENSE.MIT +20 -0
  64. data/vendor/bundle/ruby/3.3.0/gems/ast-2.4.3/README.YARD.md +12 -0
  65. data/vendor/bundle/ruby/3.3.0/gems/ast-2.4.3/lib/ast/node.rb +268 -0
  66. data/vendor/bundle/ruby/3.3.0/gems/ast-2.4.3/lib/ast/processor/mixin.rb +288 -0
  67. data/vendor/bundle/ruby/3.3.0/gems/ast-2.4.3/lib/ast/processor.rb +12 -0
  68. data/vendor/bundle/ruby/3.3.0/gems/ast-2.4.3/lib/ast/sexp.rb +30 -0
  69. data/vendor/bundle/ruby/3.3.0/gems/ast-2.4.3/lib/ast.rb +17 -0
  70. data/vendor/bundle/ruby/3.3.0/gems/debug-1.10.0/CONTRIBUTING.md +573 -0
  71. data/vendor/bundle/ruby/3.3.0/gems/debug-1.10.0/Gemfile +10 -0
  72. data/vendor/bundle/ruby/3.3.0/gems/debug-1.10.0/LICENSE.txt +22 -0
  73. data/vendor/bundle/ruby/3.3.0/gems/debug-1.10.0/README.md +970 -0
  74. data/vendor/bundle/ruby/3.3.0/gems/debug-1.10.0/Rakefile +57 -0
  75. data/vendor/bundle/ruby/3.3.0/gems/debug-1.10.0/TODO.md +23 -0
  76. data/vendor/bundle/ruby/3.3.0/gems/debug-1.10.0/debug.gemspec +33 -0
  77. data/vendor/bundle/ruby/3.3.0/gems/debug-1.10.0/exe/rdbg +53 -0
  78. data/vendor/bundle/ruby/3.3.0/gems/debug-1.10.0/ext/debug/Makefile +270 -0
  79. data/vendor/bundle/ruby/3.3.0/gems/debug-1.10.0/ext/debug/debug.c +228 -0
  80. data/vendor/bundle/ruby/3.3.0/gems/debug-1.10.0/ext/debug/debug_version.h +1 -0
  81. data/vendor/bundle/ruby/3.3.0/gems/debug-1.10.0/ext/debug/extconf.rb +27 -0
  82. data/vendor/bundle/ruby/3.3.0/gems/debug-1.10.0/ext/debug/iseq_collector.c +93 -0
  83. data/vendor/bundle/ruby/3.3.0/gems/debug-1.10.0/lib/debug/abbrev_command.rb +77 -0
  84. data/vendor/bundle/ruby/3.3.0/gems/debug-1.10.0/lib/debug/breakpoint.rb +556 -0
  85. data/vendor/bundle/ruby/3.3.0/gems/debug-1.10.0/lib/debug/client.rb +263 -0
  86. data/vendor/bundle/ruby/3.3.0/gems/debug-1.10.0/lib/debug/color.rb +123 -0
  87. data/vendor/bundle/ruby/3.3.0/gems/debug-1.10.0/lib/debug/config.rb +590 -0
  88. data/vendor/bundle/ruby/3.3.0/gems/debug-1.10.0/lib/debug/console.rb +213 -0
  89. data/vendor/bundle/ruby/3.3.0/gems/debug-1.10.0/lib/debug/dap_custom/traceInspector.rb +336 -0
  90. data/vendor/bundle/ruby/3.3.0/gems/debug-1.10.0/lib/debug/debug.bundle +0 -0
  91. data/vendor/bundle/ruby/3.3.0/gems/debug-1.10.0/lib/debug/frame_info.rb +188 -0
  92. data/vendor/bundle/ruby/3.3.0/gems/debug-1.10.0/lib/debug/irb_integration.rb +37 -0
  93. data/vendor/bundle/ruby/3.3.0/gems/debug-1.10.0/lib/debug/local.rb +115 -0
  94. data/vendor/bundle/ruby/3.3.0/gems/debug-1.10.0/lib/debug/open.rb +13 -0
  95. data/vendor/bundle/ruby/3.3.0/gems/debug-1.10.0/lib/debug/open_nonstop.rb +15 -0
  96. data/vendor/bundle/ruby/3.3.0/gems/debug-1.10.0/lib/debug/prelude.rb +50 -0
  97. data/vendor/bundle/ruby/3.3.0/gems/debug-1.10.0/lib/debug/server.rb +534 -0
  98. data/vendor/bundle/ruby/3.3.0/gems/debug-1.10.0/lib/debug/server_cdp.rb +1348 -0
  99. data/vendor/bundle/ruby/3.3.0/gems/debug-1.10.0/lib/debug/server_dap.rb +1108 -0
  100. data/vendor/bundle/ruby/3.3.0/gems/debug-1.10.0/lib/debug/session.rb +2659 -0
  101. data/vendor/bundle/ruby/3.3.0/gems/debug-1.10.0/lib/debug/source_repository.rb +150 -0
  102. data/vendor/bundle/ruby/3.3.0/gems/debug-1.10.0/lib/debug/start.rb +5 -0
  103. data/vendor/bundle/ruby/3.3.0/gems/debug-1.10.0/lib/debug/thread_client.rb +1455 -0
  104. data/vendor/bundle/ruby/3.3.0/gems/debug-1.10.0/lib/debug/tracer.rb +241 -0
  105. data/vendor/bundle/ruby/3.3.0/gems/debug-1.10.0/lib/debug/version.rb +5 -0
  106. data/vendor/bundle/ruby/3.3.0/gems/debug-1.10.0/lib/debug.rb +9 -0
  107. data/vendor/bundle/ruby/3.3.0/gems/debug-1.10.0/misc/README.md.erb +636 -0
  108. data/vendor/bundle/ruby/3.3.0/gems/io-console-0.8.0/.document +5 -0
  109. data/vendor/bundle/ruby/3.3.0/gems/io-console-0.8.0/BSDL +22 -0
  110. data/vendor/bundle/ruby/3.3.0/gems/io-console-0.8.0/COPYING +56 -0
  111. data/vendor/bundle/ruby/3.3.0/gems/io-console-0.8.0/README.md +46 -0
  112. data/vendor/bundle/ruby/3.3.0/gems/io-console-0.8.0/ext/io/console/Makefile +272 -0
  113. data/vendor/bundle/ruby/3.3.0/gems/io-console-0.8.0/ext/io/console/console.c +1969 -0
  114. data/vendor/bundle/ruby/3.3.0/gems/io-console-0.8.0/ext/io/console/extconf.rb +61 -0
  115. data/vendor/bundle/ruby/3.3.0/gems/io-console-0.8.0/ext/io/console/win32_vk.inc +1390 -0
  116. data/vendor/bundle/ruby/3.3.0/gems/io-console-0.8.0/lib/io/console/size.rb +23 -0
  117. data/vendor/bundle/ruby/3.3.0/gems/io-console-0.8.0/lib/io/console.bundle +0 -0
  118. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/Gemfile +29 -0
  119. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/LICENSE.txt +22 -0
  120. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/README.md +125 -0
  121. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/Rakefile +52 -0
  122. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/bin/console +6 -0
  123. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/bin/setup +6 -0
  124. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/doc/irb/irb-tools.rd.ja +184 -0
  125. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/doc/irb/irb.rd.ja +425 -0
  126. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/exe/irb +9 -0
  127. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/irb.gemspec +46 -0
  128. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/cmd/nop.rb +4 -0
  129. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/color.rb +263 -0
  130. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/color_printer.rb +56 -0
  131. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/command/backtrace.rb +17 -0
  132. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/command/base.rb +60 -0
  133. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/command/break.rb +17 -0
  134. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/command/catch.rb +17 -0
  135. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/command/cd.rb +51 -0
  136. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/command/chws.rb +40 -0
  137. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/command/context.rb +16 -0
  138. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/command/continue.rb +17 -0
  139. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/command/copy.rb +73 -0
  140. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/command/debug.rb +73 -0
  141. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/command/delete.rb +17 -0
  142. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/command/disable_irb.rb +19 -0
  143. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/command/edit.rb +63 -0
  144. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/command/exit.rb +18 -0
  145. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/command/finish.rb +17 -0
  146. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/command/force_exit.rb +18 -0
  147. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/command/help.rb +83 -0
  148. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/command/history.rb +45 -0
  149. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/command/info.rb +17 -0
  150. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/command/internal_helpers.rb +27 -0
  151. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/command/irb_info.rb +33 -0
  152. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/command/load.rb +91 -0
  153. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/command/ls.rb +167 -0
  154. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/command/measure.rb +49 -0
  155. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/command/next.rb +17 -0
  156. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/command/pushws.rb +65 -0
  157. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/command/show_doc.rb +51 -0
  158. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/command/show_source.rb +74 -0
  159. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/command/step.rb +17 -0
  160. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/command/subirb.rb +123 -0
  161. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/command/whereami.rb +23 -0
  162. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/command.rb +23 -0
  163. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/completion.rb +504 -0
  164. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/context.rb +751 -0
  165. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/debug/ui.rb +101 -0
  166. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/debug.rb +127 -0
  167. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/default_commands.rb +279 -0
  168. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/easter-egg.rb +152 -0
  169. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/ext/change-ws.rb +37 -0
  170. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/ext/eval_history.rb +149 -0
  171. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/ext/loader.rb +127 -0
  172. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/ext/multi-irb.rb +258 -0
  173. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/ext/tracer.rb +39 -0
  174. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/ext/use-loader.rb +67 -0
  175. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/ext/workspaces.rb +36 -0
  176. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/frame.rb +80 -0
  177. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/help.rb +28 -0
  178. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/helper_method/base.rb +16 -0
  179. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/helper_method/conf.rb +11 -0
  180. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/helper_method.rb +29 -0
  181. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/history.rb +116 -0
  182. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/init.rb +540 -0
  183. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/input-method.rb +515 -0
  184. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/inspector.rb +136 -0
  185. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/lc/error.rb +52 -0
  186. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/lc/help-message +55 -0
  187. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/lc/ja/error.rb +53 -0
  188. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/lc/ja/help-message +58 -0
  189. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/locale.rb +153 -0
  190. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/nesting_parser.rb +239 -0
  191. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/notifier.rb +230 -0
  192. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/output-method.rb +80 -0
  193. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/pager.rb +213 -0
  194. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/ruby-lex.rb +476 -0
  195. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/ruby_logo.aa +118 -0
  196. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/source_finder.rb +138 -0
  197. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/statement.rb +101 -0
  198. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/version.rb +11 -0
  199. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/workspace.rb +171 -0
  200. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/ws-for-case-2.rb +9 -0
  201. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb/xmp.rb +164 -0
  202. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/lib/irb.rb +736 -0
  203. data/vendor/bundle/ruby/3.3.0/gems/irb-1.15.1/man/irb.1 +292 -0
  204. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/LICENSE.txt +26 -0
  205. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/bin/ruby-parse +7 -0
  206. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/bin/ruby-rewrite +7 -0
  207. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/gauntlet_parser.rb +123 -0
  208. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/all.rb +17 -0
  209. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/ast/node.rb +40 -0
  210. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/ast/processor.rb +293 -0
  211. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/base.rb +291 -0
  212. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/builders/default.rb +2338 -0
  213. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/clobbering_error.rb +13 -0
  214. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/color.rb +32 -0
  215. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/context.rb +51 -0
  216. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/current.rb +137 -0
  217. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/current_arg_stack.rb +46 -0
  218. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/deprecation.rb +13 -0
  219. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/diagnostic/engine.rb +104 -0
  220. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/diagnostic.rb +163 -0
  221. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/lexer/dedenter.rb +88 -0
  222. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/lexer/explanation.rb +55 -0
  223. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/lexer/literal.rb +284 -0
  224. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/lexer/stack_state.rb +49 -0
  225. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/lexer-F0.rb +12922 -0
  226. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/lexer-F1.rb +14875 -0
  227. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/lexer-strings.rb +5424 -0
  228. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/macruby.rb +9634 -0
  229. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/max_numparam_stack.rb +56 -0
  230. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/messages.rb +125 -0
  231. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/meta.rb +48 -0
  232. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/rewriter.rb +105 -0
  233. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/ruby18.rb +9272 -0
  234. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/ruby19.rb +9558 -0
  235. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/ruby20.rb +10229 -0
  236. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/ruby21.rb +10203 -0
  237. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/ruby22.rb +10302 -0
  238. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/ruby23.rb +10322 -0
  239. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/ruby24.rb +10454 -0
  240. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/ruby25.rb +10374 -0
  241. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/ruby26.rb +10352 -0
  242. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/ruby27.rb +11947 -0
  243. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/ruby30.rb +12243 -0
  244. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/ruby31.rb +12716 -0
  245. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/ruby32.rb +12704 -0
  246. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/ruby33.rb +12589 -0
  247. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/ruby34.rb +12596 -0
  248. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/rubymotion.rb +9515 -0
  249. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/runner/ruby_parse.rb +157 -0
  250. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/runner/ruby_rewrite.rb +101 -0
  251. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/runner.rb +299 -0
  252. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/source/buffer.rb +369 -0
  253. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/source/comment/associator.rb +233 -0
  254. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/source/comment.rb +134 -0
  255. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/source/map/collection.rb +18 -0
  256. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/source/map/condition.rb +21 -0
  257. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/source/map/constant.rb +32 -0
  258. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/source/map/definition.rb +23 -0
  259. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/source/map/for.rb +19 -0
  260. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/source/map/heredoc.rb +19 -0
  261. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/source/map/index.rb +33 -0
  262. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/source/map/keyword.rb +20 -0
  263. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/source/map/method_definition.rb +25 -0
  264. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/source/map/objc_kwarg.rb +19 -0
  265. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/source/map/operator.rb +17 -0
  266. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/source/map/rescue_body.rb +21 -0
  267. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/source/map/send.rb +36 -0
  268. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/source/map/ternary.rb +18 -0
  269. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/source/map/variable.rb +31 -0
  270. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/source/map.rb +186 -0
  271. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/source/range.rb +326 -0
  272. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/source/rewriter/action.rb +44 -0
  273. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/source/rewriter.rb +513 -0
  274. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/source/tree_rewriter/action.rb +243 -0
  275. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/source/tree_rewriter.rb +431 -0
  276. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/static_environment.rb +134 -0
  277. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/syntax_error.rb +21 -0
  278. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/tree_rewriter.rb +133 -0
  279. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/unknown_encoding_in_magic_comment_error.rb +15 -0
  280. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/variables_stack.rb +36 -0
  281. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser/version.rb +5 -0
  282. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/lib/parser.rb +91 -0
  283. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.2/parser.gemspec +43 -0
  284. data/vendor/bundle/ruby/3.3.0/gems/pp-0.6.2/BSDL +22 -0
  285. data/vendor/bundle/ruby/3.3.0/gems/pp-0.6.2/COPYING +56 -0
  286. data/vendor/bundle/ruby/3.3.0/gems/pp-0.6.2/lib/pp.rb +699 -0
  287. data/vendor/bundle/ruby/3.3.0/gems/pp-0.6.2/pp.gemspec +35 -0
  288. data/vendor/bundle/ruby/3.3.0/gems/prettyprint-0.2.0/.github/dependabot.yml +6 -0
  289. data/vendor/bundle/ruby/3.3.0/gems/prettyprint-0.2.0/.github/workflows/test.yml +41 -0
  290. data/vendor/bundle/ruby/3.3.0/gems/prettyprint-0.2.0/.gitignore +8 -0
  291. data/vendor/bundle/ruby/3.3.0/gems/prettyprint-0.2.0/Gemfile +4 -0
  292. data/vendor/bundle/ruby/3.3.0/gems/prettyprint-0.2.0/LICENSE.txt +22 -0
  293. data/vendor/bundle/ruby/3.3.0/gems/prettyprint-0.2.0/README.md +43 -0
  294. data/vendor/bundle/ruby/3.3.0/gems/prettyprint-0.2.0/Rakefile +10 -0
  295. data/vendor/bundle/ruby/3.3.0/gems/prettyprint-0.2.0/bin/console +14 -0
  296. data/vendor/bundle/ruby/3.3.0/gems/prettyprint-0.2.0/bin/setup +8 -0
  297. data/vendor/bundle/ruby/3.3.0/gems/prettyprint-0.2.0/lib/prettyprint.rb +558 -0
  298. data/vendor/bundle/ruby/3.3.0/gems/prettyprint-0.2.0/prettyprint.gemspec +29 -0
  299. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/CONTRIBUTING.rdoc +219 -0
  300. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/CVE-2013-0256.rdoc +49 -0
  301. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/ExampleMarkdown.md +39 -0
  302. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/ExampleRDoc.rdoc +210 -0
  303. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/History.rdoc +1668 -0
  304. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/LEGAL.rdoc +50 -0
  305. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/LICENSE.rdoc +59 -0
  306. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/README.rdoc +142 -0
  307. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/RI.md +842 -0
  308. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/TODO.rdoc +60 -0
  309. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/exe/rdoc +43 -0
  310. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/exe/ri +12 -0
  311. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/code_object/alias.rb +111 -0
  312. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/code_object/anon_class.rb +10 -0
  313. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/code_object/any_method.rb +379 -0
  314. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/code_object/attr.rb +175 -0
  315. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/code_object/class_module.rb +871 -0
  316. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/code_object/constant.rb +186 -0
  317. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/code_object/context/section.rb +175 -0
  318. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/code_object/context.rb +1264 -0
  319. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/code_object/extend.rb +9 -0
  320. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/code_object/ghost_method.rb +6 -0
  321. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/code_object/include.rb +9 -0
  322. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/code_object/meta_method.rb +6 -0
  323. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/code_object/method_attr.rb +430 -0
  324. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/code_object/mixin.rb +120 -0
  325. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/code_object/normal_class.rb +92 -0
  326. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/code_object/normal_module.rb +73 -0
  327. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/code_object/require.rb +51 -0
  328. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/code_object/single_class.rb +30 -0
  329. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/code_object/top_level.rb +291 -0
  330. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/code_object.rb +426 -0
  331. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/code_objects.rb +5 -0
  332. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/comment.rb +239 -0
  333. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/cross_reference.rb +228 -0
  334. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/encoding.rb +120 -0
  335. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/erb_partial.rb +18 -0
  336. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/erbio.rb +37 -0
  337. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/darkfish.rb +824 -0
  338. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/json_index.rb +300 -0
  339. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/markup.rb +159 -0
  340. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/pot/message_extractor.rb +68 -0
  341. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/pot/po.rb +84 -0
  342. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/pot/po_entry.rb +141 -0
  343. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/pot.rb +99 -0
  344. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/ri.rb +30 -0
  345. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/_footer.rhtml +5 -0
  346. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/_head.rhtml +43 -0
  347. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/_sidebar_VCS_info.rhtml +19 -0
  348. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/_sidebar_classes.rhtml +34 -0
  349. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/_sidebar_extends.rhtml +15 -0
  350. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/_sidebar_in_files.rhtml +9 -0
  351. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/_sidebar_includes.rhtml +15 -0
  352. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/_sidebar_installed.rhtml +15 -0
  353. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/_sidebar_methods.rhtml +21 -0
  354. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/_sidebar_navigation.rhtml +11 -0
  355. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/_sidebar_pages.rhtml +32 -0
  356. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/_sidebar_parent.rhtml +6 -0
  357. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/_sidebar_search.rhtml +14 -0
  358. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/_sidebar_sections.rhtml +11 -0
  359. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/_sidebar_table_of_contents.rhtml +39 -0
  360. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/_sidebar_toggle.rhtml +3 -0
  361. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/class.rhtml +206 -0
  362. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/css/fonts.css +167 -0
  363. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/css/rdoc.css +668 -0
  364. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/fonts/Lato-Light.ttf +0 -0
  365. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/fonts/Lato-LightItalic.ttf +0 -0
  366. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/fonts/Lato-Regular.ttf +0 -0
  367. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/fonts/Lato-RegularItalic.ttf +0 -0
  368. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/fonts/SourceCodePro-Bold.ttf +0 -0
  369. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/fonts/SourceCodePro-Regular.ttf +0 -0
  370. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/images/add.png +0 -0
  371. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/images/arrow_up.png +0 -0
  372. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/images/brick.png +0 -0
  373. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/images/brick_link.png +0 -0
  374. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/images/bug.png +0 -0
  375. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/images/bullet_black.png +0 -0
  376. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/images/bullet_toggle_minus.png +0 -0
  377. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/images/bullet_toggle_plus.png +0 -0
  378. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/images/date.png +0 -0
  379. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/images/delete.png +0 -0
  380. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/images/find.png +0 -0
  381. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/images/loadingAnimation.gif +0 -0
  382. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/images/macFFBgHack.png +0 -0
  383. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/images/package.png +0 -0
  384. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/images/page_green.png +0 -0
  385. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/images/page_white_text.png +0 -0
  386. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/images/page_white_width.png +0 -0
  387. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/images/plugin.png +0 -0
  388. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/images/ruby.png +0 -0
  389. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/images/tag_blue.png +0 -0
  390. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/images/tag_green.png +0 -0
  391. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/images/transparent.png +0 -0
  392. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/images/wrench.png +0 -0
  393. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/images/wrench_orange.png +0 -0
  394. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/images/zoom.png +0 -0
  395. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/index.rhtml +23 -0
  396. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/js/darkfish.js +120 -0
  397. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/js/search.js +110 -0
  398. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/page.rhtml +18 -0
  399. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/servlet_not_found.rhtml +20 -0
  400. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/servlet_root.rhtml +65 -0
  401. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/darkfish/table_of_contents.rhtml +70 -0
  402. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/json_index/js/navigation.js +105 -0
  403. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator/template/json_index/js/searcher.js +229 -0
  404. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/generator.rb +51 -0
  405. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/i18n/locale.rb +102 -0
  406. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/i18n/text.rb +126 -0
  407. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/i18n.rb +10 -0
  408. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/known_classes.rb +74 -0
  409. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/markdown/entities.rb +2131 -0
  410. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/markdown/literals.kpeg +21 -0
  411. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/markdown/literals.rb +454 -0
  412. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/markdown.kpeg +1244 -0
  413. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/markdown.rb +16793 -0
  414. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/markup/attr_changer.rb +22 -0
  415. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/markup/attr_span.rb +35 -0
  416. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/markup/attribute_manager.rb +405 -0
  417. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/markup/attributes.rb +70 -0
  418. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/markup/blank_line.rb +27 -0
  419. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/markup/block_quote.rb +14 -0
  420. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/markup/document.rb +164 -0
  421. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/markup/formatter.rb +272 -0
  422. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/markup/hard_break.rb +31 -0
  423. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/markup/heading.rb +78 -0
  424. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/markup/include.rb +42 -0
  425. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/markup/indented_paragraph.rb +47 -0
  426. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/markup/list.rb +101 -0
  427. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/markup/list_item.rb +99 -0
  428. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/markup/paragraph.rb +28 -0
  429. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/markup/parser.rb +585 -0
  430. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/markup/pre_process.rb +318 -0
  431. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/markup/raw.rb +69 -0
  432. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/markup/regexp_handling.rb +40 -0
  433. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/markup/rule.rb +20 -0
  434. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/markup/table.rb +56 -0
  435. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/markup/to_ansi.rb +93 -0
  436. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/markup/to_bs.rb +102 -0
  437. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/markup/to_html.rb +452 -0
  438. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/markup/to_html_crossref.rb +226 -0
  439. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/markup/to_html_snippet.rb +287 -0
  440. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/markup/to_joined_paragraph.rb +46 -0
  441. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/markup/to_label.rb +74 -0
  442. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/markup/to_markdown.rb +191 -0
  443. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/markup/to_rdoc.rb +352 -0
  444. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/markup/to_table_of_contents.rb +88 -0
  445. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/markup/to_test.rb +69 -0
  446. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/markup/to_tt_only.rb +120 -0
  447. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/markup/verbatim.rb +83 -0
  448. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/markup.rb +240 -0
  449. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/options.rb +1397 -0
  450. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/parser/c.rb +1260 -0
  451. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/parser/changelog.rb +350 -0
  452. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/parser/markdown.rb +22 -0
  453. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/parser/prism_ruby.rb +1099 -0
  454. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/parser/rd.rb +22 -0
  455. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/parser/ripper_state_lex.rb +302 -0
  456. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/parser/ruby.rb +2381 -0
  457. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/parser/ruby_tools.rb +165 -0
  458. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/parser/simple.rb +61 -0
  459. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/parser/text.rb +11 -0
  460. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/parser.rb +297 -0
  461. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/rd/block_parser.rb +1706 -0
  462. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/rd/block_parser.ry +643 -0
  463. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/rd/inline.rb +71 -0
  464. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/rd/inline_parser.rb +1854 -0
  465. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/rd/inline_parser.ry +593 -0
  466. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/rd.rb +99 -0
  467. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/rdoc.rb +566 -0
  468. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/ri/driver.rb +1558 -0
  469. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/ri/formatter.rb +6 -0
  470. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/ri/paths.rb +171 -0
  471. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/ri/store.rb +6 -0
  472. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/ri/task.rb +71 -0
  473. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/ri.rb +20 -0
  474. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/rubygems_hook.rb +330 -0
  475. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/servlet.rb +451 -0
  476. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/stats/normal.rb +58 -0
  477. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/stats/quiet.rb +59 -0
  478. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/stats/verbose.rb +44 -0
  479. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/stats.rb +461 -0
  480. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/store.rb +1001 -0
  481. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/task.rb +354 -0
  482. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/text.rb +322 -0
  483. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/token_stream.rb +118 -0
  484. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/tom_doc.rb +257 -0
  485. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc/version.rb +10 -0
  486. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rdoc.rb +211 -0
  487. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/lib/rubygems_plugin.rb +23 -0
  488. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.12.0/man/ri.1 +247 -0
  489. data/vendor/bundle/ruby/3.3.0/gems/reline-0.6.0/BSDL +22 -0
  490. data/vendor/bundle/ruby/3.3.0/gems/reline-0.6.0/COPYING +56 -0
  491. data/vendor/bundle/ruby/3.3.0/gems/reline-0.6.0/README.md +94 -0
  492. data/vendor/bundle/ruby/3.3.0/gems/reline-0.6.0/lib/reline/config.rb +373 -0
  493. data/vendor/bundle/ruby/3.3.0/gems/reline-0.6.0/lib/reline/face.rb +199 -0
  494. data/vendor/bundle/ruby/3.3.0/gems/reline-0.6.0/lib/reline/history.rb +76 -0
  495. data/vendor/bundle/ruby/3.3.0/gems/reline-0.6.0/lib/reline/io/ansi.rb +325 -0
  496. data/vendor/bundle/ruby/3.3.0/gems/reline-0.6.0/lib/reline/io/dumb.rb +120 -0
  497. data/vendor/bundle/ruby/3.3.0/gems/reline-0.6.0/lib/reline/io/windows.rb +530 -0
  498. data/vendor/bundle/ruby/3.3.0/gems/reline-0.6.0/lib/reline/io.rb +55 -0
  499. data/vendor/bundle/ruby/3.3.0/gems/reline-0.6.0/lib/reline/key_actor/base.rb +37 -0
  500. data/vendor/bundle/ruby/3.3.0/gems/reline-0.6.0/lib/reline/key_actor/composite.rb +17 -0
  501. data/vendor/bundle/ruby/3.3.0/gems/reline-0.6.0/lib/reline/key_actor/emacs.rb +517 -0
  502. data/vendor/bundle/ruby/3.3.0/gems/reline-0.6.0/lib/reline/key_actor/vi_command.rb +518 -0
  503. data/vendor/bundle/ruby/3.3.0/gems/reline-0.6.0/lib/reline/key_actor/vi_insert.rb +517 -0
  504. data/vendor/bundle/ruby/3.3.0/gems/reline-0.6.0/lib/reline/key_actor.rb +8 -0
  505. data/vendor/bundle/ruby/3.3.0/gems/reline-0.6.0/lib/reline/key_stroke.rb +119 -0
  506. data/vendor/bundle/ruby/3.3.0/gems/reline-0.6.0/lib/reline/kill_ring.rb +125 -0
  507. data/vendor/bundle/ruby/3.3.0/gems/reline-0.6.0/lib/reline/line_editor.rb +2382 -0
  508. data/vendor/bundle/ruby/3.3.0/gems/reline-0.6.0/lib/reline/unicode/east_asian_width.rb +1267 -0
  509. data/vendor/bundle/ruby/3.3.0/gems/reline-0.6.0/lib/reline/unicode.rb +415 -0
  510. data/vendor/bundle/ruby/3.3.0/gems/reline-0.6.0/lib/reline/version.rb +3 -0
  511. data/vendor/bundle/ruby/3.3.0/gems/reline-0.6.0/lib/reline.rb +519 -0
  512. data/vendor/bundle/ruby/3.3.0/gems/reline-0.6.0/license_of_rb-readline +25 -0
  513. data/vendor/bundle/ruby/3.3.0/plugins/rdoc_plugin.rb +1 -0
  514. data/vendor/bundle/ruby/3.3.0/specifications/ast-2.4.3.gemspec +29 -0
  515. data/vendor/bundle/ruby/3.3.0/specifications/debug-1.10.0.gemspec +32 -0
  516. data/vendor/bundle/ruby/3.3.0/specifications/io-console-0.8.0.gemspec +25 -0
  517. data/vendor/bundle/ruby/3.3.0/specifications/irb-1.15.1.gemspec +31 -0
  518. data/vendor/bundle/ruby/3.3.0/specifications/parser-3.3.7.2.gemspec +37 -0
  519. data/vendor/bundle/ruby/3.3.0/specifications/pp-0.6.2.gemspec +27 -0
  520. data/vendor/bundle/ruby/3.3.0/specifications/prettyprint-0.2.0.gemspec +23 -0
  521. data/vendor/bundle/ruby/3.3.0/specifications/rdoc-6.12.0.gemspec +31 -0
  522. data/vendor/bundle/ruby/3.3.0/specifications/reline-0.6.0.gemspec +26 -0
  523. metadata +499 -3
@@ -0,0 +1,1397 @@
1
+ # frozen_string_literal: true
2
+ require 'optparse'
3
+ require 'pathname'
4
+
5
+ ##
6
+ # RDoc::Options handles the parsing and storage of options
7
+ #
8
+ # == Saved Options
9
+ #
10
+ # You can save some options like the markup format in the
11
+ # <tt>.rdoc_options</tt> file in your gem. The easiest way to do this is:
12
+ #
13
+ # rdoc --markup tomdoc --write-options
14
+ #
15
+ # Which will automatically create the file and fill it with the options you
16
+ # specified.
17
+ #
18
+ # The following options will not be saved since they interfere with the user's
19
+ # preferences or with the normal operation of RDoc:
20
+ #
21
+ # * +--coverage-report+
22
+ # * +--dry-run+
23
+ # * +--encoding+
24
+ # * +--force-update+
25
+ # * +--format+
26
+ # * +--pipe+
27
+ # * +--quiet+
28
+ # * +--template+
29
+ # * +--verbose+
30
+ #
31
+ # == Custom Options
32
+ #
33
+ # Generators can hook into RDoc::Options to add generator-specific command
34
+ # line options.
35
+ #
36
+ # When <tt>--format</tt> is encountered in ARGV, RDoc calls ::setup_options on
37
+ # the generator class to add extra options to the option parser. Options for
38
+ # custom generators must occur after <tt>--format</tt>. <tt>rdoc --help</tt>
39
+ # will list options for all installed generators.
40
+ #
41
+ # Example:
42
+ #
43
+ # class RDoc::Generator::Spellcheck
44
+ # RDoc::RDoc.add_generator self
45
+ #
46
+ # def self.setup_options rdoc_options
47
+ # op = rdoc_options.option_parser
48
+ #
49
+ # op.on('--spell-dictionary DICTIONARY',
50
+ # RDoc::Options::Path) do |dictionary|
51
+ # rdoc_options.spell_dictionary = dictionary
52
+ # end
53
+ # end
54
+ # end
55
+ #
56
+ # Of course, RDoc::Options does not respond to +spell_dictionary+ by default
57
+ # so you will need to add it:
58
+ #
59
+ # class RDoc::Options
60
+ #
61
+ # ##
62
+ # # The spell dictionary used by the spell-checking plugin.
63
+ #
64
+ # attr_accessor :spell_dictionary
65
+ #
66
+ # end
67
+ #
68
+ # == Option Validators
69
+ #
70
+ # OptionParser validators will validate and cast user input values. In
71
+ # addition to the validators that ship with OptionParser (String, Integer,
72
+ # Float, TrueClass, FalseClass, Array, Regexp, Date, Time, URI, etc.),
73
+ # RDoc::Options adds Path, PathArray and Template.
74
+
75
+ class RDoc::Options
76
+
77
+ ##
78
+ # The deprecated options.
79
+
80
+ DEPRECATED = {
81
+ '--accessor' => 'support discontinued',
82
+ '--diagram' => 'support discontinued',
83
+ '--help-output' => 'support discontinued',
84
+ '--image-format' => 'was an option for --diagram',
85
+ '--inline-source' => 'source code is now always inlined',
86
+ '--merge' => 'ri now always merges class information',
87
+ '--one-file' => 'support discontinued',
88
+ '--op-name' => 'support discontinued',
89
+ '--opname' => 'support discontinued',
90
+ '--promiscuous' => 'files always only document their content',
91
+ '--ri-system' => 'Ruby installers use other techniques',
92
+ }
93
+
94
+ ##
95
+ # RDoc options ignored (or handled specially) by --write-options
96
+
97
+ SPECIAL = %w[
98
+ coverage_report
99
+ dry_run
100
+ encoding
101
+ files
102
+ force_output
103
+ force_update
104
+ generator
105
+ generator_name
106
+ generator_options
107
+ generators
108
+ locale
109
+ op_dir
110
+ page_dir
111
+ option_parser
112
+ pipe
113
+ rdoc_include
114
+ root
115
+ static_path
116
+ stylesheet_url
117
+ template
118
+ template_dir
119
+ update_output_dir
120
+ verbosity
121
+ write_options
122
+ ]
123
+
124
+ ##
125
+ # Option validator for OptionParser that matches a directory that exists on
126
+ # the filesystem.
127
+
128
+ Directory = Object.new
129
+
130
+ ##
131
+ # Option validator for OptionParser that matches a file or directory that
132
+ # exists on the filesystem.
133
+
134
+ Path = Object.new
135
+
136
+ ##
137
+ # Option validator for OptionParser that matches a comma-separated list of
138
+ # files or directories that exist on the filesystem.
139
+
140
+ PathArray = Object.new
141
+
142
+ ##
143
+ # Option validator for OptionParser that matches a template directory for an
144
+ # installed generator that lives in
145
+ # <tt>"rdoc/generator/template/#{template_name}"</tt>
146
+
147
+ Template = Object.new
148
+
149
+ ##
150
+ # Character-set for HTML output. #encoding is preferred over #charset
151
+
152
+ attr_accessor :charset
153
+
154
+ ##
155
+ # If true, RDoc will not write any files.
156
+
157
+ attr_accessor :dry_run
158
+
159
+ ##
160
+ # The output encoding. All input files will be transcoded to this encoding.
161
+ #
162
+ # The default encoding is UTF-8. This is set via --encoding.
163
+
164
+ attr_accessor :encoding
165
+
166
+ ##
167
+ # Files matching this pattern will be excluded
168
+
169
+ attr_writer :exclude
170
+
171
+ ##
172
+ # The list of files to be processed
173
+
174
+ attr_accessor :files
175
+
176
+ ##
177
+ # Create the output even if the output directory does not look
178
+ # like an rdoc output directory
179
+
180
+ attr_accessor :force_output
181
+
182
+ ##
183
+ # Scan newer sources than the flag file if true.
184
+
185
+ attr_accessor :force_update
186
+
187
+ ##
188
+ # Formatter to mark up text with
189
+
190
+ attr_accessor :formatter
191
+
192
+ ##
193
+ # Description of the output generator (set with the <tt>--format</tt> option)
194
+
195
+ attr_accessor :generator
196
+
197
+ ##
198
+ # For #==
199
+
200
+ attr_reader :generator_name # :nodoc:
201
+
202
+ ##
203
+ # Loaded generator options. Used to prevent --help from loading the same
204
+ # options multiple times.
205
+
206
+ attr_accessor :generator_options
207
+
208
+ ##
209
+ # Old rdoc behavior: hyperlink all words that match a method name,
210
+ # even if not preceded by '#' or '::'
211
+
212
+ attr_accessor :hyperlink_all
213
+
214
+ ##
215
+ # Include line numbers in the source code
216
+
217
+ attr_accessor :line_numbers
218
+
219
+ ##
220
+ # The output locale.
221
+
222
+ attr_accessor :locale
223
+
224
+ ##
225
+ # The directory where locale data live.
226
+
227
+ attr_accessor :locale_dir
228
+
229
+ ##
230
+ # Name of the file, class or module to display in the initial index page (if
231
+ # not specified the first file we encounter is used)
232
+
233
+ attr_accessor :main_page
234
+
235
+ ##
236
+ # The markup format.
237
+ # One of: +rdoc+ (the default), +markdown+, +rd+, +tomdoc+.
238
+ # See {Markup Formats}[rdoc-ref:RDoc::Markup@Markup+Formats].
239
+ attr_accessor :markup
240
+
241
+ ##
242
+ # If true, only report on undocumented files
243
+
244
+ attr_accessor :coverage_report
245
+
246
+ ##
247
+ # The name of the output directory
248
+
249
+ attr_accessor :op_dir
250
+
251
+ ##
252
+ # The OptionParser for this instance
253
+
254
+ attr_accessor :option_parser
255
+
256
+ ##
257
+ # Output heading decorations?
258
+ attr_accessor :output_decoration
259
+
260
+ ##
261
+ # Directory where guides, FAQ, and other pages not associated with a class
262
+ # live. You may leave this unset if these are at the root of your project.
263
+
264
+ attr_accessor :page_dir
265
+
266
+ ##
267
+ # Is RDoc in pipe mode?
268
+
269
+ attr_accessor :pipe
270
+
271
+ ##
272
+ # Array of directories to search for files to satisfy an :include:
273
+
274
+ attr_accessor :rdoc_include
275
+
276
+ ##
277
+ # Root of the source documentation will be generated for. Set this when
278
+ # building documentation outside the source directory. Defaults to the
279
+ # current directory.
280
+
281
+ attr_accessor :root
282
+
283
+ ##
284
+ # Include the '#' at the front of hyperlinked instance method names
285
+
286
+ attr_accessor :show_hash
287
+
288
+ ##
289
+ # Directory to copy static files from
290
+
291
+ attr_accessor :static_path
292
+
293
+ ##
294
+ # The number of columns in a tab
295
+
296
+ attr_accessor :tab_width
297
+
298
+ ##
299
+ # Template to be used when generating output
300
+
301
+ attr_accessor :template
302
+
303
+ ##
304
+ # Directory the template lives in
305
+
306
+ attr_accessor :template_dir
307
+
308
+ ##
309
+ # Additional template stylesheets
310
+
311
+ attr_accessor :template_stylesheets
312
+
313
+ ##
314
+ # Documentation title
315
+
316
+ attr_accessor :title
317
+
318
+ ##
319
+ # Should RDoc update the timestamps in the output dir?
320
+
321
+ attr_accessor :update_output_dir
322
+
323
+ ##
324
+ # Verbosity, zero means quiet
325
+
326
+ attr_accessor :verbosity
327
+
328
+ ##
329
+ # Warn if rdoc-ref links can't be resolved
330
+ # Default is +false+
331
+
332
+ attr_accessor :warn_missing_rdoc_ref
333
+
334
+ ##
335
+ # URL of web cvs frontend
336
+
337
+ attr_accessor :webcvs
338
+
339
+ ##
340
+ # Minimum visibility of a documented method. One of +:public+, +:protected+,
341
+ # +:private+ or +:nodoc+.
342
+ #
343
+ # The +:nodoc+ visibility ignores all directives related to visibility. The
344
+ # other visibilities may be overridden on a per-method basis with the :doc:
345
+ # directive.
346
+
347
+ attr_reader :visibility
348
+
349
+ ##
350
+ # Indicates if files of test suites should be skipped
351
+ attr_accessor :skip_tests
352
+
353
+ ##
354
+ # Embed mixin methods, attributes, and constants into class documentation. Set via
355
+ # +--[no-]embed-mixins+ (Default is +false+.)
356
+ attr_accessor :embed_mixins
357
+
358
+ ##
359
+ # Exclude the default patterns as well if true.
360
+ attr_reader :apply_default_exclude
361
+
362
+ ##
363
+ # Words to be ignored in autolink cross-references
364
+ attr_accessor :autolink_excluded_words
365
+
366
+ def initialize loaded_options = nil # :nodoc:
367
+ init_ivars
368
+ override loaded_options if loaded_options
369
+ end
370
+
371
+ DEFAULT_EXCLUDE = %w[
372
+ ~\z \.orig\z \.rej\z \.bak\z
373
+ \.gemspec\z
374
+ ]
375
+
376
+ def init_ivars # :nodoc:
377
+ @autolink_excluded_words = []
378
+ @dry_run = false
379
+ @embed_mixins = false
380
+ @exclude = []
381
+ @files = nil
382
+ @force_output = false
383
+ @force_update = true
384
+ @generator = nil
385
+ @generator_name = nil
386
+ @generator_options = []
387
+ @generators = RDoc::RDoc::GENERATORS
388
+ @hyperlink_all = false
389
+ @line_numbers = false
390
+ @locale = nil
391
+ @locale_name = nil
392
+ @locale_dir = 'locale'
393
+ @main_page = nil
394
+ @markup = 'rdoc'
395
+ @coverage_report = false
396
+ @op_dir = nil
397
+ @page_dir = nil
398
+ @pipe = false
399
+ @output_decoration = true
400
+ @rdoc_include = []
401
+ @root = Pathname(Dir.pwd)
402
+ @show_hash = false
403
+ @static_path = []
404
+ @stylesheet_url = nil # TODO remove in RDoc 4
405
+ @tab_width = 8
406
+ @template = nil
407
+ @template_dir = nil
408
+ @template_stylesheets = []
409
+ @title = nil
410
+ @update_output_dir = true
411
+ @verbosity = 1
412
+ @visibility = :protected
413
+ @warn_missing_rdoc_ref = true
414
+ @webcvs = nil
415
+ @write_options = false
416
+ @encoding = Encoding::UTF_8
417
+ @charset = @encoding.name
418
+ @skip_tests = true
419
+ @apply_default_exclude = true
420
+ end
421
+
422
+ def init_with map # :nodoc:
423
+ init_ivars
424
+
425
+ encoding = map['encoding']
426
+ @encoding = encoding ? Encoding.find(encoding) : encoding
427
+
428
+ @charset = map['charset']
429
+ @embed_mixins = map['embed_mixins']
430
+ @exclude = map['exclude']
431
+ @generator_name = map['generator_name']
432
+ @hyperlink_all = map['hyperlink_all']
433
+ @line_numbers = map['line_numbers']
434
+ @locale_name = map['locale_name']
435
+ @locale_dir = map['locale_dir']
436
+ @main_page = map['main_page']
437
+ @markup = map['markup']
438
+ @op_dir = map['op_dir']
439
+ @show_hash = map['show_hash']
440
+ @tab_width = map['tab_width']
441
+ @template_dir = map['template_dir']
442
+ @title = map['title']
443
+ @visibility = map['visibility']
444
+ @webcvs = map['webcvs']
445
+
446
+ @apply_default_exclude = map['apply_default_exclude']
447
+ @autolink_excluded_words = map['autolink_excluded_words']
448
+
449
+ @rdoc_include = sanitize_path map['rdoc_include']
450
+ @static_path = sanitize_path map['static_path']
451
+ end
452
+
453
+ def yaml_initialize tag, map # :nodoc:
454
+ init_with map
455
+ end
456
+
457
+ def override map # :nodoc:
458
+ if map.has_key?('encoding')
459
+ encoding = map['encoding']
460
+ @encoding = encoding ? Encoding.find(encoding) : encoding
461
+ end
462
+
463
+ @charset = map['charset'] if map.has_key?('charset')
464
+ @embed_mixins = map['embed_mixins'] if map.has_key?('embed_mixins')
465
+ @exclude = map['exclude'] if map.has_key?('exclude')
466
+ @generator_name = map['generator_name'] if map.has_key?('generator_name')
467
+ @hyperlink_all = map['hyperlink_all'] if map.has_key?('hyperlink_all')
468
+ @line_numbers = map['line_numbers'] if map.has_key?('line_numbers')
469
+ @locale_name = map['locale_name'] if map.has_key?('locale_name')
470
+ @locale_dir = map['locale_dir'] if map.has_key?('locale_dir')
471
+ @main_page = map['main_page'] if map.has_key?('main_page')
472
+ @markup = map['markup'] if map.has_key?('markup')
473
+ @op_dir = map['op_dir'] if map.has_key?('op_dir')
474
+ @page_dir = map['page_dir'] if map.has_key?('page_dir')
475
+ @show_hash = map['show_hash'] if map.has_key?('show_hash')
476
+ @tab_width = map['tab_width'] if map.has_key?('tab_width')
477
+ @template_dir = map['template_dir'] if map.has_key?('template_dir')
478
+ @title = map['title'] if map.has_key?('title')
479
+ @visibility = map['visibility'] if map.has_key?('visibility')
480
+ @webcvs = map['webcvs'] if map.has_key?('webcvs')
481
+ @autolink_excluded_words = map['autolink_excluded_words'] if map.has_key?('autolink_excluded_words')
482
+ @apply_default_exclude = map['apply_default_exclude'] if map.has_key?('apply_default_exclude')
483
+
484
+ @warn_missing_rdoc_ref = map['warn_missing_rdoc_ref'] if map.has_key?('warn_missing_rdoc_ref')
485
+
486
+ if map.has_key?('rdoc_include')
487
+ @rdoc_include = sanitize_path map['rdoc_include']
488
+ end
489
+ if map.has_key?('static_path')
490
+ @static_path = sanitize_path map['static_path']
491
+ end
492
+ end
493
+
494
+ def == other # :nodoc:
495
+ self.class === other and
496
+ @encoding == other.encoding and
497
+ @embed_mixins == other.embed_mixins and
498
+ @generator_name == other.generator_name and
499
+ @hyperlink_all == other.hyperlink_all and
500
+ @line_numbers == other.line_numbers and
501
+ @locale == other.locale and
502
+ @locale_dir == other.locale_dir and
503
+ @main_page == other.main_page and
504
+ @markup == other.markup and
505
+ @op_dir == other.op_dir and
506
+ @rdoc_include == other.rdoc_include and
507
+ @show_hash == other.show_hash and
508
+ @static_path == other.static_path and
509
+ @tab_width == other.tab_width and
510
+ @template == other.template and
511
+ @title == other.title and
512
+ @visibility == other.visibility and
513
+ @webcvs == other.webcvs and
514
+ @apply_default_exclude == other.apply_default_exclude and
515
+ @autolink_excluded_words == other.autolink_excluded_words
516
+ end
517
+
518
+ ##
519
+ # Check that the files on the command line exist
520
+
521
+ def check_files
522
+ @files.delete_if do |file|
523
+ if File.exist? file then
524
+ if File.readable? file then
525
+ false
526
+ else
527
+ warn "file '#{file}' not readable"
528
+
529
+ true
530
+ end
531
+ else
532
+ warn "file '#{file}' not found"
533
+
534
+ true
535
+ end
536
+ end
537
+ end
538
+
539
+ ##
540
+ # Ensure only one generator is loaded
541
+
542
+ def check_generator
543
+ if @generator then
544
+ raise OptionParser::InvalidOption,
545
+ "generator already set to #{@generator_name}"
546
+ end
547
+ end
548
+
549
+ ##
550
+ # Set the title, but only if not already set. Used to set the title
551
+ # from a source file, so that a title set from the command line
552
+ # will have the priority.
553
+
554
+ def default_title=(string)
555
+ @title ||= string
556
+ end
557
+
558
+ ##
559
+ # For dumping YAML
560
+
561
+ def to_yaml(*options) # :nodoc:
562
+ encoding = @encoding ? @encoding.name : nil
563
+
564
+ yaml = {}
565
+ yaml['encoding'] = encoding
566
+ yaml['static_path'] = sanitize_path(@static_path)
567
+ yaml['rdoc_include'] = sanitize_path(@rdoc_include)
568
+ yaml['page_dir'] = (sanitize_path([@page_dir]).first if @page_dir)
569
+
570
+ ivars = instance_variables.map { |ivar| ivar.to_s[1..-1] }
571
+ ivars -= SPECIAL
572
+
573
+ ivars.sort.each do |ivar|
574
+ yaml[ivar] = instance_variable_get("@#{ivar}")
575
+ end
576
+ yaml.to_yaml
577
+ end
578
+
579
+ ##
580
+ # Create a regexp for #exclude
581
+
582
+ def exclude
583
+ if @exclude.nil? or Regexp === @exclude then
584
+ # done, #finish is being re-run
585
+ @exclude
586
+ elsif !@apply_default_exclude and @exclude.empty? then
587
+ nil
588
+ else
589
+ exclude = @exclude
590
+ exclude |= DEFAULT_EXCLUDE if @apply_default_exclude
591
+ Regexp.new(exclude.join("|"))
592
+ end
593
+ end
594
+
595
+ ##
596
+ # Completes any unfinished option setup business such as filtering for
597
+ # existent files, creating a regexp for #exclude and setting a default
598
+ # #template.
599
+
600
+ def finish
601
+ if @write_options then
602
+ write_options
603
+ exit
604
+ end
605
+
606
+ @op_dir ||= 'doc'
607
+
608
+ root = @root.to_s
609
+ if @rdoc_include.empty? || !@rdoc_include.include?(root)
610
+ @rdoc_include << root
611
+ end
612
+
613
+ @exclude = self.exclude
614
+
615
+ finish_page_dir
616
+
617
+ check_files
618
+
619
+ # If no template was specified, use the default template for the output
620
+ # formatter
621
+
622
+ unless @template then
623
+ @template = @generator_name
624
+ @template_dir = template_dir_for @template
625
+ end
626
+
627
+ if @locale_name
628
+ @locale = RDoc::I18n::Locale[@locale_name]
629
+ @locale.load(@locale_dir)
630
+ else
631
+ @locale = nil
632
+ end
633
+
634
+ self
635
+ end
636
+
637
+ ##
638
+ # Fixes the page_dir to be relative to the root_dir and adds the page_dir to
639
+ # the files list.
640
+
641
+ def finish_page_dir
642
+ return unless @page_dir
643
+
644
+ @files << @page_dir
645
+
646
+ page_dir = Pathname(@page_dir)
647
+ begin
648
+ page_dir = page_dir.expand_path.relative_path_from @root
649
+ rescue ArgumentError
650
+ # On Windows, sometimes crosses different drive letters.
651
+ page_dir = page_dir.expand_path
652
+ end
653
+
654
+ @page_dir = page_dir
655
+ end
656
+
657
+ ##
658
+ # Returns a properly-space list of generators and their descriptions.
659
+
660
+ def generator_descriptions
661
+ lengths = []
662
+
663
+ generators = RDoc::RDoc::GENERATORS.map do |name, generator|
664
+ lengths << name.length
665
+
666
+ description = generator::DESCRIPTION if
667
+ generator.const_defined? :DESCRIPTION
668
+
669
+ [name, description]
670
+ end
671
+
672
+ longest = lengths.max
673
+
674
+ generators.sort.map do |name, description|
675
+ if description then
676
+ " %-*s - %s" % [longest, name, description]
677
+ else
678
+ " #{name}"
679
+ end
680
+ end.join "\n"
681
+ end
682
+
683
+ ##
684
+ # Parses command line options.
685
+
686
+ def parse argv
687
+ ignore_invalid = true
688
+
689
+ argv.insert(0, *ENV['RDOCOPT'].split) if ENV['RDOCOPT']
690
+
691
+ opts = OptionParser.new do |opt|
692
+ @option_parser = opt
693
+ opt.program_name = File.basename $0
694
+ opt.version = RDoc::VERSION
695
+ opt.release = nil
696
+ opt.summary_indent = ' ' * 4
697
+ opt.banner = <<-EOF
698
+ Usage: #{opt.program_name} [options] [names...]
699
+
700
+ Files are parsed, and the information they contain collected, before any
701
+ output is produced. This allows cross references between all files to be
702
+ resolved. If a name is a directory, it is traversed. If no names are
703
+ specified, all Ruby files in the current directory (and subdirectories) are
704
+ processed.
705
+
706
+ How RDoc generates output depends on the output formatter being used, and on
707
+ the options you give.
708
+
709
+ Options can be specified via the RDOCOPT environment variable, which
710
+ functions similar to the RUBYOPT environment variable for ruby.
711
+
712
+ $ export RDOCOPT="--show-hash"
713
+
714
+ will make rdoc show hashes in method links by default. Command-line options
715
+ always will override those in RDOCOPT.
716
+
717
+ Available formatters:
718
+
719
+ #{generator_descriptions}
720
+
721
+ RDoc understands the following file formats:
722
+
723
+ EOF
724
+
725
+ parsers = Hash.new { |h, parser| h[parser] = [] }
726
+
727
+ RDoc::Parser.parsers.each do |regexp, parser|
728
+ parsers[parser.name.sub('RDoc::Parser::', '')] << regexp.source
729
+ end
730
+
731
+ parsers.sort.each do |parser, regexp|
732
+ opt.banner += " - #{parser}: #{regexp.join ', '}\n"
733
+ end
734
+ opt.banner += " - TomDoc: Only in ruby files\n"
735
+
736
+ opt.banner += "\n The following options are deprecated:\n\n"
737
+
738
+ name_length = DEPRECATED.keys.sort_by { |k| k.length }.last.length
739
+
740
+ DEPRECATED.sort_by { |k,| k }.each do |name, reason|
741
+ opt.banner += " %*1$2$s %3$s\n" % [-name_length, name, reason]
742
+ end
743
+
744
+ opt.accept Template do |template|
745
+ template_dir = template_dir_for template
746
+
747
+ unless template_dir then
748
+ $stderr.puts "could not find template #{template}"
749
+ nil
750
+ else
751
+ [template, template_dir]
752
+ end
753
+ end
754
+
755
+ opt.accept Directory do |directory|
756
+ directory = File.expand_path directory
757
+
758
+ raise OptionParser::InvalidArgument unless File.directory? directory
759
+
760
+ directory
761
+ end
762
+
763
+ opt.accept Path do |path|
764
+ path = File.expand_path path
765
+
766
+ raise OptionParser::InvalidArgument unless File.exist? path
767
+
768
+ path
769
+ end
770
+
771
+ opt.accept PathArray do |paths,|
772
+ paths = if paths then
773
+ paths.split(',').map { |d| d unless d.empty? }
774
+ end
775
+
776
+ paths.map do |path|
777
+ path = File.expand_path path
778
+
779
+ raise OptionParser::InvalidArgument unless File.exist? path
780
+
781
+ path
782
+ end
783
+ end
784
+
785
+ opt.separator nil
786
+ opt.separator "Parsing options:"
787
+ opt.separator nil
788
+
789
+ opt.on("--encoding=ENCODING", "-e", Encoding.list.map { |e| e.name },
790
+ "Specifies the output encoding. All files",
791
+ "read will be converted to this encoding.",
792
+ "The default encoding is UTF-8.",
793
+ "--encoding is preferred over --charset") do |value|
794
+ @encoding = Encoding.find value
795
+ @charset = @encoding.name # may not be valid value
796
+ end
797
+
798
+ opt.separator nil
799
+
800
+ opt.on("--locale=NAME",
801
+ "Specifies the output locale.") do |value|
802
+ @locale_name = value
803
+ end
804
+
805
+ opt.on("--locale-data-dir=DIR",
806
+ "Specifies the directory where locale data live.") do |value|
807
+ @locale_dir = value
808
+ end
809
+
810
+ opt.separator nil
811
+
812
+ opt.on("--all", "-a",
813
+ "Synonym for --visibility=private.") do |value|
814
+ @visibility = :private
815
+ end
816
+
817
+ opt.separator nil
818
+
819
+ opt.on("--exclude=PATTERN", "-x", Regexp,
820
+ "Do not process files or directories",
821
+ "matching PATTERN.") do |value|
822
+ @exclude << value
823
+ end
824
+
825
+ opt.on("--[no-]apply-default-exclude",
826
+ "Use default PATTERN to exclude.") do |value|
827
+ @apply_default_exclude = value
828
+ end
829
+
830
+ opt.separator nil
831
+
832
+ opt.on("--no-skipping-tests", nil,
833
+ "Don't skip generating documentation for test and spec files") do |value|
834
+ @skip_tests = false
835
+ end
836
+
837
+ opt.separator nil
838
+
839
+ opt.on("--extension=NEW=OLD", "-E",
840
+ "Treat files ending with .new as if they",
841
+ "ended with .old. Using '-E cgi=rb' will",
842
+ "cause xxx.cgi to be parsed as a Ruby file.") do |value|
843
+ new, old = value.split(/=/, 2)
844
+
845
+ unless new and old then
846
+ raise OptionParser::InvalidArgument, "Invalid parameter to '-E'"
847
+ end
848
+
849
+ unless RDoc::Parser.alias_extension old, new then
850
+ raise OptionParser::InvalidArgument, "Unknown extension .#{old} to -E"
851
+ end
852
+ end
853
+
854
+ opt.separator nil
855
+
856
+ opt.on("--[no-]force-update", "-U",
857
+ "Forces rdoc to scan all sources even if",
858
+ "no files are newer than the flag file.") do |value|
859
+ @force_update = value
860
+ end
861
+
862
+ opt.separator nil
863
+
864
+ opt.on("--pipe", "-p",
865
+ "Convert RDoc on stdin to HTML") do
866
+ @pipe = true
867
+ end
868
+
869
+ opt.separator nil
870
+
871
+ opt.on("--tab-width=WIDTH", "-w", Integer,
872
+ "Set the width of tab characters.") do |value|
873
+ raise OptionParser::InvalidArgument,
874
+ "#{value} is an invalid tab width" if value <= 0
875
+ @tab_width = value
876
+ end
877
+
878
+ opt.separator nil
879
+
880
+ opt.on("--visibility=VISIBILITY", "-V", RDoc::VISIBILITIES + [:nodoc],
881
+ "Minimum visibility to document a method.",
882
+ "One of 'public', 'protected' (the default),",
883
+ "'private' or 'nodoc' (show everything)") do |value|
884
+ @visibility = value
885
+ end
886
+
887
+ opt.separator nil
888
+
889
+ opt.on("--[no-]embed-mixins",
890
+ "Embed mixin methods, attributes, and constants",
891
+ "into class documentation. (default false)") do |value|
892
+ @embed_mixins = value
893
+ end
894
+
895
+ opt.separator nil
896
+
897
+ markup_formats = RDoc::Text::MARKUP_FORMAT.keys.sort
898
+
899
+ opt.on("--markup=MARKUP", markup_formats,
900
+ "The markup format for the named files.",
901
+ "The default is rdoc. Valid values are:",
902
+ markup_formats.join(', ')) do |value|
903
+ @markup = value
904
+ end
905
+
906
+ opt.separator nil
907
+
908
+ opt.on("--root=ROOT", Directory,
909
+ "Root of the source tree documentation",
910
+ "will be generated for. Set this when",
911
+ "building documentation outside the",
912
+ "source directory. Default is the",
913
+ "current directory.") do |root|
914
+ @root = Pathname(root)
915
+ end
916
+
917
+ opt.separator nil
918
+
919
+ opt.on("--page-dir=DIR", Directory,
920
+ "Directory where guides, your FAQ or",
921
+ "other pages not associated with a class",
922
+ "live. Set this when you don't store",
923
+ "such files at your project root.",
924
+ "NOTE: Do not use the same file name in",
925
+ "the page dir and the root of your project") do |page_dir|
926
+ @page_dir = page_dir
927
+ end
928
+
929
+ opt.separator nil
930
+ opt.separator "Common generator options:"
931
+ opt.separator nil
932
+
933
+ opt.on("--force-output", "-O",
934
+ "Forces rdoc to write the output files,",
935
+ "even if the output directory exists",
936
+ "and does not seem to have been created",
937
+ "by rdoc.") do |value|
938
+ @force_output = value
939
+ end
940
+
941
+ opt.separator nil
942
+
943
+ generator_text = @generators.keys.map { |name| " #{name}" }.sort
944
+
945
+ opt.on("-f", "--fmt=FORMAT", "--format=FORMAT", @generators.keys,
946
+ "Set the output formatter. One of:", *generator_text) do |value|
947
+ check_generator
948
+
949
+ @generator_name = value.downcase
950
+ setup_generator
951
+ end
952
+
953
+ opt.separator nil
954
+
955
+ opt.on("--include=DIRECTORIES", "-i", PathArray,
956
+ "Set (or add to) the list of directories to",
957
+ "be searched when satisfying :include:",
958
+ "requests. Can be used more than once.") do |value|
959
+ @rdoc_include.concat value.map { |dir| dir.strip }
960
+ end
961
+
962
+ opt.separator nil
963
+
964
+ opt.on("--[no-]coverage-report=[LEVEL]", "--[no-]dcov", "-C", Integer,
965
+ "Prints a report on undocumented items.",
966
+ "Does not generate files.") do |value|
967
+ value = 0 if value.nil? # Integer converts -C to nil
968
+
969
+ @coverage_report = value
970
+ @force_update = true if value
971
+ end
972
+
973
+ opt.separator nil
974
+
975
+ opt.on("--output=DIR", "--op", "-o",
976
+ "Set the output directory.") do |value|
977
+ @op_dir = value
978
+ end
979
+
980
+ opt.separator nil
981
+
982
+ opt.on("-d",
983
+ "Deprecated --diagram option.",
984
+ "Prevents firing debug mode",
985
+ "with legacy invocation.") do |value|
986
+ end
987
+
988
+ opt.separator nil
989
+ opt.separator 'HTML generator options:'
990
+ opt.separator nil
991
+
992
+ opt.on("--charset=CHARSET", "-c",
993
+ "Specifies the output HTML character-set.",
994
+ "Use --encoding instead of --charset if",
995
+ "available.") do |value|
996
+ @charset = value
997
+ end
998
+
999
+ opt.separator nil
1000
+
1001
+ opt.on("--autolink-excluded-words=WORDS", Array,
1002
+ "Words to be ignored in autolink cross-references") do |value|
1003
+ @autolink_excluded_words.concat value
1004
+ end
1005
+
1006
+ opt.separator nil
1007
+
1008
+ opt.on("--hyperlink-all", "-A",
1009
+ "Generate hyperlinks for all words that",
1010
+ "correspond to known methods, even if they",
1011
+ "do not start with '#' or '::' (legacy",
1012
+ "behavior).") do |value|
1013
+ @hyperlink_all = value
1014
+ end
1015
+
1016
+ opt.separator nil
1017
+
1018
+ opt.on("--main=NAME", "-m",
1019
+ "NAME will be the initial page displayed.") do |value|
1020
+ @main_page = value
1021
+ end
1022
+
1023
+ opt.separator nil
1024
+
1025
+ opt.on("--[no-]line-numbers", "-N",
1026
+ "Include line numbers in the source code.",
1027
+ "By default, only the number of the first",
1028
+ "line is displayed, in a leading comment.") do |value|
1029
+ @line_numbers = value
1030
+ end
1031
+
1032
+ opt.separator nil
1033
+
1034
+ opt.on("--show-hash", "-H",
1035
+ "A name of the form #name in a comment is a",
1036
+ "possible hyperlink to an instance method",
1037
+ "name. When displayed, the '#' is removed",
1038
+ "unless this option is specified.") do |value|
1039
+ @show_hash = value
1040
+ end
1041
+
1042
+ opt.separator nil
1043
+
1044
+ opt.on("--template=NAME", "-T", Template,
1045
+ "Set the template used when generating",
1046
+ "output. The default depends on the",
1047
+ "formatter used.") do |(template, template_dir)|
1048
+ @template = template
1049
+ @template_dir = template_dir
1050
+ end
1051
+
1052
+ opt.separator nil
1053
+
1054
+ opt.on("--template-stylesheets=FILES", PathArray,
1055
+ "Set (or add to) the list of files to",
1056
+ "include with the html template.") do |value|
1057
+ @template_stylesheets.concat value
1058
+ end
1059
+
1060
+ opt.separator nil
1061
+
1062
+ opt.on("--title=TITLE", "-t",
1063
+ "Set TITLE as the title for HTML output.") do |value|
1064
+ @title = value
1065
+ end
1066
+
1067
+ opt.separator nil
1068
+
1069
+ opt.on("--copy-files=PATH", Path,
1070
+ "Specify a file or directory to copy static",
1071
+ "files from.",
1072
+ "If a file is given it will be copied into",
1073
+ "the output dir. If a directory is given the",
1074
+ "entire directory will be copied.",
1075
+ "You can use this multiple times") do |value|
1076
+ @static_path << value
1077
+ end
1078
+
1079
+ opt.separator nil
1080
+
1081
+ opt.on("--webcvs=URL", "-W",
1082
+ "Specify a URL for linking to a web frontend",
1083
+ "to CVS. If the URL contains a '\%s', the",
1084
+ "name of the current file will be",
1085
+ "substituted; if the URL doesn't contain a",
1086
+ "'\%s', the filename will be appended to it.") do |value|
1087
+ @webcvs = value
1088
+ end
1089
+
1090
+ opt.separator nil
1091
+ opt.separator "ri generator options:"
1092
+ opt.separator nil
1093
+
1094
+ opt.on("--ri", "-r",
1095
+ "Generate output for use by `ri`. The files",
1096
+ "are stored in the '.rdoc' directory under",
1097
+ "your home directory unless overridden by a",
1098
+ "subsequent --op parameter, so no special",
1099
+ "privileges are needed.") do |value|
1100
+ check_generator
1101
+
1102
+ @generator_name = "ri"
1103
+ @op_dir ||= RDoc::RI::Paths::HOMEDIR
1104
+ setup_generator
1105
+ end
1106
+
1107
+ opt.separator nil
1108
+
1109
+ opt.on("--ri-site", "-R",
1110
+ "Generate output for use by `ri`. The files",
1111
+ "are stored in a site-wide directory,",
1112
+ "making them accessible to others, so",
1113
+ "special privileges are needed.") do |value|
1114
+ check_generator
1115
+
1116
+ @generator_name = "ri"
1117
+ @op_dir = RDoc::RI::Paths.site_dir
1118
+ setup_generator
1119
+ end
1120
+
1121
+ opt.separator nil
1122
+ opt.separator "Generic options:"
1123
+ opt.separator nil
1124
+
1125
+ opt.on("--write-options",
1126
+ "Write .rdoc_options to the current",
1127
+ "directory with the given options. Not all",
1128
+ "options will be used. See RDoc::Options",
1129
+ "for details.") do |value|
1130
+ @write_options = true
1131
+ end
1132
+
1133
+ opt.separator nil
1134
+
1135
+ opt.on("--[no-]dry-run",
1136
+ "Don't write any files") do |value|
1137
+ @dry_run = value
1138
+ end
1139
+
1140
+ opt.separator nil
1141
+
1142
+ opt.on("-D", "--[no-]debug",
1143
+ "Displays lots on internal stuff.") do |value|
1144
+ $DEBUG_RDOC = value
1145
+ end
1146
+
1147
+ opt.separator nil
1148
+
1149
+ opt.on("--warn-missing-rdoc-ref",
1150
+ "Warn if rdoc-ref links can't be resolved") do |value|
1151
+ @warn_missing_rdoc_ref = value
1152
+ end
1153
+
1154
+ opt.separator nil
1155
+
1156
+ opt.on("--[no-]ignore-invalid",
1157
+ "Ignore invalid options and continue",
1158
+ "(default true).") do |value|
1159
+ ignore_invalid = value
1160
+ end
1161
+
1162
+ opt.separator nil
1163
+
1164
+ opt.on("--quiet", "-q",
1165
+ "Don't show progress as we parse.") do |value|
1166
+ @verbosity = 0
1167
+ end
1168
+
1169
+ opt.separator nil
1170
+
1171
+ opt.on("--verbose", "-V",
1172
+ "Display extra progress as RDoc parses") do |value|
1173
+ @verbosity = 2
1174
+ end
1175
+
1176
+ opt.separator nil
1177
+
1178
+ opt.on("--version", "-v", "print the version") do
1179
+ puts opt.version
1180
+ exit
1181
+ end
1182
+
1183
+ opt.separator nil
1184
+
1185
+ opt.on("--help", "-h", "Display this help") do
1186
+ RDoc::RDoc::GENERATORS.each_key do |generator|
1187
+ setup_generator generator
1188
+ end
1189
+
1190
+ puts opt.help
1191
+ exit
1192
+ end
1193
+
1194
+ opt.separator nil
1195
+ end
1196
+
1197
+ setup_generator 'darkfish' if
1198
+ argv.grep(/\A(-f|--fmt|--format|-r|-R|--ri|--ri-site)\b/).empty?
1199
+
1200
+ deprecated = []
1201
+ invalid = []
1202
+
1203
+ begin
1204
+ opts.parse! argv
1205
+ rescue OptionParser::ParseError => e
1206
+ if DEPRECATED[e.args.first] then
1207
+ deprecated << e.args.first
1208
+ elsif %w[--format --ri -r --ri-site -R].include? e.args.first then
1209
+ raise
1210
+ else
1211
+ invalid << e.args.join(' ')
1212
+ end
1213
+
1214
+ retry
1215
+ end
1216
+
1217
+ unless @generator then
1218
+ @generator = RDoc::Generator::Darkfish
1219
+ @generator_name = 'darkfish'
1220
+ end
1221
+
1222
+ if @pipe and not argv.empty? then
1223
+ @pipe = false
1224
+ invalid << '-p (with files)'
1225
+ end
1226
+
1227
+ unless quiet then
1228
+ deprecated.each do |opt|
1229
+ $stderr.puts 'option ' + opt + ' is deprecated: ' + DEPRECATED[opt]
1230
+ end
1231
+ end
1232
+
1233
+ unless invalid.empty? then
1234
+ invalid = "invalid options: #{invalid.join ', '}"
1235
+
1236
+ if ignore_invalid then
1237
+ unless quiet then
1238
+ $stderr.puts invalid
1239
+ $stderr.puts '(invalid options are ignored)'
1240
+ end
1241
+ else
1242
+ unless quiet then
1243
+ $stderr.puts opts
1244
+ end
1245
+ $stderr.puts invalid
1246
+ exit 1
1247
+ end
1248
+ end
1249
+
1250
+ @files = argv.dup
1251
+
1252
+ self
1253
+ end
1254
+
1255
+ ##
1256
+ # Don't display progress as we process the files
1257
+
1258
+ def quiet
1259
+ @verbosity.zero?
1260
+ end
1261
+
1262
+ ##
1263
+ # Set quietness to +bool+
1264
+
1265
+ def quiet= bool
1266
+ @verbosity = bool ? 0 : 1
1267
+ end
1268
+
1269
+ ##
1270
+ # Removes directories from +path+ that are outside the current directory
1271
+
1272
+ def sanitize_path path
1273
+ require 'pathname'
1274
+ dot = Pathname.new('.').expand_path
1275
+
1276
+ path.reject do |item|
1277
+ path = Pathname.new(item).expand_path
1278
+ is_reject = nil
1279
+ relative = nil
1280
+ begin
1281
+ relative = path.relative_path_from(dot).to_s
1282
+ rescue ArgumentError
1283
+ # On Windows, sometimes crosses different drive letters.
1284
+ is_reject = true
1285
+ else
1286
+ is_reject = relative.start_with? '..'
1287
+ end
1288
+ is_reject
1289
+ end
1290
+ end
1291
+
1292
+ ##
1293
+ # Set up an output generator for the named +generator_name+.
1294
+ #
1295
+ # If the found generator responds to :setup_options it will be called with
1296
+ # the options instance. This allows generators to add custom options or set
1297
+ # default options.
1298
+
1299
+ def setup_generator generator_name = @generator_name
1300
+ @generator = @generators[generator_name]
1301
+
1302
+ unless @generator then
1303
+ raise OptionParser::InvalidArgument,
1304
+ "Invalid output formatter #{generator_name}"
1305
+ end
1306
+
1307
+ return if @generator_options.include? @generator
1308
+
1309
+ @generator_name = generator_name
1310
+ @generator_options << @generator
1311
+
1312
+ if @generator.respond_to? :setup_options then
1313
+ @option_parser ||= OptionParser.new
1314
+ @generator.setup_options self
1315
+ end
1316
+ end
1317
+
1318
+ ##
1319
+ # Finds the template dir for +template+
1320
+
1321
+ def template_dir_for template
1322
+ template_path = File.join 'rdoc', 'generator', 'template', template
1323
+
1324
+ $LOAD_PATH.map do |path|
1325
+ File.join File.expand_path(path), template_path
1326
+ end.find do |dir|
1327
+ File.directory? dir
1328
+ end
1329
+ end
1330
+
1331
+ # Sets the minimum visibility of a documented method.
1332
+ #
1333
+ # Accepts +:public+, +:protected+, +:private+, +:nodoc+, or +:all+.
1334
+ #
1335
+ # When +:all+ is passed, visibility is set to +:private+, similarly to
1336
+ # RDOCOPT="--all", see #visibility for more information.
1337
+
1338
+ def visibility= visibility
1339
+ case visibility
1340
+ when :all
1341
+ @visibility = :private
1342
+ else
1343
+ @visibility = visibility
1344
+ end
1345
+ end
1346
+
1347
+ ##
1348
+ # Displays a warning using Kernel#warn if we're being verbose
1349
+
1350
+ def warn message
1351
+ super message if @verbosity > 1
1352
+ end
1353
+
1354
+ ##
1355
+ # Writes the YAML file .rdoc_options to the current directory containing the
1356
+ # parsed options.
1357
+
1358
+ def write_options
1359
+ RDoc.load_yaml
1360
+
1361
+ File.open '.rdoc_options', 'w' do |io|
1362
+ io.set_encoding Encoding::UTF_8
1363
+
1364
+ io.print to_yaml
1365
+ end
1366
+ end
1367
+
1368
+ ##
1369
+ # Loads options from .rdoc_options if the file exists, otherwise creates a
1370
+ # new RDoc::Options instance.
1371
+
1372
+ def self.load_options
1373
+ options_file = File.expand_path '.rdoc_options'
1374
+ return RDoc::Options.new unless File.exist? options_file
1375
+
1376
+ RDoc.load_yaml
1377
+
1378
+ begin
1379
+ options = YAML.safe_load File.read('.rdoc_options'), permitted_classes: [RDoc::Options, Symbol]
1380
+ rescue Psych::SyntaxError
1381
+ raise RDoc::Error, "#{options_file} is not a valid rdoc options file"
1382
+ end
1383
+
1384
+ return RDoc::Options.new unless options # Allow empty file.
1385
+
1386
+ raise RDoc::Error, "#{options_file} is not a valid rdoc options file" unless
1387
+ RDoc::Options === options or Hash === options
1388
+
1389
+ if Hash === options
1390
+ # Override the default values with the contents of YAML file.
1391
+ options = RDoc::Options.new options
1392
+ end
1393
+
1394
+ options
1395
+ end
1396
+
1397
+ end