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,203 @@
1
+ # frozen_string_literal: true
2
+ module YARD
3
+ module Server
4
+ module Commands
5
+ # This is the base command class used to implement custom commands for
6
+ # a server. A command will be routed to by the {Router} class and return
7
+ # a Rack-style response.
8
+ #
9
+ # == Attribute Initializers
10
+ # All attributes can be initialized via options passed into the {#initialize}
11
+ # method. When creating a custom command, the {Adapter#options} will
12
+ # automatically be mapped to attributes by the same name on your class.
13
+ #
14
+ # class MyCommand < Base
15
+ # attr_accessor :myattr
16
+ # end
17
+ #
18
+ # Adapter.new(libs, {:myattr => 'foo'}).start
19
+ #
20
+ # # when a request comes in, cmd.myattr == 'foo'
21
+ #
22
+ # == Subclassing Notes
23
+ # To implement a custom command, override the {#run} method, not {#call}.
24
+ # In your implementation, you should set the body and status for requests.
25
+ # See details in the +#run+ method documentation.
26
+ #
27
+ # Note that if your command deals directly with libraries, you should
28
+ # consider subclassing the more specific {LibraryCommand} class instead.
29
+ #
30
+ # @abstract
31
+ # @see #run
32
+ class Base
33
+ include StaticCaching
34
+
35
+ # @group Basic Command and Adapter Options
36
+
37
+ # @return [Hash] the options passed to the command's constructor
38
+ attr_accessor :command_options
39
+
40
+ # @return [Adapter] the server adapter
41
+ attr_accessor :adapter
42
+
43
+ # @return [Boolean] whether to cache
44
+ attr_accessor :caching
45
+
46
+ # @group Attributes Set Per Request
47
+
48
+ # @return [Rack::Request] request object
49
+ attr_accessor :request
50
+
51
+ # @return [String] the path after the command base URI
52
+ attr_accessor :path
53
+
54
+ # @return [Hash{String => String}] response headers
55
+ attr_accessor :headers
56
+
57
+ # @return [Numeric] status code. Defaults to 200 per request
58
+ attr_accessor :status
59
+
60
+ # @return [String] the response body. Defaults to empty string.
61
+ attr_accessor :body
62
+
63
+ # @group Instance Method Summary
64
+
65
+ # Creates a new command object, setting attributes named by keys
66
+ # in the options hash. After initialization, the options hash
67
+ # is saved in {#command_options} for further inspection.
68
+ #
69
+ # @example Creating a Command
70
+ # cmd = DisplayObjectCommand.new(:caching => true, :library => mylib)
71
+ # cmd.library # => mylib
72
+ # cmd.command_options # => {:caching => true, :library => mylib}
73
+ # @param [Hash] opts the options hash, saved to {#command_options}
74
+ # after initialization.
75
+ def initialize(opts = {})
76
+ opts.each do |key, value|
77
+ send("#{key}=", value) if respond_to?("#{key}=")
78
+ end
79
+ self.command_options = opts
80
+ end
81
+
82
+ # The main method called by a router with a request object.
83
+ #
84
+ # @note This command should not be overridden by subclasses. Implement
85
+ # the callback method {#run} instead.
86
+ # @param [Adapter Dependent] request the request object
87
+ # @return [Array(Numeric,Hash,Array<String>)] a Rack-style response
88
+ # of status, headers, and body wrapped in an array.
89
+ def call(request)
90
+ self.request = request
91
+ self.path ||= File.cleanpath(request.path_info[1..-1])
92
+ self.headers = {'Content-Type' => 'text/html'}
93
+ self.body = ''
94
+ self.status = 200
95
+ add_cache_control
96
+ begin
97
+ run
98
+ rescue FinishRequest
99
+ nil # noop
100
+ rescue NotFoundError => e
101
+ self.body = e.message if e.message != e.class.to_s
102
+ not_found
103
+ end
104
+
105
+ # keep this to support commands setting status manually.
106
+ not_found if status == 404
107
+
108
+ [status, headers, body.is_a?(Array) ? body : [body]]
109
+ end
110
+
111
+ # @group Abstract Methods
112
+
113
+ # Subclass this method to implement a custom command. This method
114
+ # should set the {#status} and {#body}, and optionally modify the
115
+ # {#headers}. Note that +#status+ defaults to 200.
116
+ #
117
+ # @example A custom command
118
+ # class ErrorCommand < Base
119
+ # def run
120
+ # self.body = 'ERROR! The System is down!'
121
+ # self.status = 500
122
+ # self.headers['Content-Type'] = 'text/plain'
123
+ # end
124
+ # end
125
+ #
126
+ # @abstract
127
+ # @return [void]
128
+ def run
129
+ raise NotImplementedError
130
+ end
131
+
132
+ protected
133
+
134
+ # @group Helper Methods
135
+
136
+ # Renders a specific object if provided, or a regular template rendering
137
+ # if object is not provided.
138
+ #
139
+ # @todo This method is dependent on +#options+, it should be in {LibraryCommand}.
140
+ # @param [CodeObjects::Base, nil] object calls {CodeObjects::Base#format} if
141
+ # an object is provided, or {Templates::Engine.render} if object is nil. Both
142
+ # receive +#options+ as an argument.
143
+ # @return [String] the resulting output to display
144
+ def render(object = nil)
145
+ case object
146
+ when CodeObjects::Base
147
+ cache object.format(options)
148
+ when nil
149
+ cache Templates::Engine.render(options)
150
+ else
151
+ cache object
152
+ end
153
+ end
154
+
155
+ # Override this method to implement custom caching mechanisms for
156
+ #
157
+ # @example Caching to memory
158
+ # $memory_cache = {}
159
+ # def cache(data)
160
+ # $memory_cache[path] = data
161
+ # end
162
+ # @param [String] data the data to cache
163
+ # @return [String] the same cached data (for chaining)
164
+ # @see StaticCaching
165
+ def cache(data)
166
+ super if caching
167
+ self.body = data
168
+ end
169
+
170
+ # Sets the body and headers for a 404 response. Does not modify the
171
+ # body if already set.
172
+ #
173
+ # @return [void]
174
+ def not_found
175
+ self.status = 404
176
+ return unless body.empty?
177
+ self.body = "Not found: #{request.path}"
178
+ headers['Content-Type'] = 'text/plain'
179
+ headers['X-Cascade'] = 'pass'
180
+ headers['Cache-Control'] = 'nocache'
181
+ end
182
+
183
+ # Sets the headers and status code for a redirection to a given URL
184
+ # @param [String] url the URL to redirect to
185
+ # @raise [FinishRequest] causes the request to terminate.
186
+ def redirect(url)
187
+ headers['Location'] = url
188
+ self.status = 302
189
+ raise FinishRequest
190
+ end
191
+
192
+ private
193
+
194
+ # Add a conservative cache control policy to reduce load on
195
+ # requests served with "?1234567890" style timestamp query strings.
196
+ def add_cache_control
197
+ return if request.query_string.to_i == 0
198
+ headers['Cache-Control'] ||= 'public, max-age=300'
199
+ end
200
+ end
201
+ end
202
+ end
203
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+ module YARD
3
+ module Server
4
+ module Commands
5
+ # Displays a README or extra file.
6
+ #
7
+ # @todo Implement better support for detecting binary (image) filetypes
8
+ class DisplayFileCommand < LibraryCommand
9
+ attr_accessor :index
10
+
11
+ def run
12
+ filename = File.cleanpath(File.join(library.source_path, path))
13
+ raise NotFoundError unless File.file?(filename)
14
+ if filename =~ /\.(jpe?g|gif|png|bmp|svg)$/i
15
+ headers['Content-Type'] = StaticFileCommand::DefaultMimeTypes[$1.downcase] || 'text/html'
16
+ render File.read_binary(filename)
17
+ else
18
+ file = CodeObjects::ExtraFileObject.new(filename)
19
+ options.update :object => Registry.root,
20
+ :type => :layout,
21
+ :file => file,
22
+ :index => index ? true : false
23
+ render
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,65 @@
1
+ # frozen_string_literal: true
2
+ module YARD
3
+ module Server
4
+ module Commands
5
+ # Displays documentation for a specific object identified by the path
6
+ class DisplayObjectCommand < LibraryCommand
7
+ include DocServerHelper
8
+
9
+ def run
10
+ if path.empty?
11
+ if options.readme
12
+ filename = options.readme.filename
13
+ opts = adapter.options.merge(
14
+ :index => true, :library => library,
15
+ :path => filename.sub(%r{^#{library.source_path.to_s}/}, '')
16
+ )
17
+ self.status, self.headers, self.body =
18
+ *DisplayFileCommand.new(opts).call(request)
19
+ cache(body)
20
+ return
21
+ else
22
+ self.path = 'index'
23
+ end
24
+ end
25
+ return index if path == 'index'
26
+
27
+ object = Registry.at(object_path)
28
+ if object
29
+ options.update(:type => :layout)
30
+ render(object)
31
+ else
32
+ not_found
33
+ end
34
+ end
35
+
36
+ def index
37
+ Registry.load_all
38
+
39
+ options.update(
40
+ :object => '_index.html',
41
+ :objects => Registry.all(:module, :class),
42
+ :type => :layout
43
+ )
44
+ render
45
+ end
46
+
47
+ def not_found
48
+ super
49
+ self.body = "Could not find object: #{object_path}"
50
+ end
51
+
52
+ private
53
+
54
+ def object_path
55
+ return @object_path if @object_path
56
+ if path == "toplevel"
57
+ @object_path = :root
58
+ else
59
+ @object_path = path.sub(':', '#').gsub('/', '::').sub(/^toplevel\b/, '').sub(/\.html$/, '')
60
+ end
61
+ end
62
+ end
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+ module YARD
3
+ module Server
4
+ module Commands
5
+ # Displays an object wrapped in frames
6
+ class FramesCommand < DisplayObjectCommand
7
+ def run
8
+ options.update(:frames => true, :type => :fulldoc)
9
+ tpl = fulldoc_template
10
+ tpl.generate_frameset
11
+ cache(tpl.contents)
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,187 @@
1
+ # frozen_string_literal: true
2
+ require 'thread'
3
+
4
+ module YARD
5
+ module Server
6
+ module Commands
7
+ class LibraryOptions < CLI::YardocOptions
8
+ def adapter; @command.adapter end
9
+ def library; @command.library end
10
+ def single_library; @command.single_library end
11
+ def serializer; @command.serializer end
12
+ def serialize; false end
13
+
14
+ attr_accessor :command
15
+ attr_accessor :frames
16
+
17
+ def each(&block)
18
+ super(&block)
19
+ yield(:adapter, adapter)
20
+ yield(:library, library)
21
+ yield(:single_library, single_library)
22
+ yield(:serializer, serializer)
23
+ end
24
+ end
25
+
26
+ # This is the base command for all commands that deal directly with libraries.
27
+ # Some commands do not, but most (like {DisplayObjectCommand}) do. If your
28
+ # command deals with libraries directly, subclass this class instead.
29
+ # See {Base} for notes on how to subclass a command.
30
+ #
31
+ # @abstract
32
+ class LibraryCommand < Base
33
+ begin
34
+ Process.fork { }
35
+ CAN_FORK = true
36
+ rescue Exception # rubocop:disable Lint/RescueException
37
+ CAN_FORK = false
38
+ end
39
+
40
+ # @return [LibraryVersion] the object containing library information
41
+ attr_accessor :library
42
+
43
+ # @return [LibraryOptions] default options for the library
44
+ attr_accessor :options
45
+
46
+ # @return [Serializers::Base] the serializer used to perform file linking
47
+ attr_accessor :serializer
48
+
49
+ # @return [Boolean] whether router should route for multiple libraries
50
+ attr_accessor :single_library
51
+
52
+ # @return [Boolean] whether to reparse data
53
+ attr_accessor :incremental
54
+
55
+ # @return [Boolean] whether or not this adapter calls +fork+ when serving
56
+ # library requests. Defaults to false.
57
+ attr_accessor :use_fork
58
+
59
+ # Needed to synchronize threads in {#setup_yardopts}
60
+ # @private
61
+ @@library_chdir_lock = Mutex.new
62
+
63
+ def initialize(opts = {})
64
+ super
65
+ self.serializer = DocServerSerializer.new
66
+ end
67
+
68
+ def call(request)
69
+ if can_fork?
70
+ call_with_fork(request) { super }
71
+ else
72
+ begin
73
+ save_default_template_info
74
+ call_without_fork(request) { super }
75
+ ensure
76
+ restore_template_info
77
+ end
78
+ end
79
+ end
80
+
81
+ private
82
+
83
+ def call_without_fork(request)
84
+ self.request = request
85
+ self.options = LibraryOptions.new
86
+ options.reset_defaults
87
+ options.command = self
88
+ setup_library
89
+ options.title = "Documentation for #{library.name} " +
90
+ (library.version ? '(' + library.version + ')' : '')
91
+ yield
92
+ rescue LibraryNotPreparedError
93
+ not_prepared
94
+ end
95
+
96
+ def call_with_fork(request, &block)
97
+ IO.pipe(:binmode => true) do |reader, writer|
98
+ fork do
99
+ log.debug "[pid=#{Process.pid}] fork serving: #{request.path}"
100
+ reader.close
101
+ writer.print(Marshal.dump(call_without_fork(request, &block)))
102
+ end
103
+
104
+ writer.close
105
+ Marshal.load(reader.read)
106
+ end
107
+ end
108
+
109
+ def can_fork?
110
+ CAN_FORK && use_fork
111
+ end
112
+
113
+ def save_default_template_info
114
+ @old_template_paths = Templates::Engine.template_paths.dup
115
+ @old_extra_includes = Templates::Template.extra_includes.dup
116
+ end
117
+
118
+ def restore_template_info
119
+ Templates::Engine.template_paths = @old_template_paths
120
+ Templates::Template.extra_includes = @old_extra_includes
121
+ end
122
+
123
+ def setup_library
124
+ library.prepare! if request.xhr? && request.query['process']
125
+ load_yardoc
126
+ setup_yardopts
127
+ true
128
+ end
129
+
130
+ def setup_yardopts
131
+ @@library_chdir_lock.synchronize do
132
+ Dir.chdir(library.source_path) do
133
+ yardoc = CLI::Yardoc.new
134
+ if incremental
135
+ yardoc.run('-c', '-n', '--no-stats')
136
+ else
137
+ yardoc.parse_arguments
138
+ end
139
+ yardoc.send(:verify_markup_options)
140
+ yardoc.options.delete(:serializer)
141
+ yardoc.options.delete(:serialize)
142
+ options.update(yardoc.options.to_hash)
143
+ end
144
+ end
145
+ end
146
+
147
+ def load_yardoc
148
+ raise LibraryNotPreparedError unless library.ready?
149
+ if Thread.current[:__yard_last_yardoc__] == library.yardoc_file
150
+ log.debug "Reusing yardoc file: #{library.yardoc_file}"
151
+ return
152
+ end
153
+ Registry.clear
154
+ Templates::ErbCache.clear!
155
+ Registry.load_yardoc(library.yardoc_file)
156
+ Thread.current[:__yard_last_yardoc__] = library.yardoc_file
157
+ end
158
+
159
+ def not_prepared
160
+ options.update(:template => :doc_server, :type => :processing)
161
+ self.caching = false
162
+ self.status = 202
163
+ self.body = render
164
+ self.headers = {'Content-Type' => 'text/html'}
165
+ [status, headers, [body]]
166
+ end
167
+
168
+ # Hack to load a custom fulldoc template object that does
169
+ # not do any rendering/generation. We need this to access the
170
+ # generate_*_list methods.
171
+ def fulldoc_template
172
+ tplopts = [options.template, :fulldoc, options.format]
173
+ tplclass = Templates::Engine.template(*tplopts)
174
+ obj = Object.new.extend(tplclass)
175
+ class << obj; define_method(:init) {} end
176
+ obj.class = tplclass
177
+ obj.send(:initialize, options)
178
+ class << obj
179
+ attr_reader :contents
180
+ define_method(:asset) {|_, contents| @contents = contents }
181
+ end
182
+ obj
183
+ end
184
+ end
185
+ end
186
+ end
187
+ end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+ module YARD
3
+ module Server
4
+ module Commands
5
+ class LibraryIndexOptions < CLI::YardocOptions
6
+ attr_accessor :adapter, :libraries
7
+ default_attr :template, :doc_server
8
+ default_attr :type, :library_list
9
+ default_attr :serialize, false
10
+ end
11
+
12
+ # Returns the index of libraries served by the server.
13
+ class LibraryIndexCommand < Base
14
+ attr_accessor :options
15
+
16
+ def run
17
+ return unless path.empty?
18
+
19
+ self.options = LibraryIndexOptions.new
20
+ options.adapter = adapter
21
+ options.libraries = adapter.libraries
22
+ options.reset_defaults
23
+ render
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+ module YARD
3
+ module Server
4
+ module Commands
5
+ # Returns a list of objects of a specific type
6
+ class ListCommand < LibraryCommand
7
+ include Templates::Helpers::BaseHelper
8
+
9
+ def run
10
+ Registry.load_all
11
+ options.update(:objects => run_verifier(Registry.all(:class, :module)))
12
+ list_type = request.path.split('/').last
13
+ meth = "generate_#{list_type}_list"
14
+ tpl = fulldoc_template
15
+ if tpl.respond_to?(meth)
16
+ tpl.send(meth)
17
+ cache(tpl.contents)
18
+ else
19
+ not_found
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+ module YARD
3
+ module Server
4
+ module Commands
5
+ # Serves requests from the root of the server
6
+ class RootRequestCommand < Base
7
+ include StaticFileHelpers
8
+
9
+ def run
10
+ static_template_file? || favicon? || not_found
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,79 @@
1
+ # frozen_string_literal: true
2
+ module YARD
3
+ module Server
4
+ module Commands
5
+ # Performs a search over the objects inside of a library and returns
6
+ # the results as HTML or plaintext
7
+ class SearchCommand < LibraryCommand
8
+ include Templates::Helpers::BaseHelper
9
+ include Templates::Helpers::ModuleHelper
10
+ include DocServerHelper
11
+
12
+ attr_accessor :results, :query
13
+
14
+ def run
15
+ Registry.load_all
16
+ self.query = request.query['q']
17
+ redirect(abs_url(adapter.router.docs_prefix, single_library ? library : '')) if query.nil? || query =~ /\A\s*\Z/
18
+
19
+ found = Registry.at(query)
20
+ redirect(url_for(found)) if found
21
+
22
+ search_for_object
23
+ request.xhr? ? serve_xhr : serve_normal
24
+ end
25
+
26
+ def visible_results
27
+ results[0, 10]
28
+ end
29
+
30
+ private
31
+
32
+ def url_for(object)
33
+ abs_url(base_path(router.docs_prefix),
34
+ serializer.serialized_path(object))
35
+ end
36
+
37
+ def serve_xhr
38
+ headers['Content-Type'] = 'text/plain'
39
+ self.body = visible_results.map {|o|
40
+ [(o.type == :method ? o.name(true) : o.name).to_s,
41
+ o.path,
42
+ o.namespace.root? ? '' : o.namespace.path,
43
+ url_for(o)].join(",")
44
+ }.join("\n")
45
+ end
46
+
47
+ def serve_normal
48
+ options.update(
49
+ :visible_results => visible_results,
50
+ :query => query,
51
+ :results => results,
52
+ :template => :doc_server,
53
+ :type => :search
54
+ )
55
+ self.body = Templates::Engine.render(options)
56
+ end
57
+
58
+ def search_for_object
59
+ # rubocop:disable Style/MultilineBlockChain
60
+ self.results = run_verifier(Registry.all).select do |o|
61
+ o.path.downcase.include?(query.downcase)
62
+ end.reject do |o|
63
+ name = (o.type == :method ? o.name(true) : o.name).to_s.downcase
64
+ !name.include?(query.downcase) ||
65
+ case o.type
66
+ when :method
67
+ !(query =~ /[#.]/) && query.include?("::")
68
+ when :class, :module, :constant, :class_variable
69
+ query =~ /[#.]/
70
+ end
71
+ end.sort_by do |o|
72
+ name = (o.type == :method ? o.name(true) : o.name).to_s
73
+ name.length.to_f / query.length.to_f
74
+ end
75
+ end
76
+ end
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+ module YARD
3
+ module Server
4
+ module Commands
5
+ # Serves static content when no other router matches a request
6
+ class StaticFileCommand < LibraryCommand
7
+ include StaticFileHelpers
8
+
9
+ DefaultMimeTypes['js'] = 'text/javascript'
10
+
11
+ # Defines the paths used to search for static assets. To define an
12
+ # extra path, use {YARD::Server.register_static_path} rather than
13
+ # modifying this constant directly. Also note that files in the
14
+ # document root will always take precedence over these paths.
15
+ STATIC_PATHS = []
16
+
17
+ def run
18
+ static_template_file? || not_found
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end