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,84 @@
1
+ # frozen_string_literal: true
2
+ module YARD
3
+ module CLI
4
+ # @since 0.6.0
5
+ class Gems < Command
6
+ def initialize
7
+ @rebuild = false
8
+ @gems = []
9
+ end
10
+
11
+ def description; "Builds YARD index for gems" end
12
+
13
+ # Runs the commandline utility, parsing arguments and generating
14
+ # YARD indexes for gems.
15
+ #
16
+ # @param [Array<String>] args the list of arguments
17
+ # @return [void]
18
+ def run(*args)
19
+ require 'rubygems'
20
+ optparse(*args)
21
+ build_gems
22
+ end
23
+
24
+ private
25
+
26
+ # Builds .yardoc files for all non-existing gems
27
+ def build_gems
28
+ require 'rubygems'
29
+ @gems.each do |spec|
30
+ ver = "= #{spec.version}"
31
+ dir = Registry.yardoc_file_for_gem(spec.name, ver)
32
+ if dir && File.directory?(dir) && !@rebuild
33
+ log.debug "#{spec.name} index already exists at '#{dir}'"
34
+ else
35
+ yfile = Registry.yardoc_file_for_gem(spec.name, ver, true)
36
+ next unless yfile
37
+ next unless File.directory?(spec.full_gem_path)
38
+ Registry.clear
39
+ Dir.chdir(spec.full_gem_path) do
40
+ log.info "Building yardoc index for gem: #{spec.full_name}"
41
+ Yardoc.run('--no-stats', '-n', '-b', yfile)
42
+ end
43
+ end
44
+ end
45
+ end
46
+
47
+ def add_gems(gems)
48
+ 0.step(gems.size - 1, 2) do |index|
49
+ gem = gems[index]
50
+ ver_require = gems[index + 1] || ">= 0"
51
+ specs = YARD::GemIndex.find_all_by_name(gem, ver_require)
52
+ if specs.empty?
53
+ log.warn "#{gem} #{ver_require} could not be found in RubyGems index"
54
+ else
55
+ @gems += specs
56
+ end
57
+ end
58
+ end
59
+
60
+ # Parses options
61
+ def optparse(*args)
62
+ opts = OptionParser.new
63
+ opts.banner = 'Usage: yard gems [options] [gem_name [version]]'
64
+ opts.separator ""
65
+ opts.separator "#{description}. If no gem_name is given,"
66
+ opts.separator "all gems are built."
67
+ opts.separator ""
68
+ opts.on('--rebuild', 'Rebuilds index') do
69
+ @rebuild = true
70
+ end
71
+
72
+ common_options(opts)
73
+ parse_options(opts, args)
74
+ add_gems(args)
75
+
76
+ if !args.empty? && @gems.empty?
77
+ log.error "No specified gems could be found for command"
78
+ elsif @gems.empty?
79
+ @gems += YARD::GemIndex.all if @gems.empty?
80
+ end
81
+ end
82
+ end
83
+ end
84
+ end
@@ -0,0 +1,125 @@
1
+ # frozen_string_literal: true
2
+ module YARD
3
+ module CLI
4
+ # Options to pass to the {Graph} CLI.
5
+ class GraphOptions < Templates::TemplateOptions
6
+ # @return [:dot] the default output format
7
+ default_attr :format, :dot
8
+
9
+ # @return [Boolean] whether to list the full class diagram
10
+ attr_accessor :full
11
+
12
+ # @return [Boolean] whether to show the object dependencies
13
+ attr_accessor :dependencies
14
+
15
+ # @return [String] any contents to pass to the digraph
16
+ attr_accessor :contents
17
+ end
18
+
19
+ # A command-line utility to generate Graphviz graphs from
20
+ # a set of objects
21
+ #
22
+ # @see Graph#run
23
+ # @since 0.6.0
24
+ class Graph < YardoptsCommand
25
+ # The options parsed out of the commandline.
26
+ # Default options are:
27
+ # :format => :dot
28
+ attr_reader :options
29
+
30
+ # The set of objects to include in the graph.
31
+ attr_reader :objects
32
+
33
+ # Creates a new instance of the command-line utility
34
+ def initialize
35
+ super
36
+ @use_document_file = false
37
+ @options = GraphOptions.new
38
+ options.reset_defaults
39
+ options.serializer = YARD::Serializers::StdoutSerializer.new
40
+ end
41
+
42
+ def description
43
+ "Graphs class diagram using Graphviz"
44
+ end
45
+
46
+ # Runs the command-line utility.
47
+ #
48
+ # @example
49
+ # grapher = Graph.new
50
+ # grapher.run('--private')
51
+ # @param [Array<String>] args each tokenized argument
52
+ def run(*args)
53
+ parse_arguments(*args)
54
+
55
+ contents = objects.map do |o|
56
+ o.format(options.merge(:serialize => false))
57
+ end.join("\n")
58
+ opts = {:type => :layout, :contents => contents}
59
+ options.update(opts)
60
+ Templates::Engine.render(options)
61
+ end
62
+
63
+ private
64
+
65
+ def unrecognized_option(err) end
66
+
67
+ # Parses commandline options.
68
+ # @param [Array<String>] args each tokenized argument
69
+ def optparse(*args)
70
+ visibilities = [:public]
71
+ opts = OptionParser.new
72
+
73
+ opts.separator ""
74
+ opts.separator "General Options:"
75
+
76
+ opts.on('-b', '--db FILE', 'Use a specified .yardoc db to load from or save to. (defaults to .yardoc)') do |yfile|
77
+ YARD::Registry.yardoc_file = yfile
78
+ end
79
+
80
+ opts.on('--full', 'Full class diagrams (show methods and attributes).') do
81
+ options[:full] = true
82
+ end
83
+
84
+ opts.on('-d', '--dependencies', 'Show mixins in dependency graph.') do
85
+ options[:dependencies] = true
86
+ end
87
+
88
+ opts.on('--no-public', "Don't show public methods. (default shows public)") do
89
+ visibilities.delete(:public)
90
+ end
91
+
92
+ opts.on('--protected', "Show or don't show protected methods. (default hides protected)") do
93
+ visibilities.push(:protected)
94
+ end
95
+
96
+ opts.on('--private', "Show or don't show private methods. (default hides private)") do
97
+ visibilities.push(:private)
98
+ end
99
+
100
+ opts.separator ""
101
+ opts.separator "Output options:"
102
+
103
+ opts.on('--dot [OPTIONS]', 'Send the results directly to `dot` with optional arguments.') do |dotopts|
104
+ options.serializer = Serializers::ProcessSerializer.new('dot ' + dotopts.to_s)
105
+ end
106
+
107
+ opts.on('-f', '--file [FILE]', 'Writes output to a file instead of stdout.') do |file|
108
+ options.serializer = Serializers::FileSystemSerializer.new(:basepath => '.', :extension => nil)
109
+ options.serializer.instance_eval "def serialized_path(object) #{file.inspect} end"
110
+ end
111
+
112
+ common_options(opts)
113
+ parse_options(opts, args)
114
+
115
+ Registry.load
116
+
117
+ expression = "#{visibilities.uniq.inspect}.include?(object.visibility)"
118
+ options.verifier = Verifier.new(expression)
119
+ @objects = args.first ?
120
+ args.map {|o| Registry.at(o) }.compact :
121
+ [Registry.root]
122
+ end
123
+ end
124
+ end
125
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+ module YARD
3
+ module CLI
4
+ # Handles help for commands
5
+ # @since 0.6.0
6
+ class Help < Command
7
+ def description; "Retrieves help for a command" end
8
+
9
+ def run(*args)
10
+ cmd = args.first && CommandParser.commands[args.first.to_sym]
11
+ if cmd
12
+ cmd.run('--help')
13
+ else
14
+ log.puts "Command #{args.first} not found." if args.first
15
+ CommandParser.run('--help')
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,70 @@
1
+ # frozen_string_literal: true
2
+ require "pathname"
3
+
4
+ module YARD
5
+ module CLI
6
+ # CLI command to support internationalization (a.k.a. i18n).
7
+ # I18n feature is based on gettext technology.
8
+ # This command generates .pot file from docstring and extra
9
+ # documentation.
10
+ #
11
+ # @since 0.8.0
12
+ # @todo Support msgminit and msgmerge features?
13
+ class I18n < Yardoc
14
+ def initialize
15
+ super
16
+ @options.serializer.basepath = "po/yard.pot"
17
+ end
18
+
19
+ def description
20
+ 'Generates .pot file from source code and extra documentation'
21
+ end
22
+
23
+ def run(*args)
24
+ if args.empty? || !args.first.nil?
25
+ # fail early if arguments are not valid
26
+ return unless parse_arguments(*args)
27
+ end
28
+
29
+ YARD.parse(files, excluded)
30
+
31
+ serializer = options.serializer
32
+ pot_file_path = Pathname.new(serializer.basepath).expand_path
33
+ pot_file_dir_path, pot_file_basename = pot_file_path.split
34
+ relative_base_path = Pathname.pwd.relative_path_from(pot_file_dir_path)
35
+ serializer.basepath = pot_file_dir_path.to_s
36
+ serializer.serialize(pot_file_basename.to_s,
37
+ generate_pot(relative_base_path.to_s))
38
+
39
+ true
40
+ end
41
+
42
+ private
43
+
44
+ def general_options(opts)
45
+ opts.banner = "Usage: yard i18n [options] [source_files [- extra_files]]"
46
+ opts.top.list.clear
47
+ opts.separator "(if a list of source files is omitted, "
48
+ opts.separator " {lib,app}/**/*.rb ext/**/*.{c,rb} is used.)"
49
+ opts.separator ""
50
+ opts.separator "Example: yard i18n -o yard.pot - FAQ LICENSE"
51
+ opts.separator " The above example outputs .pot file for files in"
52
+ opts.separator " lib/**/*.rb to yard.pot including the extra files"
53
+ opts.separator " FAQ and LICENSE."
54
+ opts.separator ""
55
+ opts.separator "A base set of options can be specified by adding a .yardopts"
56
+ opts.separator "file to your base path containing all extra options separated"
57
+ opts.separator "by whitespace."
58
+ super(opts)
59
+ end
60
+
61
+ def generate_pot(relative_base_path)
62
+ generator = YARD::I18n::PotGenerator.new(relative_base_path)
63
+ objects = run_verifier(all_objects)
64
+ generator.parse_objects(objects)
65
+ generator.parse_files(options.files || [])
66
+ generator.generate
67
+ end
68
+ end
69
+ end
70
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+ module YARD
3
+ module CLI
4
+ # Lists all constant and method names in the codebase. Uses {Yardoc} --list.
5
+ class List < Command
6
+ def description; 'Lists all constant and methods. Uses `yard doc --list`' end
7
+
8
+ # Runs the commandline utility, parsing arguments and displaying a
9
+ # list of objects
10
+ #
11
+ # @param [Array<String>] args the list of arguments.
12
+ # @return [void]
13
+ def run(*args)
14
+ if args.include?('--help')
15
+ log.puts "Usage: yard list [yardoc_options]"
16
+ log.puts "Takes the same arguments as yardoc. See yardoc --help"
17
+ else
18
+ Yardoc.run('-c', '--list', *args)
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+ module YARD
3
+ module CLI
4
+ # Lists all markup types
5
+ # @since 0.8.6
6
+ class MarkupTypes < Command
7
+ def description; 'Lists all available markup types and libraries' end
8
+
9
+ # Runs the commandline utility, parsing arguments and displaying a
10
+ # list of markup types
11
+ #
12
+ # @param [Array<String>] args the list of arguments.
13
+ # @return [void]
14
+ def run(*args) # rubocop:disable Lint/UnusedMethodArgument
15
+ log.puts "Available markup types for `doc' command:"
16
+ log.puts
17
+ types = Templates::Helpers::MarkupHelper::MARKUP_PROVIDERS
18
+ exts = Templates::Helpers::MarkupHelper::MARKUP_EXTENSIONS
19
+ types.sort_by {|name, _| name.to_s }.each do |name, providers|
20
+ log.puts "[#{name}]"
21
+ libs = providers.map {|p| p[:lib] }.compact
22
+ log.puts " Providers: #{libs.join(" ")}" unless libs.empty?
23
+ if exts[name]
24
+ log.puts " Extensions: #{exts[name].map {|e| ".#{e}" }.join(" ")}"
25
+ end
26
+
27
+ log.puts
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,266 @@
1
+ # frozen_string_literal: true
2
+
3
+ module YARD
4
+ module CLI
5
+ # A local documentation server
6
+ # @since 0.6.0
7
+ class Server < Command
8
+ # @return [Hash] a list of options to pass to the doc server
9
+ attr_accessor :options
10
+
11
+ # @return [Hash] a list of options to pass to the web server
12
+ attr_accessor :server_options
13
+
14
+ # @return [Hash] a list of library names and yardoc files to serve
15
+ attr_accessor :libraries
16
+
17
+ # @return [YARD::Server::Adapter] the adapter to use for loading the web server
18
+ attr_accessor :adapter
19
+
20
+ # @return [Array<String>] a list of scripts to load
21
+ # @since 0.6.2
22
+ attr_accessor :scripts
23
+
24
+ # @return [Array<String>] a list of template paths to register
25
+ # @since 0.6.2
26
+ attr_accessor :template_paths
27
+
28
+ # Creates a new instance of the Server command line utility
29
+ def initialize
30
+ super
31
+ self.scripts = []
32
+ self.template_paths = []
33
+ self.libraries = {}
34
+ self.options = SymbolHash.new(false).update(
35
+ :single_library => true,
36
+ :caching => false
37
+ )
38
+ self.server_options = {:Port => 8808}
39
+ end
40
+
41
+ def description
42
+ "Runs a local documentation server"
43
+ end
44
+
45
+ def run(*args)
46
+ optparse(*args)
47
+
48
+ select_adapter.setup
49
+ load_scripts
50
+ load_template_paths
51
+ adapter.new(libraries, options, server_options).start
52
+ end
53
+
54
+ private
55
+
56
+ def load_scripts
57
+ scripts.each {|file| load_script(file) }
58
+ end
59
+
60
+ def load_template_paths
61
+ return if YARD::Config.options[:safe_mode]
62
+
63
+ Templates::Engine.template_paths |= template_paths
64
+ end
65
+
66
+ def select_adapter
67
+ return adapter if adapter
68
+
69
+ require 'rubygems'
70
+ require 'rack'
71
+ self.adapter = YARD::Server::RackAdapter
72
+ rescue LoadError
73
+ self.adapter = YARD::Server::WebrickAdapter
74
+ end
75
+
76
+ def add_libraries(args)
77
+ (0...args.size).step(2) do |index|
78
+ library = args[index]
79
+ dir = args[index + 1]
80
+
81
+ libver = nil
82
+ if dir
83
+ if File.exist?(dir)
84
+ # Provided dir contains a .yardopts file
85
+ libver = create_library_version_if_yardopts_exist(library, dir)
86
+ libver ||= YARD::Server::LibraryVersion.new(library, nil, dir)
87
+ end
88
+ else
89
+ # Check if this dir contains a .yardopts file
90
+ pwd = Dir.pwd
91
+ libver = create_library_version_if_yardopts_exist(library, pwd)
92
+
93
+ # Check default location
94
+ yfile = File.join(pwd, Registry::DEFAULT_YARDOC_FILE)
95
+ libver ||= YARD::Server::LibraryVersion.new(library, nil, yfile)
96
+ end
97
+
98
+ # Register library
99
+ if libver
100
+ libver.yardoc_file = File.expand_path(libver.yardoc_file) if libver.yardoc_file
101
+ libver.source_path = File.expand_path(libver.source_path) if libver.source_path
102
+ libraries[library] ||= []
103
+ libraries[library] |= [libver]
104
+ else
105
+ log.warn "Cannot find yardoc db for #{library}: #{dir.inspect}"
106
+ end
107
+ end
108
+ end
109
+
110
+ # @param [String] library The library name.
111
+ # @param [String, nil] dir The argument provided on the CLI after the
112
+ # library name. Is supposed to point to either a project directory
113
+ # with a Yard options file, or a yardoc db.
114
+ # @return [LibraryVersion, nil]
115
+ def create_library_version_if_yardopts_exist(library, dir)
116
+ if dir
117
+ options_file = File.join(dir, Yardoc::DEFAULT_YARDOPTS_FILE)
118
+ if File.exist?(options_file)
119
+ # Found yardopts, extract db path
120
+ yfile = extract_db_from_options_file(options_file)
121
+ db = File.expand_path(yfile, dir)
122
+
123
+ # Create libver
124
+ libver = YARD::Server::LibraryVersion.new(library, nil, db)
125
+ libver.source_path = dir
126
+ libver
127
+ end
128
+ end
129
+ end
130
+
131
+ def add_gems
132
+ require 'rubygems'
133
+ YARD::GemIndex.each do |spec|
134
+ libraries[spec.name] ||= []
135
+ libraries[spec.name] |= [YARD::Server::LibraryVersion.new(spec.name, spec.version.to_s,
136
+ nil, :gem)]
137
+ end
138
+ end
139
+
140
+ def add_gems_from_gemfile(gemfile = nil)
141
+ require 'bundler'
142
+ gemfile ||= "Gemfile"
143
+ if File.exist?("#{gemfile}.lock")
144
+ Bundler::LockfileParser.new(File.read("#{gemfile}.lock")).specs.each do |spec|
145
+ libraries[spec.name] ||= []
146
+ libraries[spec.name] |= [YARD::Server::LibraryVersion.new(spec.name,
147
+ spec.version.to_s, nil, :gem)]
148
+ end
149
+ else
150
+ log.warn "Cannot find #{gemfile}.lock, ignoring --gemfile option"
151
+ end
152
+ rescue LoadError
153
+ log.error "Bundler not available, ignoring --gemfile option"
154
+ end
155
+
156
+ def optparse(*args)
157
+ opts = OptionParser.new
158
+ opts.banner = 'Usage: yard server [options] [[library yardoc_file] ...]'
159
+ opts.separator ''
160
+ opts.separator 'Example: yard server -m yard .yardoc ruby-core ../ruby/.yardoc'
161
+ opts.separator 'The above example serves documentation for YARD and Ruby-core'
162
+ opts.separator ''
163
+ opts.separator 'If no library/yardoc_file is specified, the server uses'
164
+ opts.separator 'the name of the current directory and `.yardoc` respectively'
165
+ opts.separator ''
166
+ opts.separator "General Options:"
167
+ opts.on('-m', '--multi-library', 'Serves documentation for multiple libraries') do
168
+ options[:single_library] = false
169
+ end
170
+ opts.on('-c', '--cache', 'Caches all documentation to document root (see --docroot)') do
171
+ options[:caching] = true
172
+ end
173
+ opts.on('-r', '--reload', 'Reparses the library code on each request') do
174
+ options[:incremental] = true
175
+ end
176
+ opts.on('-g', '--gems', 'Serves documentation for installed gems') do
177
+ add_gems
178
+ end
179
+ opts.on('-G', '--gemfile [GEMFILE]',
180
+ 'Serves documentation for gems from Gemfile') do |gemfile|
181
+ add_gems_from_gemfile(gemfile)
182
+ end
183
+ opts.on('-t', '--template-path PATH',
184
+ 'The template path to look for templates in. (used with -t).') do |path|
185
+ template_paths << path
186
+ end
187
+ opts.separator ''
188
+ opts.separator "Web Server Options:"
189
+ opts.on('-d', '--daemon', 'Daemonizes the server process') do
190
+ server_options[:daemonize] = true
191
+ end
192
+ opts.on('-B HOST', '--bind', 'The host address to bind to') do |host|
193
+ server_options[:Host] = host.to_s
194
+ end
195
+ opts.on('-p PORT', '--port', 'Serves documentation on PORT') do |port|
196
+ server_options[:Port] = port.to_i
197
+ end
198
+ opts.on('--docroot DOCROOT', 'Uses DOCROOT as document root') do |docroot|
199
+ server_options[:DocumentRoot] = File.expand_path(docroot)
200
+ end
201
+ opts.on('-a', '--adapter ADAPTER',
202
+ 'Use the ADAPTER (full Ruby class) for web server') do |adapter|
203
+ self.adapter = if adapter.casecmp('webrick') == 0
204
+ YARD::Server::WebrickAdapter
205
+ elsif adapter.casecmp('rack') == 0
206
+ YARD::Server::RackAdapter
207
+ else
208
+ eval(adapter) # rubocop:disable Security/Eval
209
+ end
210
+ end
211
+ opts.on('-s', '--server TYPE',
212
+ 'Use a specific server type eg. thin,mongrel,cgi (Rack specific)') do |type|
213
+ server_options[:server] = type
214
+ end
215
+ opts.on('--fork', 'Use process forking when serving requests') do
216
+ options[:use_fork] = true
217
+ end
218
+ common_options(opts)
219
+ opts.on('-e', '--load FILE',
220
+ 'A Ruby script to load before the source tree is parsed.') do |file|
221
+ scripts << file
222
+ end
223
+ parse_options(opts, args)
224
+
225
+ if args.empty? && libraries.empty?
226
+ # No args - try to use current dir
227
+ add_libraries([File.basename(Dir.pwd), nil])
228
+
229
+ # Generate doc for first time
230
+ # This is not necessary but makes for a better first-run experience
231
+ libver = libraries.empty? ? nil : libraries.values.first.first
232
+ generate_doc_for_first_time(libver) if libver && !libver.ready?
233
+ else
234
+ add_libraries(args)
235
+ options[:single_library] = false if libraries.size > 1
236
+ end
237
+ end
238
+
239
+ def generate_doc_for_first_time(libver)
240
+ log.enter_level(Logger::INFO) do
241
+ yardoc_file = libver.yardoc_file.sub(%r{^#{Regexp.quote Dir.pwd}[\\/]+}, '')
242
+ log.info "No yardoc db found in #{yardoc_file}, parsing source before starting server..."
243
+ end
244
+ Dir.chdir(libver.source_path) do
245
+ Yardoc.run('-n')
246
+ end
247
+ end
248
+
249
+ def extract_db_from_options_file(options_file)
250
+ args = File.read_binary(options_file).shell_split
251
+ db = YARD::Registry.yardoc_file
252
+ opts = OptionParser.new
253
+ opts.on('-b', '--db FILE') {|file| db = file }
254
+
255
+ begin
256
+ opts.parse!(args)
257
+ rescue OptionParser::ParseError
258
+ args.shift if args.first && args.first[0, 1] != '-'
259
+ retry
260
+ end
261
+
262
+ db
263
+ end
264
+ end
265
+ end
266
+ end