hyper-pro-gem 0.0.1

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 (380) hide show
  1. checksums.yaml +7 -0
  2. data/hyper-pro-gem.gemspec +12 -0
  3. data/yard-0.9.44/CHANGELOG.md +983 -0
  4. data/yard-0.9.44/LEGAL +94 -0
  5. data/yard-0.9.44/LICENSE +22 -0
  6. data/yard-0.9.44/README.md +329 -0
  7. data/yard-0.9.44/bin/yard +13 -0
  8. data/yard-0.9.44/bin/yardoc +13 -0
  9. data/yard-0.9.44/bin/yri +13 -0
  10. data/yard-0.9.44/docs/CodeObjects.md +115 -0
  11. data/yard-0.9.44/docs/GettingStarted.md +705 -0
  12. data/yard-0.9.44/docs/Handlers.md +152 -0
  13. data/yard-0.9.44/docs/Overview.md +61 -0
  14. data/yard-0.9.44/docs/Parser.md +166 -0
  15. data/yard-0.9.44/docs/Tags.md +304 -0
  16. data/yard-0.9.44/docs/TagsArch.md +123 -0
  17. data/yard-0.9.44/docs/Templates.md +497 -0
  18. data/yard-0.9.44/docs/WhatsNew.md +1297 -0
  19. data/yard-0.9.44/docs/images/code-objects-class-diagram.png +0 -0
  20. data/yard-0.9.44/docs/images/handlers-class-diagram.png +0 -0
  21. data/yard-0.9.44/docs/images/overview-class-diagram.png +0 -0
  22. data/yard-0.9.44/docs/images/parser-class-diagram.png +0 -0
  23. data/yard-0.9.44/docs/images/tags-class-diagram.png +0 -0
  24. data/yard-0.9.44/docs/templates/default/fulldoc/html/full_list_tag.erb +9 -0
  25. data/yard-0.9.44/docs/templates/default/fulldoc/html/setup.rb +6 -0
  26. data/yard-0.9.44/docs/templates/default/layout/html/setup.rb +9 -0
  27. data/yard-0.9.44/docs/templates/default/layout/html/tag_list.erb +11 -0
  28. data/yard-0.9.44/docs/templates/default/yard_tags/html/list.erb +18 -0
  29. data/yard-0.9.44/docs/templates/default/yard_tags/html/setup.rb +26 -0
  30. data/yard-0.9.44/docs/templates/plugin.rb +70 -0
  31. data/yard-0.9.44/lib/rubygems_plugin.rb +9 -0
  32. data/yard-0.9.44/lib/yard/autoload.rb +328 -0
  33. data/yard-0.9.44/lib/yard/cli/command.rb +85 -0
  34. data/yard-0.9.44/lib/yard/cli/command_parser.rb +93 -0
  35. data/yard-0.9.44/lib/yard/cli/config.rb +198 -0
  36. data/yard-0.9.44/lib/yard/cli/diff.rb +278 -0
  37. data/yard-0.9.44/lib/yard/cli/display.rb +69 -0
  38. data/yard-0.9.44/lib/yard/cli/gems.rb +84 -0
  39. data/yard-0.9.44/lib/yard/cli/graph.rb +125 -0
  40. data/yard-0.9.44/lib/yard/cli/help.rb +20 -0
  41. data/yard-0.9.44/lib/yard/cli/i18n.rb +70 -0
  42. data/yard-0.9.44/lib/yard/cli/list.rb +23 -0
  43. data/yard-0.9.44/lib/yard/cli/markup_types.rb +32 -0
  44. data/yard-0.9.44/lib/yard/cli/server.rb +266 -0
  45. data/yard-0.9.44/lib/yard/cli/stats.rb +234 -0
  46. data/yard-0.9.44/lib/yard/cli/yardoc.rb +791 -0
  47. data/yard-0.9.44/lib/yard/cli/yardopts_command.rb +110 -0
  48. data/yard-0.9.44/lib/yard/cli/yri.rb +215 -0
  49. data/yard-0.9.44/lib/yard/code_objects/base.rb +626 -0
  50. data/yard-0.9.44/lib/yard/code_objects/class_object.rb +146 -0
  51. data/yard-0.9.44/lib/yard/code_objects/class_variable_object.rb +11 -0
  52. data/yard-0.9.44/lib/yard/code_objects/constant_object.rb +16 -0
  53. data/yard-0.9.44/lib/yard/code_objects/extended_method_object.rb +24 -0
  54. data/yard-0.9.44/lib/yard/code_objects/extra_file_object.rb +135 -0
  55. data/yard-0.9.44/lib/yard/code_objects/macro_object.rb +171 -0
  56. data/yard-0.9.44/lib/yard/code_objects/method_object.rb +196 -0
  57. data/yard-0.9.44/lib/yard/code_objects/module_object.rb +21 -0
  58. data/yard-0.9.44/lib/yard/code_objects/namespace_mapper.rb +141 -0
  59. data/yard-0.9.44/lib/yard/code_objects/namespace_object.rb +200 -0
  60. data/yard-0.9.44/lib/yard/code_objects/proxy.rb +245 -0
  61. data/yard-0.9.44/lib/yard/code_objects/root_object.rb +19 -0
  62. data/yard-0.9.44/lib/yard/config.rb +274 -0
  63. data/yard-0.9.44/lib/yard/core_ext/array.rb +16 -0
  64. data/yard-0.9.44/lib/yard/core_ext/file.rb +69 -0
  65. data/yard-0.9.44/lib/yard/core_ext/hash.rb +16 -0
  66. data/yard-0.9.44/lib/yard/core_ext/insertion.rb +63 -0
  67. data/yard-0.9.44/lib/yard/core_ext/module.rb +11 -0
  68. data/yard-0.9.44/lib/yard/core_ext/string.rb +68 -0
  69. data/yard-0.9.44/lib/yard/core_ext/symbol_hash.rb +75 -0
  70. data/yard-0.9.44/lib/yard/docstring.rb +386 -0
  71. data/yard-0.9.44/lib/yard/docstring_parser.rb +344 -0
  72. data/yard-0.9.44/lib/yard/gem_index.rb +29 -0
  73. data/yard-0.9.44/lib/yard/globals.rb +22 -0
  74. data/yard-0.9.44/lib/yard/handlers/base.rb +617 -0
  75. data/yard-0.9.44/lib/yard/handlers/c/alias_handler.rb +16 -0
  76. data/yard-0.9.44/lib/yard/handlers/c/attribute_handler.rb +13 -0
  77. data/yard-0.9.44/lib/yard/handlers/c/base.rb +164 -0
  78. data/yard-0.9.44/lib/yard/handlers/c/class_handler.rb +27 -0
  79. data/yard-0.9.44/lib/yard/handlers/c/constant_handler.rb +13 -0
  80. data/yard-0.9.44/lib/yard/handlers/c/handler_methods.rb +212 -0
  81. data/yard-0.9.44/lib/yard/handlers/c/init_handler.rb +20 -0
  82. data/yard-0.9.44/lib/yard/handlers/c/method_handler.rb +45 -0
  83. data/yard-0.9.44/lib/yard/handlers/c/mixin_handler.rb +21 -0
  84. data/yard-0.9.44/lib/yard/handlers/c/module_handler.rb +17 -0
  85. data/yard-0.9.44/lib/yard/handlers/c/override_comment_handler.rb +31 -0
  86. data/yard-0.9.44/lib/yard/handlers/c/path_handler.rb +11 -0
  87. data/yard-0.9.44/lib/yard/handlers/c/struct_handler.rb +13 -0
  88. data/yard-0.9.44/lib/yard/handlers/c/symbol_handler.rb +8 -0
  89. data/yard-0.9.44/lib/yard/handlers/common/method_handler.rb +19 -0
  90. data/yard-0.9.44/lib/yard/handlers/processor.rb +200 -0
  91. data/yard-0.9.44/lib/yard/handlers/rbs/attribute_handler.rb +79 -0
  92. data/yard-0.9.44/lib/yard/handlers/rbs/base.rb +38 -0
  93. data/yard-0.9.44/lib/yard/handlers/rbs/constant_handler.rb +18 -0
  94. data/yard-0.9.44/lib/yard/handlers/rbs/method_handler.rb +327 -0
  95. data/yard-0.9.44/lib/yard/handlers/rbs/mixin_handler.rb +20 -0
  96. data/yard-0.9.44/lib/yard/handlers/rbs/namespace_handler.rb +26 -0
  97. data/yard-0.9.44/lib/yard/handlers/ruby/alias_handler.rb +45 -0
  98. data/yard-0.9.44/lib/yard/handlers/ruby/attribute_handler.rb +90 -0
  99. data/yard-0.9.44/lib/yard/handlers/ruby/base.rb +165 -0
  100. data/yard-0.9.44/lib/yard/handlers/ruby/class_condition_handler.rb +92 -0
  101. data/yard-0.9.44/lib/yard/handlers/ruby/class_handler.rb +119 -0
  102. data/yard-0.9.44/lib/yard/handlers/ruby/class_variable_handler.rb +17 -0
  103. data/yard-0.9.44/lib/yard/handlers/ruby/comment_handler.rb +10 -0
  104. data/yard-0.9.44/lib/yard/handlers/ruby/constant_handler.rb +73 -0
  105. data/yard-0.9.44/lib/yard/handlers/ruby/decorator_handler_methods.rb +123 -0
  106. data/yard-0.9.44/lib/yard/handlers/ruby/dsl_handler.rb +15 -0
  107. data/yard-0.9.44/lib/yard/handlers/ruby/dsl_handler_methods.rb +96 -0
  108. data/yard-0.9.44/lib/yard/handlers/ruby/exception_handler.rb +27 -0
  109. data/yard-0.9.44/lib/yard/handlers/ruby/extend_handler.rb +22 -0
  110. data/yard-0.9.44/lib/yard/handlers/ruby/legacy/alias_handler.rb +37 -0
  111. data/yard-0.9.44/lib/yard/handlers/ruby/legacy/attribute_handler.rb +65 -0
  112. data/yard-0.9.44/lib/yard/handlers/ruby/legacy/base.rb +245 -0
  113. data/yard-0.9.44/lib/yard/handlers/ruby/legacy/class_condition_handler.rb +83 -0
  114. data/yard-0.9.44/lib/yard/handlers/ruby/legacy/class_handler.rb +113 -0
  115. data/yard-0.9.44/lib/yard/handlers/ruby/legacy/class_variable_handler.rb +15 -0
  116. data/yard-0.9.44/lib/yard/handlers/ruby/legacy/comment_handler.rb +10 -0
  117. data/yard-0.9.44/lib/yard/handlers/ruby/legacy/constant_handler.rb +29 -0
  118. data/yard-0.9.44/lib/yard/handlers/ruby/legacy/dsl_handler.rb +17 -0
  119. data/yard-0.9.44/lib/yard/handlers/ruby/legacy/exception_handler.rb +13 -0
  120. data/yard-0.9.44/lib/yard/handlers/ruby/legacy/extend_handler.rb +21 -0
  121. data/yard-0.9.44/lib/yard/handlers/ruby/legacy/method_handler.rb +90 -0
  122. data/yard-0.9.44/lib/yard/handlers/ruby/legacy/mixin_handler.rb +39 -0
  123. data/yard-0.9.44/lib/yard/handlers/ruby/legacy/module_function_handler.rb +19 -0
  124. data/yard-0.9.44/lib/yard/handlers/ruby/legacy/module_handler.rb +12 -0
  125. data/yard-0.9.44/lib/yard/handlers/ruby/legacy/private_class_method_handler.rb +22 -0
  126. data/yard-0.9.44/lib/yard/handlers/ruby/legacy/private_constant_handler.rb +22 -0
  127. data/yard-0.9.44/lib/yard/handlers/ruby/legacy/visibility_handler.rb +18 -0
  128. data/yard-0.9.44/lib/yard/handlers/ruby/legacy/yield_handler.rb +29 -0
  129. data/yard-0.9.44/lib/yard/handlers/ruby/method_condition_handler.rb +9 -0
  130. data/yard-0.9.44/lib/yard/handlers/ruby/method_handler.rb +104 -0
  131. data/yard-0.9.44/lib/yard/handlers/ruby/mixin_handler.rb +61 -0
  132. data/yard-0.9.44/lib/yard/handlers/ruby/module_function_handler.rb +39 -0
  133. data/yard-0.9.44/lib/yard/handlers/ruby/module_handler.rb +12 -0
  134. data/yard-0.9.44/lib/yard/handlers/ruby/private_class_method_handler.rb +14 -0
  135. data/yard-0.9.44/lib/yard/handlers/ruby/private_constant_handler.rb +43 -0
  136. data/yard-0.9.44/lib/yard/handlers/ruby/public_class_method_handler.rb +14 -0
  137. data/yard-0.9.44/lib/yard/handlers/ruby/struct_handler_methods.rb +143 -0
  138. data/yard-0.9.44/lib/yard/handlers/ruby/visibility_handler.rb +35 -0
  139. data/yard-0.9.44/lib/yard/handlers/ruby/yield_handler.rb +31 -0
  140. data/yard-0.9.44/lib/yard/i18n/locale.rb +67 -0
  141. data/yard-0.9.44/lib/yard/i18n/message.rb +57 -0
  142. data/yard-0.9.44/lib/yard/i18n/messages.rb +56 -0
  143. data/yard-0.9.44/lib/yard/i18n/po_parser.rb +61 -0
  144. data/yard-0.9.44/lib/yard/i18n/pot_generator.rb +290 -0
  145. data/yard-0.9.44/lib/yard/i18n/text.rb +173 -0
  146. data/yard-0.9.44/lib/yard/logging.rb +260 -0
  147. data/yard-0.9.44/lib/yard/open_struct.rb +67 -0
  148. data/yard-0.9.44/lib/yard/options.rb +217 -0
  149. data/yard-0.9.44/lib/yard/parser/base.rb +57 -0
  150. data/yard-0.9.44/lib/yard/parser/c/c_parser.rb +235 -0
  151. data/yard-0.9.44/lib/yard/parser/c/comment_parser.rb +134 -0
  152. data/yard-0.9.44/lib/yard/parser/c/statement.rb +66 -0
  153. data/yard-0.9.44/lib/yard/parser/rbs/rbs_parser.rb +325 -0
  154. data/yard-0.9.44/lib/yard/parser/rbs/statement.rb +75 -0
  155. data/yard-0.9.44/lib/yard/parser/ruby/ast_node.rb +559 -0
  156. data/yard-0.9.44/lib/yard/parser/ruby/legacy/irb/slex.rb +294 -0
  157. data/yard-0.9.44/lib/yard/parser/ruby/legacy/ruby_lex.rb +1360 -0
  158. data/yard-0.9.44/lib/yard/parser/ruby/legacy/ruby_parser.rb +32 -0
  159. data/yard-0.9.44/lib/yard/parser/ruby/legacy/statement.rb +68 -0
  160. data/yard-0.9.44/lib/yard/parser/ruby/legacy/statement_list.rb +394 -0
  161. data/yard-0.9.44/lib/yard/parser/ruby/legacy/token_list.rb +74 -0
  162. data/yard-0.9.44/lib/yard/parser/ruby/ruby_parser.rb +792 -0
  163. data/yard-0.9.44/lib/yard/parser/ruby/token_resolver.rb +158 -0
  164. data/yard-0.9.44/lib/yard/parser/source_parser.rb +526 -0
  165. data/yard-0.9.44/lib/yard/rake/yardoc_task.rb +81 -0
  166. data/yard-0.9.44/lib/yard/registry.rb +439 -0
  167. data/yard-0.9.44/lib/yard/registry_resolver.rb +225 -0
  168. data/yard-0.9.44/lib/yard/registry_store.rb +342 -0
  169. data/yard-0.9.44/lib/yard/rubygems/backports/LICENSE.txt +57 -0
  170. data/yard-0.9.44/lib/yard/rubygems/backports/MIT.txt +20 -0
  171. data/yard-0.9.44/lib/yard/rubygems/backports/gem.rb +10 -0
  172. data/yard-0.9.44/lib/yard/rubygems/backports/source_index.rb +365 -0
  173. data/yard-0.9.44/lib/yard/rubygems/backports.rb +10 -0
  174. data/yard-0.9.44/lib/yard/rubygems/doc_manager.rb +90 -0
  175. data/yard-0.9.44/lib/yard/rubygems/hook.rb +197 -0
  176. data/yard-0.9.44/lib/yard/rubygems/specification.rb +50 -0
  177. data/yard-0.9.44/lib/yard/serializers/base.rb +83 -0
  178. data/yard-0.9.44/lib/yard/serializers/file_system_serializer.rb +123 -0
  179. data/yard-0.9.44/lib/yard/serializers/process_serializer.rb +24 -0
  180. data/yard-0.9.44/lib/yard/serializers/stdout_serializer.rb +34 -0
  181. data/yard-0.9.44/lib/yard/serializers/yardoc_serializer.rb +152 -0
  182. data/yard-0.9.44/lib/yard/server/adapter.rb +100 -0
  183. data/yard-0.9.44/lib/yard/server/commands/base.rb +203 -0
  184. data/yard-0.9.44/lib/yard/server/commands/display_file_command.rb +29 -0
  185. data/yard-0.9.44/lib/yard/server/commands/display_object_command.rb +65 -0
  186. data/yard-0.9.44/lib/yard/server/commands/frames_command.rb +16 -0
  187. data/yard-0.9.44/lib/yard/server/commands/library_command.rb +187 -0
  188. data/yard-0.9.44/lib/yard/server/commands/library_index_command.rb +28 -0
  189. data/yard-0.9.44/lib/yard/server/commands/list_command.rb +25 -0
  190. data/yard-0.9.44/lib/yard/server/commands/root_request_command.rb +15 -0
  191. data/yard-0.9.44/lib/yard/server/commands/search_command.rb +79 -0
  192. data/yard-0.9.44/lib/yard/server/commands/static_file_command.rb +23 -0
  193. data/yard-0.9.44/lib/yard/server/commands/static_file_helpers.rb +60 -0
  194. data/yard-0.9.44/lib/yard/server/doc_server_helper.rb +91 -0
  195. data/yard-0.9.44/lib/yard/server/doc_server_serializer.rb +39 -0
  196. data/yard-0.9.44/lib/yard/server/http_utils.rb +512 -0
  197. data/yard-0.9.44/lib/yard/server/library_version.rb +277 -0
  198. data/yard-0.9.44/lib/yard/server/rack_adapter.rb +97 -0
  199. data/yard-0.9.44/lib/yard/server/router.rb +187 -0
  200. data/yard-0.9.44/lib/yard/server/static_caching.rb +77 -0
  201. data/yard-0.9.44/lib/yard/server/templates/default/fulldoc/html/css/custom.css +207 -0
  202. data/yard-0.9.44/lib/yard/server/templates/default/fulldoc/html/images/processing.gif +0 -0
  203. data/yard-0.9.44/lib/yard/server/templates/default/fulldoc/html/js/autocomplete.js +203 -0
  204. data/yard-0.9.44/lib/yard/server/templates/default/layout/html/breadcrumb.erb +21 -0
  205. data/yard-0.9.44/lib/yard/server/templates/default/layout/html/script_setup.erb +7 -0
  206. data/yard-0.9.44/lib/yard/server/templates/default/layout/html/setup.rb +8 -0
  207. data/yard-0.9.44/lib/yard/server/templates/default/method_details/html/permalink.erb +6 -0
  208. data/yard-0.9.44/lib/yard/server/templates/default/method_details/html/setup.rb +5 -0
  209. data/yard-0.9.44/lib/yard/server/templates/doc_server/library_list/html/headers.erb +8 -0
  210. data/yard-0.9.44/lib/yard/server/templates/doc_server/library_list/html/library_list.erb +13 -0
  211. data/yard-0.9.44/lib/yard/server/templates/doc_server/library_list/html/listing.erb +13 -0
  212. data/yard-0.9.44/lib/yard/server/templates/doc_server/library_list/html/setup.rb +6 -0
  213. data/yard-0.9.44/lib/yard/server/templates/doc_server/library_list/html/title.erb +2 -0
  214. data/yard-0.9.44/lib/yard/server/templates/doc_server/processing/html/processing.erb +58 -0
  215. data/yard-0.9.44/lib/yard/server/templates/doc_server/processing/html/setup.rb +4 -0
  216. data/yard-0.9.44/lib/yard/server/templates/doc_server/search/html/search.erb +18 -0
  217. data/yard-0.9.44/lib/yard/server/templates/doc_server/search/html/setup.rb +9 -0
  218. data/yard-0.9.44/lib/yard/server/webrick_adapter.rb +45 -0
  219. data/yard-0.9.44/lib/yard/server.rb +13 -0
  220. data/yard-0.9.44/lib/yard/tags/default_factory.rb +192 -0
  221. data/yard-0.9.44/lib/yard/tags/default_tag.rb +13 -0
  222. data/yard-0.9.44/lib/yard/tags/directives.rb +631 -0
  223. data/yard-0.9.44/lib/yard/tags/library.rb +633 -0
  224. data/yard-0.9.44/lib/yard/tags/option_tag.rb +13 -0
  225. data/yard-0.9.44/lib/yard/tags/overload_tag.rb +72 -0
  226. data/yard-0.9.44/lib/yard/tags/ref_tag.rb +8 -0
  227. data/yard-0.9.44/lib/yard/tags/ref_tag_list.rb +28 -0
  228. data/yard-0.9.44/lib/yard/tags/tag.rb +72 -0
  229. data/yard-0.9.44/lib/yard/tags/tag_format_error.rb +7 -0
  230. data/yard-0.9.44/lib/yard/tags/types_explainer.rb +288 -0
  231. data/yard-0.9.44/lib/yard/templates/engine.rb +185 -0
  232. data/yard-0.9.44/lib/yard/templates/erb_cache.rb +23 -0
  233. data/yard-0.9.44/lib/yard/templates/helpers/base_helper.rb +215 -0
  234. data/yard-0.9.44/lib/yard/templates/helpers/filter_helper.rb +27 -0
  235. data/yard-0.9.44/lib/yard/templates/helpers/html_helper.rb +688 -0
  236. data/yard-0.9.44/lib/yard/templates/helpers/html_syntax_highlight_helper.rb +83 -0
  237. data/yard-0.9.44/lib/yard/templates/helpers/markup/html_entities.rb +2140 -0
  238. data/yard-0.9.44/lib/yard/templates/helpers/markup/hybrid_markdown.rb +2131 -0
  239. data/yard-0.9.44/lib/yard/templates/helpers/markup/rdoc_markdown.rb +23 -0
  240. data/yard-0.9.44/lib/yard/templates/helpers/markup/rdoc_markup.rb +112 -0
  241. data/yard-0.9.44/lib/yard/templates/helpers/markup_helper.rb +175 -0
  242. data/yard-0.9.44/lib/yard/templates/helpers/method_helper.rb +77 -0
  243. data/yard-0.9.44/lib/yard/templates/helpers/module_helper.rb +21 -0
  244. data/yard-0.9.44/lib/yard/templates/helpers/text_helper.rb +112 -0
  245. data/yard-0.9.44/lib/yard/templates/helpers/uml_helper.rb +47 -0
  246. data/yard-0.9.44/lib/yard/templates/section.rb +103 -0
  247. data/yard-0.9.44/lib/yard/templates/template.rb +420 -0
  248. data/yard-0.9.44/lib/yard/templates/template_options.rb +91 -0
  249. data/yard-0.9.44/lib/yard/verifier.rb +151 -0
  250. data/yard-0.9.44/lib/yard/version.rb +6 -0
  251. data/yard-0.9.44/lib/yard.rb +75 -0
  252. data/yard-0.9.44/po/ja.po +31108 -0
  253. data/yard-0.9.44/templates/default/class/dot/setup.rb +7 -0
  254. data/yard-0.9.44/templates/default/class/dot/superklass.erb +3 -0
  255. data/yard-0.9.44/templates/default/class/html/constructor_details.erb +8 -0
  256. data/yard-0.9.44/templates/default/class/html/setup.rb +2 -0
  257. data/yard-0.9.44/templates/default/class/html/subclasses.erb +4 -0
  258. data/yard-0.9.44/templates/default/class/setup.rb +36 -0
  259. data/yard-0.9.44/templates/default/class/text/setup.rb +12 -0
  260. data/yard-0.9.44/templates/default/class/text/subclasses.erb +5 -0
  261. data/yard-0.9.44/templates/default/constant/text/header.erb +11 -0
  262. data/yard-0.9.44/templates/default/constant/text/setup.rb +4 -0
  263. data/yard-0.9.44/templates/default/docstring/html/abstract.erb +4 -0
  264. data/yard-0.9.44/templates/default/docstring/html/deprecated.erb +1 -0
  265. data/yard-0.9.44/templates/default/docstring/html/index.erb +5 -0
  266. data/yard-0.9.44/templates/default/docstring/html/note.erb +6 -0
  267. data/yard-0.9.44/templates/default/docstring/html/private.erb +4 -0
  268. data/yard-0.9.44/templates/default/docstring/html/returns_void.erb +1 -0
  269. data/yard-0.9.44/templates/default/docstring/html/text.erb +1 -0
  270. data/yard-0.9.44/templates/default/docstring/html/todo.erb +6 -0
  271. data/yard-0.9.44/templates/default/docstring/setup.rb +52 -0
  272. data/yard-0.9.44/templates/default/docstring/text/abstract.erb +2 -0
  273. data/yard-0.9.44/templates/default/docstring/text/deprecated.erb +2 -0
  274. data/yard-0.9.44/templates/default/docstring/text/index.erb +2 -0
  275. data/yard-0.9.44/templates/default/docstring/text/note.erb +4 -0
  276. data/yard-0.9.44/templates/default/docstring/text/private.erb +2 -0
  277. data/yard-0.9.44/templates/default/docstring/text/returns_void.erb +1 -0
  278. data/yard-0.9.44/templates/default/docstring/text/text.erb +1 -0
  279. data/yard-0.9.44/templates/default/docstring/text/todo.erb +4 -0
  280. data/yard-0.9.44/templates/default/fulldoc/html/css/common.css +1 -0
  281. data/yard-0.9.44/templates/default/fulldoc/html/css/full_list.css +206 -0
  282. data/yard-0.9.44/templates/default/fulldoc/html/css/style.css +1089 -0
  283. data/yard-0.9.44/templates/default/fulldoc/html/frames.erb +22 -0
  284. data/yard-0.9.44/templates/default/fulldoc/html/full_list.erb +40 -0
  285. data/yard-0.9.44/templates/default/fulldoc/html/full_list_class.erb +2 -0
  286. data/yard-0.9.44/templates/default/fulldoc/html/full_list_file.erb +7 -0
  287. data/yard-0.9.44/templates/default/fulldoc/html/full_list_method.erb +10 -0
  288. data/yard-0.9.44/templates/default/fulldoc/html/js/app.js +801 -0
  289. data/yard-0.9.44/templates/default/fulldoc/html/js/full_list.js +334 -0
  290. data/yard-0.9.44/templates/default/fulldoc/html/js/jquery.js +4 -0
  291. data/yard-0.9.44/templates/default/fulldoc/html/setup.rb +249 -0
  292. data/yard-0.9.44/templates/default/layout/dot/header.erb +6 -0
  293. data/yard-0.9.44/templates/default/layout/dot/setup.rb +15 -0
  294. data/yard-0.9.44/templates/default/layout/html/breadcrumb.erb +11 -0
  295. data/yard-0.9.44/templates/default/layout/html/files.erb +11 -0
  296. data/yard-0.9.44/templates/default/layout/html/footer.erb +5 -0
  297. data/yard-0.9.44/templates/default/layout/html/headers.erb +15 -0
  298. data/yard-0.9.44/templates/default/layout/html/index.erb +2 -0
  299. data/yard-0.9.44/templates/default/layout/html/layout.erb +26 -0
  300. data/yard-0.9.44/templates/default/layout/html/listing.erb +4 -0
  301. data/yard-0.9.44/templates/default/layout/html/objects.erb +32 -0
  302. data/yard-0.9.44/templates/default/layout/html/script_setup.erb +4 -0
  303. data/yard-0.9.44/templates/default/layout/html/search.erb +13 -0
  304. data/yard-0.9.44/templates/default/layout/html/setup.rb +89 -0
  305. data/yard-0.9.44/templates/default/method/html/header.erb +17 -0
  306. data/yard-0.9.44/templates/default/method/setup.rb +4 -0
  307. data/yard-0.9.44/templates/default/method/text/header.erb +1 -0
  308. data/yard-0.9.44/templates/default/method_details/html/header.erb +3 -0
  309. data/yard-0.9.44/templates/default/method_details/html/method_signature.erb +25 -0
  310. data/yard-0.9.44/templates/default/method_details/html/source.erb +10 -0
  311. data/yard-0.9.44/templates/default/method_details/setup.rb +11 -0
  312. data/yard-0.9.44/templates/default/method_details/text/header.erb +10 -0
  313. data/yard-0.9.44/templates/default/method_details/text/method_signature.erb +12 -0
  314. data/yard-0.9.44/templates/default/method_details/text/setup.rb +11 -0
  315. data/yard-0.9.44/templates/default/module/dot/child.erb +1 -0
  316. data/yard-0.9.44/templates/default/module/dot/dependencies.erb +3 -0
  317. data/yard-0.9.44/templates/default/module/dot/header.erb +6 -0
  318. data/yard-0.9.44/templates/default/module/dot/info.erb +14 -0
  319. data/yard-0.9.44/templates/default/module/dot/setup.rb +15 -0
  320. data/yard-0.9.44/templates/default/module/html/attribute_details.erb +10 -0
  321. data/yard-0.9.44/templates/default/module/html/attribute_summary.erb +8 -0
  322. data/yard-0.9.44/templates/default/module/html/box_info.erb +43 -0
  323. data/yard-0.9.44/templates/default/module/html/children.erb +8 -0
  324. data/yard-0.9.44/templates/default/module/html/constant_summary.erb +17 -0
  325. data/yard-0.9.44/templates/default/module/html/defines.erb +3 -0
  326. data/yard-0.9.44/templates/default/module/html/header.erb +5 -0
  327. data/yard-0.9.44/templates/default/module/html/inherited_attributes.erb +14 -0
  328. data/yard-0.9.44/templates/default/module/html/inherited_constants.erb +8 -0
  329. data/yard-0.9.44/templates/default/module/html/inherited_methods.erb +20 -0
  330. data/yard-0.9.44/templates/default/module/html/item_summary.erb +40 -0
  331. data/yard-0.9.44/templates/default/module/html/method_details_list.erb +9 -0
  332. data/yard-0.9.44/templates/default/module/html/method_summary.erb +22 -0
  333. data/yard-0.9.44/templates/default/module/html/methodmissing.erb +12 -0
  334. data/yard-0.9.44/templates/default/module/html/pre_docstring.erb +1 -0
  335. data/yard-0.9.44/templates/default/module/setup.rb +187 -0
  336. data/yard-0.9.44/templates/default/module/text/children.erb +10 -0
  337. data/yard-0.9.44/templates/default/module/text/class_meths_list.erb +8 -0
  338. data/yard-0.9.44/templates/default/module/text/extends.erb +8 -0
  339. data/yard-0.9.44/templates/default/module/text/header.erb +7 -0
  340. data/yard-0.9.44/templates/default/module/text/includes.erb +8 -0
  341. data/yard-0.9.44/templates/default/module/text/instance_meths_list.erb +8 -0
  342. data/yard-0.9.44/templates/default/module/text/setup.rb +13 -0
  343. data/yard-0.9.44/templates/default/onefile/html/files.erb +5 -0
  344. data/yard-0.9.44/templates/default/onefile/html/headers.erb +8 -0
  345. data/yard-0.9.44/templates/default/onefile/html/layout.erb +16 -0
  346. data/yard-0.9.44/templates/default/onefile/html/readme.erb +3 -0
  347. data/yard-0.9.44/templates/default/onefile/html/setup.rb +62 -0
  348. data/yard-0.9.44/templates/default/root/dot/child.erb +3 -0
  349. data/yard-0.9.44/templates/default/root/dot/setup.rb +6 -0
  350. data/yard-0.9.44/templates/default/root/html/setup.rb +2 -0
  351. data/yard-0.9.44/templates/default/tags/html/example.erb +11 -0
  352. data/yard-0.9.44/templates/default/tags/html/index.erb +3 -0
  353. data/yard-0.9.44/templates/default/tags/html/option.erb +24 -0
  354. data/yard-0.9.44/templates/default/tags/html/overload.erb +14 -0
  355. data/yard-0.9.44/templates/default/tags/html/see.erb +8 -0
  356. data/yard-0.9.44/templates/default/tags/html/tag.erb +20 -0
  357. data/yard-0.9.44/templates/default/tags/setup.rb +57 -0
  358. data/yard-0.9.44/templates/default/tags/text/example.erb +12 -0
  359. data/yard-0.9.44/templates/default/tags/text/index.erb +1 -0
  360. data/yard-0.9.44/templates/default/tags/text/option.erb +20 -0
  361. data/yard-0.9.44/templates/default/tags/text/overload.erb +19 -0
  362. data/yard-0.9.44/templates/default/tags/text/see.erb +11 -0
  363. data/yard-0.9.44/templates/default/tags/text/tag.erb +13 -0
  364. data/yard-0.9.44/templates/guide/class/html/setup.rb +2 -0
  365. data/yard-0.9.44/templates/guide/docstring/html/setup.rb +2 -0
  366. data/yard-0.9.44/templates/guide/fulldoc/html/css/style.css +358 -0
  367. data/yard-0.9.44/templates/guide/fulldoc/html/js/app.js +61 -0
  368. data/yard-0.9.44/templates/guide/fulldoc/html/setup.rb +74 -0
  369. data/yard-0.9.44/templates/guide/layout/html/layout.erb +78 -0
  370. data/yard-0.9.44/templates/guide/layout/html/setup.rb +25 -0
  371. data/yard-0.9.44/templates/guide/method/html/header.erb +18 -0
  372. data/yard-0.9.44/templates/guide/method/html/setup.rb +22 -0
  373. data/yard-0.9.44/templates/guide/module/html/header.erb +7 -0
  374. data/yard-0.9.44/templates/guide/module/html/method_list.erb +5 -0
  375. data/yard-0.9.44/templates/guide/module/html/setup.rb +27 -0
  376. data/yard-0.9.44/templates/guide/onefile/html/files.erb +4 -0
  377. data/yard-0.9.44/templates/guide/onefile/html/setup.rb +6 -0
  378. data/yard-0.9.44/templates/guide/onefile/html/toc.erb +3 -0
  379. data/yard-0.9.44/templates/guide/tags/html/setup.rb +9 -0
  380. metadata +419 -0
@@ -0,0 +1,365 @@
1
+ # frozen_string_literal: true
2
+ #--
3
+ # Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
4
+ # All rights reserved.
5
+ # See LICENSE.txt for permissions.
6
+ #++
7
+
8
+ require 'rubygems/specification'
9
+
10
+ ##
11
+ # The SourceIndex object indexes all the gems available from a
12
+ # particular source (e.g. a list of gem directories, or a remote
13
+ # source). A SourceIndex maps a gem full name to a gem
14
+ # specification.
15
+ #
16
+ # NOTE:: The class used to be named Cache, but that became
17
+ # confusing when cached source fetchers where introduced. The
18
+ # constant Gem::Cache is an alias for this class to allow old
19
+ # YAMLized source index objects to load properly.
20
+
21
+ class Gem::SourceIndex
22
+ # Undef old methods
23
+ alias old_initialize initialize
24
+ undef old_initialize
25
+ %w(all_gems prerelease_gems load_gems_in latest_specs prerelease_specs
26
+ released_specs add_spec add_specs remove_spec each specification
27
+ index_signature gem_signature size length find_name search released_gems
28
+ refresh! outdated == dump gems spec_dirs spec_dirs=).each do |meth|
29
+ undef_method(meth) if method_defined?(meth)
30
+ end
31
+
32
+ include Enumerable
33
+
34
+ attr_reader :gems # :nodoc:
35
+
36
+ ##
37
+ # Directories to use to refresh this SourceIndex when calling refresh!
38
+
39
+ attr_accessor :spec_dirs
40
+
41
+ class << self
42
+ # Undef old methods
43
+ %w(from_installed_gems installed_spec_directories
44
+ from_gems_in load_specification).each do |meth|
45
+ undef_method(meth) if instance_methods(true).find {|m| m.to_s == meth }
46
+ end
47
+
48
+ ##
49
+ # Factory method to construct a source index instance for a given
50
+ # path.
51
+ #
52
+ # deprecated::
53
+ # If supplied, from_installed_gems will act just like
54
+ # +from_gems_in+. This argument is deprecated and is provided
55
+ # just for backwards compatibility, and should not generally
56
+ # be used.
57
+ #
58
+ # return::
59
+ # SourceIndex instance
60
+
61
+ def from_installed_gems(*deprecated)
62
+ if deprecated.empty?
63
+ from_gems_in(*installed_spec_directories)
64
+ else
65
+ from_gems_in(*deprecated) # HACK: warn
66
+ end
67
+ end
68
+
69
+ ##
70
+ # Returns a list of directories from Gem.path that contain specifications.
71
+
72
+ def installed_spec_directories
73
+ Gem.path.collect {|dir| File.join(dir, "specifications") }
74
+ end
75
+
76
+ ##
77
+ # Creates a new SourceIndex from the ruby format gem specifications in
78
+ # +spec_dirs+.
79
+
80
+ def from_gems_in(*spec_dirs)
81
+ source_index = new
82
+ source_index.spec_dirs = spec_dirs
83
+ source_index.refresh!
84
+ end
85
+
86
+ ##
87
+ # Loads a ruby-format specification from +file_name+ and returns the
88
+ # loaded spec.
89
+
90
+ def load_specification(file_name)
91
+ Gem::Specification.load file_name
92
+ end
93
+ end
94
+
95
+ ##
96
+ # Constructs a source index instance from the provided specifications, which
97
+ # is a Hash of gem full names and Gem::Specifications.
98
+ #--
99
+ # TODO merge @gems and @prerelease_gems and provide a separate method
100
+ # #prerelease_gems
101
+
102
+ def initialize(specifications = {})
103
+ @gems = {}
104
+ specifications.each {|_full_name, spec| add_spec spec }
105
+ @spec_dirs = nil
106
+ end
107
+
108
+ # TODO: remove method
109
+ def all_gems
110
+ @gems
111
+ end
112
+
113
+ def prerelease_gems
114
+ @gems.reject {|_name, gem| !gem.version.prerelease? }
115
+ end
116
+
117
+ def released_gems
118
+ @gems.reject {|_name, gem| gem.version.prerelease? }
119
+ end
120
+
121
+ ##
122
+ # Reconstruct the source index from the specifications in +spec_dirs+.
123
+
124
+ def load_gems_in(*spec_dirs)
125
+ @gems.clear
126
+
127
+ spec_dirs.reverse_each do |spec_dir|
128
+ spec_files = Dir.glob File.join(spec_dir, '*.gemspec')
129
+
130
+ spec_files.each do |spec_file|
131
+ gemspec = Gem::Specification.load spec_file
132
+ add_spec gemspec if gemspec
133
+ end
134
+ end
135
+
136
+ self
137
+ end
138
+
139
+ ##
140
+ # Returns an Array specifications for the latest released versions
141
+ # of each gem in this index.
142
+
143
+ def latest_specs(include_prerelease = false)
144
+ result = Hash.new {|h, k| h[k] = [] }
145
+ latest = {}
146
+
147
+ sort.each do |_, spec|
148
+ name = spec.name
149
+ curr_ver = spec.version
150
+ prev_ver = latest.key?(name) ? latest[name].version : nil
151
+
152
+ next if !include_prerelease && curr_ver.prerelease?
153
+ next unless prev_ver.nil? || curr_ver >= prev_ver ||
154
+ latest[name].platform != Gem::Platform::RUBY
155
+
156
+ if prev_ver.nil? ||
157
+ (curr_ver > prev_ver && spec.platform == Gem::Platform::RUBY)
158
+ result[name].clear
159
+ latest[name] = spec
160
+ end
161
+
162
+ if spec.platform != Gem::Platform::RUBY
163
+ result[name].delete_if do |result_spec|
164
+ result_spec.platform == spec.platform
165
+ end
166
+ end
167
+
168
+ result[name] << spec
169
+ end
170
+
171
+ # TODO: why is this a hash while @gems is an array? Seems like
172
+ # structural similarity would be good.
173
+ result.values.flatten
174
+ end
175
+
176
+ ##
177
+ # An array including only the prerelease gemspecs
178
+
179
+ def prerelease_specs
180
+ prerelease_gems.values
181
+ end
182
+
183
+ ##
184
+ # An array including only the released gemspecs
185
+
186
+ def released_specs
187
+ released_gems.values
188
+ end
189
+
190
+ ##
191
+ # Add a gem specification to the source index.
192
+
193
+ def add_spec(gem_spec, name = gem_spec.full_name)
194
+ # No idea why, but the Indexer wants to insert them using original_name
195
+ # instead of full_name. So we make it an optional arg.
196
+ @gems[name] = gem_spec
197
+ end
198
+
199
+ ##
200
+ # Add gem specifications to the source index.
201
+
202
+ def add_specs(*gem_specs)
203
+ gem_specs.each do |spec|
204
+ add_spec spec
205
+ end
206
+ end
207
+
208
+ ##
209
+ # Remove a gem specification named +full_name+.
210
+
211
+ def remove_spec(full_name)
212
+ @gems.delete full_name
213
+ end
214
+
215
+ ##
216
+ # Iterate over the specifications in the source index.
217
+
218
+ def each(&block) # :yields: gem.full_name, gem
219
+ @gems.each(&block)
220
+ end
221
+
222
+ ##
223
+ # The gem specification given a full gem spec name.
224
+
225
+ def specification(full_name)
226
+ @gems[full_name]
227
+ end
228
+
229
+ ##
230
+ # The signature for the source index. Changes in the signature indicate a
231
+ # change in the index.
232
+
233
+ def index_signature
234
+ require 'digest'
235
+
236
+ Digest::SHA256.new.hexdigest(@gems.keys.sort.join(',')).to_s
237
+ end
238
+
239
+ ##
240
+ # The signature for the given gem specification.
241
+
242
+ def gem_signature(gem_full_name)
243
+ require 'digest'
244
+
245
+ Digest::SHA256.new.hexdigest(@gems[gem_full_name].to_yaml).to_s
246
+ end
247
+
248
+ def size
249
+ @gems.size
250
+ end
251
+ alias length size
252
+
253
+ ##
254
+ # Find a gem by an exact match on the short name.
255
+
256
+ def find_name(gem_name, requirement = Gem::Requirement.default)
257
+ dep = Gem::Dependency.new gem_name, requirement
258
+ search dep
259
+ end
260
+
261
+ ##
262
+ # Search for a gem by Gem::Dependency +gem_pattern+. If +only_platform+
263
+ # is true, only gems matching Gem::Platform.local will be returned. An
264
+ # Array of matching Gem::Specification objects is returned.
265
+ #
266
+ # For backwards compatibility, a String or Regexp pattern may be passed as
267
+ # +gem_pattern+, and a Gem::Requirement for +platform_only+. This
268
+ # behavior is deprecated and will be removed.
269
+
270
+ def search(gem_pattern, platform_only = false)
271
+ requirement = nil
272
+ only_platform = false
273
+
274
+ # TODO: Remove support and warning for legacy arguments after 2008/11
275
+ unless Gem::Dependency === gem_pattern
276
+ warn "#{Gem.location_of_caller.join ':'}:Warning: Gem::SourceIndex#search support for #{gem_pattern.class} patterns is deprecated, use #find_name"
277
+ end
278
+
279
+ case gem_pattern
280
+ when Regexp then
281
+ requirement = platform_only || Gem::Requirement.default
282
+ when Gem::Dependency then
283
+ only_platform = platform_only
284
+ requirement = gem_pattern.requirement
285
+
286
+ gem_pattern = if Regexp === gem_pattern.name
287
+ gem_pattern.name
288
+ elsif gem_pattern.name.empty?
289
+ //
290
+ else
291
+ /^#{Regexp.escape gem_pattern.name}$/
292
+ end
293
+ else
294
+ requirement = platform_only || Gem::Requirement.default
295
+ gem_pattern = /#{gem_pattern}/i
296
+ end
297
+
298
+ unless Gem::Requirement === requirement
299
+ requirement = Gem::Requirement.create requirement
300
+ end
301
+
302
+ specs = all_gems.values.select do |spec|
303
+ spec.name =~ gem_pattern &&
304
+ requirement.satisfied_by?(spec.version)
305
+ end
306
+
307
+ if only_platform
308
+ specs = specs.select do |spec|
309
+ Gem::Platform.match spec.platform
310
+ end
311
+ end
312
+
313
+ specs.sort_by(&:sort_obj)
314
+ end
315
+
316
+ ##
317
+ # Replaces the gems in the source index from specifications in the
318
+ # directories this source index was created from. Raises an exception if
319
+ # this source index wasn't created from a directory (via from_gems_in or
320
+ # from_installed_gems, or having spec_dirs set).
321
+
322
+ def refresh!
323
+ raise 'source index not created from disk' if @spec_dirs.nil?
324
+ load_gems_in(*@spec_dirs)
325
+ end
326
+
327
+ ##
328
+ # Returns an Array of Gem::Specifications that are not up to date.
329
+
330
+ def outdated
331
+ outdateds = []
332
+
333
+ latest_specs.each do |local|
334
+ dependency = Gem::Dependency.new local.name, ">= #{local.version}"
335
+
336
+ fetcher = Gem::SpecFetcher.fetcher
337
+ remotes = fetcher.find_matching dependency
338
+ remotes = remotes.map {|(_, version, _), _| version }
339
+
340
+ latest = remotes.sort.last
341
+
342
+ outdateds << local.name if latest && local.version < latest
343
+ end
344
+
345
+ outdateds
346
+ end
347
+
348
+ def ==(other) # :nodoc:
349
+ self.class === other && @gems == other.gems
350
+ end
351
+
352
+ def dump
353
+ Marshal.dump(self)
354
+ end
355
+ end
356
+
357
+ # :stopdoc:
358
+ module Gem
359
+ ##
360
+ # Cache is an alias for SourceIndex to allow older YAMLized source index
361
+ # objects to load properly.
362
+
363
+ Cache = SourceIndex unless defined?(Cache)
364
+ end
365
+ # :startdoc:
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+ begin
3
+ require 'rubygems'
4
+ if defined?(Gem::VERSION) && Gem::VERSION >= '1.8.0'
5
+ require File.dirname(__FILE__) + '/backports/gem'
6
+ require File.dirname(__FILE__) + '/backports/source_index'
7
+ end
8
+ rescue LoadError
9
+ nil # noop
10
+ end
@@ -0,0 +1,90 @@
1
+ # frozen_string_literal: true
2
+ begin
3
+ require 'rubygems/user_interaction'
4
+ require 'rubygems/doc_manager'
5
+ rescue LoadError
6
+ nil # noop
7
+ end
8
+
9
+ class Gem::DocManager
10
+ def self.load_yardoc
11
+ require File.expand_path(File.join(File.dirname(__FILE__), *%w(.. .. yard)))
12
+ end
13
+
14
+ def run_yardoc(*args)
15
+ args << '--quiet'
16
+ args << '--backtrace' if Gem.configuration.backtrace
17
+ unless File.file?(File.join(@spec.full_gem_path, '.yardopts'))
18
+ args << @spec.require_paths
19
+ unless @spec.extra_rdoc_files.empty?
20
+ args << '-'
21
+ args += @spec.extra_rdoc_files
22
+ end
23
+ end
24
+ args = args.flatten.map(&:to_s)
25
+
26
+ old_pwd = Dir.pwd
27
+ Dir.chdir(@spec.full_gem_path)
28
+ YARD::CLI::Yardoc.run(*args)
29
+ rescue Errno::EACCES => e
30
+ dirname = File.dirname e.message.split("-")[1].strip
31
+ raise Gem::FilePermissionError, dirname
32
+ rescue => ex
33
+ alert_error "While generating documentation for #{@spec.full_name}"
34
+ ui.errs.puts "... MESSAGE: #{ex}"
35
+ ui.errs.puts "... YARDOC args: #{args.join(' ')}"
36
+ ui.errs.puts "\t#{ex.backtrace.join("\n\t")}" if Gem.configuration.backtrace
37
+ ui.errs.puts "(continuing with the rest of the installation)"
38
+ ensure
39
+ Dir.chdir(old_pwd)
40
+ end
41
+
42
+ begin undef setup_rdoc; rescue NameError; nil end
43
+ def setup_rdoc
44
+ if File.exist?(@doc_dir) && !File.writable?(@doc_dir)
45
+ raise Gem::FilePermissionError, @doc_dir
46
+ end
47
+
48
+ FileUtils.mkdir_p @doc_dir unless File.exist?(@doc_dir)
49
+
50
+ self.class.load_rdoc if @spec.has_rdoc?
51
+ self.class.load_yardoc if @spec.has_yardoc?
52
+ end
53
+
54
+ def install_yardoc
55
+ rdoc_dir = File.join(@doc_dir, 'rdoc')
56
+
57
+ FileUtils.rm_rf rdoc_dir
58
+
59
+ say "Installing YARD documentation for #{@spec.full_name}..."
60
+ run_yardoc '-o', rdoc_dir
61
+ end
62
+
63
+ def install_ri_yard
64
+ install_ri_yard_orig if @spec.has_rdoc?
65
+ return if @spec.has_rdoc? == false
66
+ return if @spec.has_yardoc?
67
+
68
+ self.class.load_yardoc
69
+ say "Building YARD (yri) index for #{@spec.full_name}..."
70
+ run_yardoc '-c', '-n'
71
+ end
72
+
73
+ begin
74
+ alias install_ri_yard_orig install_ri
75
+ alias install_ri install_ri_yard
76
+ rescue NameError; nil end
77
+
78
+ def install_rdoc_yard
79
+ if @spec.has_rdoc?
80
+ install_rdoc_yard_orig
81
+ elsif @spec.has_yardoc?
82
+ install_yardoc
83
+ end
84
+ end
85
+
86
+ begin
87
+ alias install_rdoc_yard_orig install_rdoc
88
+ alias install_rdoc install_rdoc_yard
89
+ rescue NameError; nil end
90
+ end
@@ -0,0 +1,197 @@
1
+ # frozen_string_literal: true
2
+ require 'rubygems'
3
+ require 'rubygems/user_interaction'
4
+ require 'fileutils'
5
+
6
+ ##
7
+ # Gem::YARDoc provides methods to generate YARDoc and yri data for installed gems
8
+ # upon gem installation.
9
+ #
10
+ # This file is automatically required by RubyGems 1.9 and newer.
11
+
12
+ module YARD
13
+ class RubygemsHook
14
+ include Gem::UserInteraction
15
+ extend Gem::UserInteraction
16
+
17
+ @yard_version = nil
18
+
19
+ ##
20
+ # Force installation of documentation?
21
+
22
+ attr_accessor :force
23
+
24
+ ##
25
+ # Generate yard?
26
+
27
+ attr_accessor :generate_yard
28
+
29
+ ##
30
+ # Generate yri data?
31
+
32
+ attr_accessor :generate_yri
33
+
34
+ class << self
35
+ ##
36
+ # Loaded version of YARD. Set by ::load_yard
37
+
38
+ attr_reader :yard_version
39
+ end
40
+
41
+ ##
42
+ # Post installs hook that generates documentation for each specification in
43
+ # +specs+
44
+
45
+ def self.generation_hook(installer, specs)
46
+ start = Time.now
47
+ types = installer.document
48
+
49
+ generate_yard = types.include?('yardoc') || types.include?('yard')
50
+ generate_yri = types.include? 'yri'
51
+
52
+ specs.each do |spec|
53
+ gen_yard = generate_yard
54
+ gen_yri = generate_yri
55
+ gen_yri = false if gen_yard # never generate both, no need
56
+ unless types.empty? # --no-document is not in effect
57
+ # look at spec.metadata['yard.run'] for override
58
+ run_yard = spec.metadata['yard.run']
59
+ gen_yard = true if run_yard && run_yard != 'yri'
60
+ gen_yri = true if run_yard == 'yri'
61
+ end
62
+
63
+ new(spec, gen_yard, gen_yri).generate
64
+ end
65
+
66
+ return unless generate_yard || generate_yri
67
+
68
+ duration = (Time.now - start).to_i
69
+ names = specs.map(&:name).join ', '
70
+
71
+ say "Done installing documentation for #{names} after #{duration} seconds"
72
+ end
73
+
74
+ ##
75
+ # Pre uninstalls hook that removes documentation
76
+ #
77
+
78
+ def self.removal_hook(uninstaller)
79
+ new(uninstaller.spec).remove
80
+ end
81
+
82
+ ##
83
+ # Loads the YARD generator
84
+
85
+ def self.load_yard
86
+ return if @yard_version
87
+
88
+ require 'yard'
89
+
90
+ @yard_version = Gem::Version.new ::YARD::VERSION
91
+ end
92
+
93
+ def initialize(spec, generate_yard = false, generate_yri = true)
94
+ @doc_dir = spec.doc_dir
95
+ @force = false
96
+ @spec = spec
97
+
98
+ @generate_yard = generate_yard
99
+ @generate_yri = generate_yri
100
+
101
+ @yard_dir = spec.doc_dir('yard')
102
+ @yri_dir = spec.doc_dir('.yardoc')
103
+ end
104
+
105
+ def run_yardoc(*args)
106
+ args << '--quiet' unless Gem.configuration.really_verbose
107
+ args << '--backtrace' if Gem.configuration.backtrace
108
+ unless File.file?(File.join(@spec.full_gem_path, '.yardopts'))
109
+ args << @spec.require_paths
110
+ unless @spec.extra_rdoc_files.empty?
111
+ args << '-'
112
+ args += @spec.extra_rdoc_files
113
+ end
114
+ end
115
+ args = args.flatten.map(&:to_s)
116
+
117
+ Dir.chdir(@spec.full_gem_path) do
118
+ YARD::CLI::Yardoc.run(*args)
119
+ end
120
+ rescue Errno::EACCES => e
121
+ dirname = File.dirname e.message.split("-")[1].strip
122
+ raise Gem::FilePermissionError, dirname
123
+ rescue => ex
124
+ alert_error "While generating documentation for #{@spec.full_name}"
125
+ ui.errs.puts "... MESSAGE: #{ex}"
126
+ ui.errs.puts "... YARDOC args: #{args.join(' ')}"
127
+ ui.errs.puts "\t#{ex.backtrace.join("\n\t")}" if Gem.configuration.backtrace
128
+ ui.errs.puts "(continuing with the rest of the installation)"
129
+ end
130
+
131
+ def install_yard
132
+ FileUtils.rm_rf @yard_dir
133
+
134
+ say "Installing YARD documentation for #{@spec.full_name}..."
135
+ run_yardoc '--no-progress', '--db', @yri_dir, '-o', @yard_dir
136
+ end
137
+
138
+ def install_yri
139
+ FileUtils.rm_rf @yri_dir
140
+
141
+ say "Building YARD (yri) index for #{@spec.full_name}..."
142
+ run_yardoc '--no-progress', '-c', '-n', '--db', @yri_dir
143
+ end
144
+
145
+ ##
146
+ # Generates YARD and yri data
147
+
148
+ def generate
149
+ return if @spec.default_gem?
150
+ return unless @generate_yri || @generate_yard
151
+
152
+ setup
153
+
154
+ install_yri if @generate_yri && (@force || !File.exist?(@yri_dir))
155
+
156
+ install_yard if @generate_yard && (@force || !File.exist?(@yard_dir))
157
+ end
158
+
159
+ ##
160
+ # Prepares the spec for documentation generation
161
+
162
+ def setup
163
+ self.class.load_yard
164
+
165
+ if File.exist?(@doc_dir)
166
+ raise Gem::FilePermissionError, @doc_dir unless File.writable?(@doc_dir)
167
+ else
168
+ FileUtils.mkdir_p @doc_dir
169
+ end
170
+ end
171
+
172
+ def uninstall_yard
173
+ if File.exist?(@yard_dir)
174
+ raise Gem::FilePermissionError, @yard_dir unless File.writable?(@yard_dir)
175
+ FileUtils.rm_rf @yard_dir
176
+ end
177
+ end
178
+
179
+ def uninstall_yri
180
+ if File.exist?(@yri_dir)
181
+ raise Gem::FilePermissionError, @yri_dir unless File.writable?(@yri_dir)
182
+ FileUtils.rm_rf @yri_dir
183
+ end
184
+ end
185
+
186
+ ##
187
+ # Removes YARD and yri data
188
+
189
+ def remove
190
+ uninstall_yri
191
+ uninstall_yard
192
+ end
193
+ end
194
+ end
195
+
196
+ Gem.done_installing(&YARD::RubygemsHook.method(:generation_hook))
197
+ Gem.pre_uninstall(&YARD::RubygemsHook.method(:removal_hook))
@@ -0,0 +1,50 @@
1
+ # frozen_string_literal: true
2
+ require 'rubygems/specification'
3
+
4
+ class Gem::Specification
5
+ # @since 0.5.3
6
+ def has_yardoc=(value)
7
+ @has_rdoc = value ? 'yard' : false
8
+ end
9
+
10
+ def has_yardoc
11
+ @has_rdoc == 'yard'
12
+ end
13
+
14
+ undef has_rdoc? if method_defined?(:has_rdoc?)
15
+ def has_rdoc?
16
+ (@has_rdoc ||= true) && @has_rdoc != 'yard'
17
+ end
18
+
19
+ alias has_yardoc? has_yardoc
20
+
21
+ # has_rdoc should not be ignored!
22
+ if respond_to?(:overwrite_accessor)
23
+ overwrite_accessor(:has_rdoc) { @has_rdoc ||= true }
24
+ overwrite_accessor(:has_rdoc=) {|v| @has_rdoc = v }
25
+ else
26
+ attr_accessor :has_rdoc
27
+ end
28
+
29
+ if defined?(Gem::VERSION) && Gem::VERSION >= '1.7.'
30
+ def _dump_with_rdoc(limit)
31
+ dmp = _dump_without_rdoc(limit)
32
+ dmp[15] = @has_rdoc if dmp[15] == true
33
+ dmp
34
+ end
35
+ alias _dump_without_rdoc _dump
36
+ alias _dump _dump_with_rdoc
37
+
38
+ if class_variable_defined?(:@@default_value)
39
+ if @@default_value.frozen?
40
+ t = @@default_value.dup
41
+ t[:has_rdoc] = true
42
+ @@default_value = t.freeze
43
+ else
44
+ @@default_value[:has_rdoc] = true
45
+ end
46
+ end
47
+ @@attributes << 'has_rdoc' if class_variable_defined?(:@@attributes)
48
+ @@nil_attributes << 'has_rdoc' if class_variable_defined?(:@@nil_attributes)
49
+ end
50
+ end