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,164 @@
1
+ # frozen_string_literal: true
2
+ module YARD
3
+ module Handlers
4
+ module C
5
+ class Base < Handlers::Base
6
+ include YARD::Parser::C
7
+ include HandlerMethods
8
+
9
+ # @return [Boolean] whether the handler handles this statement
10
+ def self.handles?(statement, processor)
11
+ processor.globals.cruby_processed_files ||= {}
12
+ processor.globals.cruby_processed_files[processor.file] = true
13
+
14
+ src = statement.respond_to?(:declaration) ?
15
+ statement.declaration : statement.source
16
+
17
+ handlers.any? do |a_handler|
18
+ statement_class >= statement.class &&
19
+ case a_handler
20
+ when String
21
+ src == a_handler
22
+ when Regexp
23
+ src =~ a_handler
24
+ end
25
+ end
26
+ end
27
+
28
+ def self.statement_class(type = nil)
29
+ if type
30
+ @statement_class = type
31
+ else
32
+ (defined?(@statement_class) && @statement_class) || Statement
33
+ end
34
+ end
35
+
36
+ # @group Registering objects
37
+
38
+ def register_docstring(object, docstring = nil, stmt = nil)
39
+ super(object, docstring, stmt) if docstring
40
+ end
41
+
42
+ def register_file_info(object, file = nil, line = nil, comments = nil)
43
+ super(object, file, line, comments) if file
44
+ end
45
+
46
+ def register_source(object, source = nil, type = nil)
47
+ super(object, source, type) if source
48
+ end
49
+
50
+ def register_visibility(object, visibility = nil)
51
+ super(object, visibility) if visibility
52
+ end
53
+
54
+ # @group Looking up Symbol and Var Values
55
+
56
+ def symbols
57
+ globals.cruby_symbols ||= {}
58
+ end
59
+
60
+ def override_comments
61
+ globals.cruby_override_comments ||= []
62
+ end
63
+
64
+ def namespace_for_variable(var)
65
+ return namespaces[var] if namespaces[var]
66
+
67
+ # The global variables for Ruby's core error classes does not
68
+ # represent their Ruby name. So we need to look up these names.
69
+ name = ERROR_CLASS_NAMES[var]
70
+ return P(name) if name
71
+
72
+ # Otherwise the name is inferred from the C variable name.
73
+ var = remove_var_prefix(var)
74
+ var.empty? ? nil : P(var)
75
+ end
76
+
77
+ def ensure_variable_defined!(var, max_retries = 1)
78
+ retries = 0
79
+ object = nil
80
+
81
+ loop do
82
+ object = namespace_for_variable(var)
83
+ break unless object.is_a?(Proxy)
84
+
85
+ raise NamespaceMissingError, object if retries > max_retries
86
+ log.debug "Missing namespace variable #{var} in file `#{parser.file}', moving it to the back of the line."
87
+ parser.parse_remaining_files
88
+ retries += 1
89
+ end
90
+
91
+ object
92
+ end
93
+
94
+ def namespaces
95
+ globals.cruby_namespaces ||= {}
96
+ end
97
+
98
+ def processed_files
99
+ globals.cruby_processed_files ||= {}
100
+ end
101
+
102
+ # @group Parsing an Inner Block
103
+
104
+ def parse_block(opts = {})
105
+ return if !statement.block || statement.block.empty?
106
+ push_state(opts) do
107
+ parser.process(statement.block)
108
+ end
109
+ end
110
+
111
+ # @group Processing other files
112
+
113
+ def process_file(file, object)
114
+ file = File.cleanpath(file)
115
+ return if processed_files[file]
116
+ processed_files[file] = file
117
+ begin
118
+ log.debug "Processing embedded call to C source #{file}..."
119
+ globals.ordered_parser.files.delete(file) if globals.ordered_parser
120
+ parser.process(Parser::C::CParser.new(File.read(file), file).parse)
121
+ rescue Errno::ENOENT
122
+ log.warn "Missing source file `#{file}' when parsing #{object}"
123
+ end
124
+ end
125
+
126
+ # @endgroup
127
+
128
+ private
129
+
130
+ # Generated by update_error_map.rb (Copy+past results)
131
+ ERROR_CLASS_NAMES = {
132
+ 'rb_eArgError' => 'ArgumentError',
133
+ 'rb_eEncodingError' => 'EncodingError',
134
+ 'rb_eException' => 'Exception',
135
+ 'rb_eFatal' => 'fatal',
136
+ 'rb_eFrozenError' => 'FrozenError',
137
+ 'rb_eIndexError' => 'IndexError',
138
+ 'rb_eInterrupt' => 'Interrupt',
139
+ 'rb_eKeyError' => 'KeyError',
140
+ 'rb_eLoadError' => 'LoadError',
141
+ 'rb_eNameError' => 'NameError',
142
+ 'rb_eNoMatchingPatternError' => 'NoMatchingPatternError',
143
+ 'rb_eNoMemError' => 'NoMemoryError',
144
+ 'rb_eNoMethodError' => 'NoMethodError',
145
+ 'rb_eNotImpError' => 'NotImplementedError',
146
+ 'rb_eRangeError' => 'RangeError',
147
+ 'rb_eRuntimeError' => 'RuntimeError',
148
+ 'rb_eScriptError' => 'ScriptError',
149
+ 'rb_eSecurityError' => 'SecurityError',
150
+ 'rb_eSignal' => 'SignalException',
151
+ 'rb_eStandardError' => 'StandardError',
152
+ 'rb_eSyntaxError' => 'SyntaxError',
153
+ 'rb_eSystemCallError' => 'SystemCallError',
154
+ 'rb_eSystemExit' => 'SystemExit',
155
+ 'rb_eTypeError' => 'TypeError',
156
+ }
157
+
158
+ def remove_var_prefix(var)
159
+ var.gsub(/^rb_[mc]|^[a-z_]+/, '')
160
+ end
161
+ end
162
+ end
163
+ end
164
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+ class YARD::Handlers::C::ClassHandler < YARD::Handlers::C::Base
3
+ MATCH1 = /([\w\.]+)\s* = \s*(?:rb_define_class|boot_defclass)\s*
4
+ \(
5
+ \s*"([\w:]+)",
6
+ \s*(\w+|0)\s*
7
+ \)/mx
8
+
9
+ MATCH2 = /([\w\.]+)\s* = \s*rb_define_class_under\s*
10
+ \(
11
+ \s*(\w+),
12
+ \s*"(\w+)"(?:,
13
+ \s*([\w\*\s\(\)\.\->]+)\s*)? # for SWIG
14
+ \s*\)/mx
15
+ handles MATCH1
16
+ handles MATCH2
17
+ statement_class BodyStatement
18
+
19
+ process do
20
+ statement.source.scan(MATCH1) do |var_name, class_name, parent|
21
+ handle_class(var_name, class_name, parent)
22
+ end
23
+ statement.source.scan(MATCH2) do |var_name, in_module, class_name, parent|
24
+ handle_class(var_name, class_name, parent.strip, in_module)
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+ class YARD::Handlers::C::ConstantHandler < YARD::Handlers::C::Base
3
+ MATCH = /\brb_define_((?:readonly_)?variable|(?:global_)?const)
4
+ \s*\((?:\s*(\w+),)?\s*"(\w+)",\s*(.*?)\s*\)\s*;/xm
5
+ handles MATCH
6
+ statement_class BodyStatement
7
+
8
+ process do
9
+ statement.source.scan(MATCH) do |type, var_name, const_name, value|
10
+ handle_constants(type, var_name, const_name, value)
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,212 @@
1
+ # frozen_string_literal: true
2
+ module YARD
3
+ module Handlers
4
+ module C
5
+ module HandlerMethods
6
+ include Parser::C
7
+ include CodeObjects
8
+ include Common::MethodHandler
9
+
10
+ def handle_class(var_name, class_name, parent, in_module = nil)
11
+ parent = nil if parent == "0"
12
+ namespace = in_module ? ensure_variable_defined!(in_module) : Registry.root
13
+ if namespace.nil?
14
+ raise Parser::UndocumentableError,
15
+ "class #{class_name}. Cannot find definition for parent namespace."
16
+ end
17
+
18
+ register ClassObject.new(namespace, class_name) do |obj|
19
+ if parent
20
+ parent_class = namespace_for_variable(parent)
21
+ if parent_class.is_a?(Proxy)
22
+ obj.superclass = "::#{parent_class.path}"
23
+ obj.superclass.type = :class
24
+ else
25
+ obj.superclass = parent_class
26
+ end
27
+ end
28
+ namespaces[var_name] = obj
29
+ register_file_info(obj, statement.file, statement.line)
30
+ end
31
+ end
32
+
33
+ def handle_module(var_name, module_name, in_module = nil)
34
+ namespace = in_module ? ensure_variable_defined!(in_module) : Registry.root
35
+ if namespace.nil?
36
+ raise Parser::UndocumentableError,
37
+ "module #{module_name}. Cannot find definition for parent namespace."
38
+ end
39
+
40
+ register ModuleObject.new(namespace, module_name) do |obj|
41
+ namespaces[var_name] = obj
42
+ register_file_info(obj, statement.file, statement.line)
43
+ end
44
+ end
45
+
46
+ def handle_method(scope, var_name, name, func_name, _source_file = nil)
47
+ visibility = :public
48
+ case scope
49
+ when "singleton_method"; scope = :class
50
+ when "module_function"; scope = :module
51
+ when "private_method"; scope = :instance; visibility = :private
52
+ else; scope = :instance
53
+ end
54
+
55
+ namespace = namespace_for_variable(var_name)
56
+
57
+ # Is this method being defined on a core Ruby class or module?
58
+ if namespace.is_a?(Proxy)
59
+ if var_name =~ /^rb_c(\w+)/ && YARD::CodeObjects::BUILTIN_CLASSES.include?($1)
60
+ namespace = namespaces[var_name] = YARD::CodeObjects::ClassObject.new(:root, $1)
61
+ elsif var_name =~ /^rb_m(\w+)/ && YARD::CodeObjects::BUILTIN_MODULES.include?($1)
62
+ namespace = namespaces[var_name] = YARD::CodeObjects::ModuleObject.new(:root, $1)
63
+ end
64
+ end
65
+
66
+ return if namespace.nil? # XXX: raise UndocumentableError might be too noisy.
67
+ register MethodObject.new(namespace, name, scope) do |obj|
68
+ register_visibility(obj, visibility)
69
+ find_method_body(obj, func_name)
70
+ obj.explicit = true
71
+ add_predicate_return_tag(obj) if name =~ /\?$/
72
+ end
73
+ end
74
+
75
+ def handle_attribute(var_name, name, read, write)
76
+ values = {:read => read.to_i, :write => write.to_i}
77
+ {:read => name, :write => "#{name}="}.each do |type, meth_name|
78
+ next unless values[type] > 0
79
+ obj = handle_method(:instance, var_name, meth_name, nil)
80
+ register_file_info(obj, statement.file, statement.line)
81
+ obj.namespace.attributes[:instance][name] ||= SymbolHash[:read => nil, :write => nil]
82
+ obj.namespace.attributes[:instance][name][type] = obj
83
+ end
84
+ end
85
+
86
+ def handle_alias(var_name, new_name, old_name)
87
+ namespace = namespace_for_variable(var_name)
88
+ return if namespace.nil?
89
+ new_meth = new_name.to_sym
90
+ old_meth = old_name.to_sym
91
+ old_obj = namespace.child(:name => old_meth, :scope => :instance)
92
+ new_obj = register MethodObject.new(namespace, new_meth, :instance) do |o|
93
+ register_visibility(o, visibility)
94
+ register_file_info(o, statement.file, statement.line)
95
+ end
96
+
97
+ if old_obj
98
+ new_obj.signature = old_obj.signature
99
+ new_obj.source = old_obj.source
100
+ new_obj.docstring = old_obj.docstring
101
+ new_obj.docstring.object = new_obj
102
+ else
103
+ new_obj.signature = "def #{new_meth}" # this is all we know.
104
+ end
105
+
106
+ namespace.aliases[new_obj] = old_meth
107
+ end
108
+
109
+ def handle_constants(type, var_name, const_name, value)
110
+ return unless type =~ /^const$|^global_const$/
111
+ namespace = type == 'global_const' ?
112
+ :root : namespace_for_variable(var_name)
113
+ register ConstantObject.new(namespace, const_name) do |obj|
114
+ obj.source_type = :c
115
+ obj.value = value
116
+ register_file_info(obj, statement.file, statement.line)
117
+ find_constant_docstring(obj)
118
+ end
119
+ end
120
+
121
+ private
122
+
123
+ def find_constant_docstring(object)
124
+ comment = nil
125
+
126
+ # look inside overrides for declaration value
127
+ override_comments.each do |name, override_comment|
128
+ next unless override_comment.file == statement.file
129
+ just_const_name = name.gsub(/\A.+::/, '')
130
+ if object.path == name || object.name.to_s == just_const_name
131
+ comment = override_comment.source
132
+ break
133
+ end
134
+ end
135
+
136
+ # use any comments on this statement as a last resort
137
+ if comment.nil? && statement.comments && statement.comments.source =~ /\S/
138
+ comment = statement.comments.source
139
+ stmt = statement.comments
140
+ end
141
+
142
+ # In the case of rb_define_const, the definition and comment are in
143
+ # "/* definition: comment */" form. The literal ':' and '\' characters
144
+ # can be escaped with a backslash.
145
+ if comment
146
+ comment.scan(/\A\s*(.*?[^\s\\]):\s*(.+)/m) do |new_value, new_comment|
147
+ object.value = new_value.gsub(/\\:/, ':')
148
+ comment = new_comment
149
+ end
150
+ register_docstring(object, comment, stmt)
151
+ end
152
+ end
153
+
154
+ def find_method_body(object, symbol)
155
+ file = statement.file
156
+ in_file = false
157
+ if statement.comments && statement.comments.source =~ /\A\s*in (\S+)\Z/
158
+ file = $1
159
+ in_file = true
160
+ process_file(file, object)
161
+ end
162
+
163
+ src_stmt = symbols[symbol]
164
+ if src_stmt
165
+ register_file_info(object, src_stmt.file, src_stmt.line, true)
166
+ register_source(object, src_stmt)
167
+ record_parameters(object, symbol, src_stmt)
168
+ unless src_stmt.comments.nil? || src_stmt.comments.source.empty?
169
+ register_docstring(object, src_stmt.comments.source, src_stmt)
170
+ return # found docstring
171
+ end
172
+ end
173
+
174
+ # found source (possibly) but no docstring
175
+ # so look in overrides
176
+ return if override_comments.any? do |name, override_comment|
177
+ next unless override_comment.file == file
178
+ name = name.gsub(/::([^:\.#]+?)\Z/, '.\1')
179
+
180
+ # explicit namespace in override comment
181
+ path = (name =~ /\.|#/ ? object.path : object.name.to_s)
182
+ if path == name || path == name.sub(/new$/, 'initialize') || path == name.sub('.', '#')
183
+ register_docstring(object, override_comment.source, override_comment)
184
+ true
185
+ else
186
+ false
187
+ end
188
+ end
189
+
190
+ # use any comments on this statement as a last resort
191
+ if !in_file && statement.comments && statement.comments.source =~ /\S/
192
+ register_docstring(object, statement.comments.source, statement)
193
+ end
194
+ end
195
+
196
+ def record_parameters(object, symbol, src)
197
+ # use regex to extract comma-delimited list of parameters from cfunc definition
198
+ if src.source =~ /VALUE\s+#{symbol}\(([^)]*)\)\s*\{/m
199
+ params = $~[1].split(/\s*,\s*/) # rubocop:disable Style/SpecialGlobalVars
200
+ # cfunc for a "varargs" method has params "int argc, VALUE *argv"
201
+ if params[0] =~ /int\s+argc/ && params[1] =~ /VALUE\s*\*\s*argv/
202
+ object.parameters = [['*args', nil]]
203
+ else
204
+ # the first cfunc argument is the 'self' argument, we don't need that
205
+ object.parameters = params.drop(1).map {|s| [s[/VALUE\s+(\S+)/, 1], nil] }
206
+ end
207
+ end
208
+ end
209
+ end
210
+ end
211
+ end
212
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+ # Handles the Init_Libname() method
3
+ class YARD::Handlers::C::InitHandler < YARD::Handlers::C::Base
4
+ MATCH = /\A\s*(?:\S+\s+)*void\s+(?:[Ii]nit_)?(\w+)\s*/
5
+ handles MATCH
6
+ statement_class ToplevelStatement
7
+
8
+ process do
9
+ parse_block
10
+ decl = statement.declaration[MATCH, 1]
11
+ if decl
12
+ ns = namespace_for_variable(decl)
13
+ if ns.is_a?(YARD::CodeObjects::NamespaceObject) && ns.docstring.blank?
14
+ if statement.comments
15
+ register_docstring(ns, statement.comments.source, statement)
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,45 @@
1
+ # frozen_string_literal: true
2
+ class YARD::Handlers::C::MethodHandler < YARD::Handlers::C::Base
3
+ MATCH1 = /rb_define_
4
+ (
5
+ singleton_method |
6
+ method |
7
+ module_function |
8
+ private_method
9
+ )
10
+ \s*\(\s*([\w\.]+)\s*,
11
+ \s*"([^"]+)"\s*,
12
+ \s*(?:RUBY_METHOD_FUNC\(|VALUEFUNC\(|\(\w+\))?(\w+)\)?\s*,
13
+ \s*(-?\w+)\s*\)/xm
14
+ MATCH2 = /rb_define_global_function\s*\(
15
+ \s*"([^"]+)",
16
+ \s*(?:RUBY_METHOD_FUNC\(|VALUEFUNC\(|\(\w+\))?(\w+)\)?,
17
+ \s*(-?\w+)\s*\)/xm
18
+ MATCH3 = /define_filetest_function\s*\(
19
+ \s*"([^"]+)",
20
+ \s*(?:RUBY_METHOD_FUNC\(|VALUEFUNC\(|\(\w+\))?(\w+)\)?,
21
+ \s*(-?\w+)\s*\)/xm
22
+ handles MATCH1
23
+ handles MATCH2
24
+ handles MATCH3
25
+ statement_class BodyStatement
26
+
27
+ process do
28
+ statement.source.scan(MATCH1) do |type, var_name, name, func_name, _param_count|
29
+ break if var_name == "ruby_top_self"
30
+ break if var_name == "nstr"
31
+ break if var_name == "envtbl"
32
+
33
+ var_name = "rb_cObject" if var_name == "rb_mKernel"
34
+ handle_method(type, var_name, name, func_name)
35
+ end
36
+
37
+ statement.source.scan(MATCH2) do |name, func_name, _param_count|
38
+ handle_method("method", "rb_mKernel", name, func_name)
39
+ end
40
+
41
+ statement.source.scan(MATCH3) do |name, func_name, _param_count|
42
+ handle_method("singleton_method", "rb_cFile", name, func_name)
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+ class YARD::Handlers::C::MixinHandler < YARD::Handlers::C::Base
3
+ MATCH = /rb_include_module\s*\(\s*(\w+?),\s*(\w+?)\s*\)/
4
+ handles MATCH
5
+ statement_class BodyStatement
6
+
7
+ process do
8
+ statement.source.scan(MATCH) do |klass_var, mixin_var|
9
+ namespace = namespace_for_variable(klass_var)
10
+ ensure_loaded!(namespace)
11
+
12
+ var = namespace_for_variable(mixin_var)
13
+ if var
14
+ namespace.mixins(:instance) << var
15
+ else
16
+ raise YARD::Parser::UndocumentableError,
17
+ "CRuby mixin for unrecognized variable '#{mixin_var}'"
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+ class YARD::Handlers::C::ModuleHandler < YARD::Handlers::C::Base
3
+ MATCH1 = /([\w\.]+)\s* = \s*rb_define_module\s*\(\s*"([\w:]+)"\s*\)/mx
4
+ MATCH2 = /([\w\.]+)\s* = \s*rb_define_module_under\s*\(\s*(\w+),\s*"(\w+)"\s*\)/mx
5
+ handles MATCH1
6
+ handles MATCH2
7
+ statement_class BodyStatement
8
+
9
+ process do
10
+ statement.source.scan(MATCH1) do |var_name, module_name|
11
+ handle_module(var_name, module_name)
12
+ end
13
+ statement.source.scan(MATCH2) do |var_name, in_module, module_name|
14
+ handle_module(var_name, module_name, in_module)
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+ # Parses comments
3
+ class YARD::Handlers::C::OverrideCommentHandler < YARD::Handlers::C::Base
4
+ handles(/./)
5
+ statement_class Comment
6
+
7
+ process do
8
+ return if statement.overrides.empty?
9
+ statement.overrides.each do |type, name|
10
+ override_comments << [name, statement]
11
+ obj = nil
12
+ case type
13
+ when :class
14
+ name, superclass = *name.split(/\s*<\s*/)
15
+ obj = YARD::CodeObjects::ClassObject.new(:root, name)
16
+ obj.superclass = "::#{superclass}" if superclass
17
+ when :module
18
+ obj = YARD::CodeObjects::ModuleObject.new(:root, name)
19
+ end
20
+ register(obj)
21
+ end
22
+ end
23
+
24
+ def register_docstring(object, docstring = statement.source, stmt = statement)
25
+ super
26
+ end
27
+
28
+ def register_file_info(object, file = parser.file, line = statement.line, comments = statement.comments)
29
+ super
30
+ end
31
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+ class YARD::Handlers::C::PathHandler < YARD::Handlers::C::Base
3
+ MATCH = /([\w\.]+)\s* = \s*rb_path2class\s*\(\s*"([\w:]+)"\)/mx
4
+ handles MATCH
5
+
6
+ process do
7
+ statement.source.scan(MATCH) do |var_name, path|
8
+ namespaces[var_name] = P(path)
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+ class YARD::Handlers::C::StructHandler < YARD::Handlers::C::Base
3
+ MATCH = /([\w\.]+)\s*=\s*(?:rb_struct_define_without_accessor)\s*
4
+ \(\s*"([\w:]+)"\s*,\s*(\w+)\s*/mx
5
+ handles MATCH
6
+ statement_class BodyStatement
7
+
8
+ process do
9
+ statement.source.scan(MATCH) do |var_name, class_name, parent|
10
+ handle_class(var_name, class_name, parent)
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+ # Keeps track of function bodies for symbol lookup during Ruby method declarations
3
+ class YARD::Handlers::C::SymbolHandler < YARD::Handlers::C::Base
4
+ MATCH = /\A\s*(?:(?:\w+)\s+)?(?:intern\s+)?VALUE\s+(\w+)\s*\(/
5
+ handles MATCH
6
+ statement_class ToplevelStatement
7
+ process { symbols[statement.source[MATCH, 1]] = statement }
8
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module YARD::Handlers
4
+ module Common
5
+ # Shared functionality between Ruby and C method handlers.
6
+ module MethodHandler
7
+ # @param [MethodObject] obj
8
+ def add_predicate_return_tag(obj)
9
+ if obj.tag(:return) && (obj.tag(:return).types || []).empty?
10
+ obj.tag(:return).types = ['Boolean']
11
+ elsif obj.tag(:return).nil?
12
+ unless obj.tags(:overload).any? {|overload| overload.tag(:return) }
13
+ obj.add_tag(YARD::Tags::Tag.new(:return, "", "Boolean"))
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end