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,274 @@
1
+ # frozen_string_literal: true
2
+ module YARD
3
+ # This class maintains all system-wide configuration for YARD and handles
4
+ # the loading of plugins. To access options call {options}, and to load
5
+ # a plugin use {load_plugin}. All other public methods are used by YARD
6
+ # during load time.
7
+ #
8
+ # == User Configuration Files
9
+ #
10
+ # Persistent user configuration files can be stored in the file
11
+ # +~/.yard/config+, which is read when YARD first loads. The file should
12
+ # be formatted as YAML, and should contain a map of keys and values.
13
+ #
14
+ # Although you can specify any key-value mapping in the configuration file,
15
+ # YARD defines special keys specified in {DEFAULT_CONFIG_OPTIONS}.
16
+ #
17
+ # An example of a configuration file is listed below:
18
+ #
19
+ # !!!yaml
20
+ # load_plugins: true # Auto-load plugins when YARD starts
21
+ # ignored_plugins:
22
+ # - yard-broken
23
+ # - broken2 # yard- prefix not necessary
24
+ # autoload_plugins:
25
+ # - yard-rspec
26
+ #
27
+ # == Automatic Loading of Plugins
28
+ #
29
+ # YARD 0.6.2 will no longer automatically load all plugins by default. This
30
+ # option can be reset by setting 'load_plugins' to true in the configuration
31
+ # file. In addition, you can specify a set of specific plugins to load on
32
+ # load through the 'autoload_plugins' list setting. This setting is
33
+ # independent of the 'load_plugins' value and will always be processed.
34
+ #
35
+ # == Ignored Plugins File
36
+ #
37
+ # YARD 0.5 and below used a +~/.yard/ignored_plugins+ file to specify
38
+ # plugins to be ignored at load time. Ignored plugins in 0.6.2 and above
39
+ # should now be specified in the main configuration file, though YARD
40
+ # will support the +ignored_plugins+ file until 0.7.x.
41
+ #
42
+ # == Safe Mode
43
+ #
44
+ # YARD supports running in safe-mode. By doing this, it will avoid executing
45
+ # any user code such as require files or queries. Plugins will still be
46
+ # loaded with safe mode on, because plugins are properly namespaced with
47
+ # a 'yard-' prefix, must be installed as a gem, and therefore cannot be
48
+ # touched by the user. To specify safe mode, use the +safe_mode+ key.
49
+ #
50
+ # == Plugin Specific Configuration
51
+ #
52
+ # Additional settings can be defined within the configuration file
53
+ # specifically to provide configuration for a plugin. A plugin that utilizes
54
+ # the YARD configuration is strongly encouraged to utilize namespacing of
55
+ # their configuration content.
56
+ #
57
+ # !!!yaml
58
+ # load_plugins: true # Auto-load plugins when YARD starts
59
+ # ignored_plugins:
60
+ # - yard-broken
61
+ # - broken2 # yard- prefix not necessary
62
+ # autoload_plugins:
63
+ # - yard-rspec
64
+ # # Plugin Specific Configuration
65
+ # yard-sample-plugin:
66
+ # show-results-inline: true
67
+ #
68
+ # As the configuration is available system wide, it can be
69
+ # accessed within the plugin code.
70
+ #
71
+ #
72
+ # if YARD::Config.options['yard-sample-plugin'] and
73
+ # YARD::Config.options['yard-sample-plugin']['show-results-inline']
74
+ # # ... perform the action that places the results inline ...
75
+ # else
76
+ # # ... do the default behavior of not showing the results inline ...
77
+ # end
78
+ #
79
+ # When accessing the configuration, be aware that this file is user managed
80
+ # so configuration keys and values may not be present. Make no assumptions and
81
+ # instead ensure that you check for the existence of keys before proceeding to
82
+ # retrieve values.
83
+ #
84
+ # @since 0.6.2
85
+ # @see options
86
+ class Config
87
+ class << self
88
+ # The system-wide configuration options for YARD
89
+ # @return [SymbolHash] a map a key-value pair settings.
90
+ # @see DEFAULT_CONFIG_OPTIONS
91
+ attr_accessor :options
92
+ end
93
+
94
+ # The location where YARD stores user-specific settings
95
+ CONFIG_DIR = File.expand_path('~/.yard')
96
+
97
+ # The main configuration YAML file.
98
+ CONFIG_FILE = File.join(CONFIG_DIR, 'config')
99
+
100
+ # File listing all ignored plugins
101
+ # @deprecated Set `ignored_plugins` in the {CONFIG_FILE} instead.
102
+ IGNORED_PLUGINS = File.join(CONFIG_DIR, 'ignored_plugins')
103
+
104
+ # Default configuration options
105
+ DEFAULT_CONFIG_OPTIONS = {
106
+ :load_plugins => false, # Whether to load plugins automatically with YARD
107
+ :ignored_plugins => [], # A list of ignored plugins by name
108
+ :autoload_plugins => [], # A list of plugins to be automatically loaded
109
+ :safe_mode => false # Does not execute or eval any user-level code
110
+ }
111
+
112
+ # The prefix used for YARD plugins. Name your gem with this prefix
113
+ # to allow it to be used as a plugin.
114
+ YARD_PLUGIN_PREFIX = /^yard[-_]/
115
+
116
+ # Loads settings from {CONFIG_FILE}. This method is called by YARD at
117
+ # load time and should not be called by the user.
118
+ # @return [void]
119
+ def self.load
120
+ self.options = SymbolHash.new(false)
121
+ options.update(DEFAULT_CONFIG_OPTIONS)
122
+ options.update(read_config_file)
123
+ load_commandline_safemode
124
+ add_ignored_plugins_file
125
+ translate_plugin_names
126
+ load_plugins
127
+ rescue => e
128
+ log.error "Invalid configuration file, using default options."
129
+ log.backtrace(e)
130
+ options.update(DEFAULT_CONFIG_OPTIONS)
131
+ end
132
+
133
+ # Saves settings to {CONFIG_FILE}.
134
+ # @return [void]
135
+ def self.save
136
+ require 'yaml'
137
+ Dir.mkdir(CONFIG_DIR) unless File.directory?(CONFIG_DIR)
138
+ File.open(CONFIG_FILE, 'w') {|f| f.write(YAML.dump(options)) }
139
+ end
140
+
141
+ # Loads gems that match the name 'yard-*' (recommended) or 'yard_*' except
142
+ # those listed in +~/.yard/ignored_plugins+. This is called immediately
143
+ # after YARD is loaded to allow plugin support.
144
+ #
145
+ # @return [Boolean] true if all plugins loaded successfully, false otherwise.
146
+ def self.load_plugins
147
+ load_gem_plugins &&
148
+ load_autoload_plugins &&
149
+ load_commandline_plugins ? true : false
150
+ end
151
+
152
+ # Loads an individual plugin by name. It is not necessary to include the
153
+ # +yard-+ plugin prefix here.
154
+ #
155
+ # @param [String] name the name of the plugin (with or without +yard-+ prefix)
156
+ # @return [Boolean] whether the plugin was successfully loaded
157
+ def self.load_plugin(name)
158
+ name = translate_plugin_name(name)
159
+ return false if options[:ignored_plugins].include?(name)
160
+ return false if name =~ /^yard-doc-/
161
+ log.debug "Loading plugin '#{name}'..."
162
+ require name
163
+ true
164
+ rescue LoadError => e
165
+ load_plugin_failed(name, e)
166
+ end
167
+
168
+ # Load gem plugins if :load_plugins is true
169
+ def self.load_gem_plugins
170
+ return true unless options[:load_plugins]
171
+ require 'rubygems'
172
+ result = true
173
+ YARD::GemIndex.each do |gem|
174
+ begin
175
+ next true unless gem.name =~ YARD_PLUGIN_PREFIX
176
+ load_plugin(gem.name)
177
+ rescue Gem::LoadError => e
178
+ tmp = load_plugin_failed(gem.name, e)
179
+ result = tmp unless tmp
180
+ end
181
+ end
182
+ result
183
+ rescue LoadError
184
+ log.debug "RubyGems is not present, skipping plugin loading"
185
+ false
186
+ end
187
+
188
+ # Load plugins set in :autoload_plugins
189
+ def self.load_autoload_plugins
190
+ options[:autoload_plugins].each {|name| load_plugin(name) }
191
+ end
192
+
193
+ # Load plugins from {arguments}
194
+ def self.load_commandline_plugins
195
+ with_yardopts do
196
+ arguments.each_with_index do |arg, i|
197
+ next unless arg == '--plugin'
198
+ load_plugin(arguments[i + 1])
199
+ end
200
+ end
201
+ end
202
+
203
+ # Check for command-line safe_mode switch in {arguments}
204
+ def self.load_commandline_safemode
205
+ with_yardopts do
206
+ arguments.each_with_index do |arg, _i|
207
+ options[:safe_mode] = true if arg == '--safe'
208
+ end
209
+ end
210
+ end
211
+
212
+ # Print a warning if the plugin failed to load
213
+ # @return [false]
214
+ def self.load_plugin_failed(name, exception)
215
+ log.error "Error loading plugin '#{name}'"
216
+ log.backtrace(exception) if $DEBUG
217
+ false
218
+ end
219
+
220
+ # Legacy support for {IGNORED_PLUGINS}
221
+ def self.add_ignored_plugins_file
222
+ if File.file?(IGNORED_PLUGINS)
223
+ options[:ignored_plugins] += File.read(IGNORED_PLUGINS).split(/\s+/)
224
+ end
225
+ end
226
+
227
+ # Translates plugin names to add yard- prefix.
228
+ def self.translate_plugin_names
229
+ options[:ignored_plugins].map! {|name| translate_plugin_name(name) }
230
+ options[:autoload_plugins].map! {|name| translate_plugin_name(name) }
231
+ end
232
+
233
+ # Loads the YAML configuration file into memory
234
+ # @return [Hash] the contents of the YAML file from disk
235
+ # @see CONFIG_FILE
236
+ def self.read_config_file
237
+ if File.file?(CONFIG_FILE)
238
+ require 'yaml'
239
+ if YAML.respond_to?(:safe_load_file)
240
+ YAML.safe_load_file(CONFIG_FILE, permitted_classes: [SymbolHash, Symbol])
241
+ else
242
+ YAML.load_file(CONFIG_FILE)
243
+ end
244
+ else
245
+ {}
246
+ end
247
+ end
248
+
249
+ # Sanitizes and normalizes a plugin name to include the 'yard-' prefix.
250
+ # @param [String] name the plugin name
251
+ # @return [String] the sanitized and normalized plugin name.
252
+ def self.translate_plugin_name(name)
253
+ name = name.delete('/') # Security sanitization
254
+ name = "yard-" + name unless name =~ YARD_PLUGIN_PREFIX
255
+ name
256
+ end
257
+
258
+ # Temporarily loads .yardopts file into @yardopts
259
+ def self.with_yardopts
260
+ yfile = CLI::Yardoc::DEFAULT_YARDOPTS_FILE
261
+ @yardopts = File.file?(yfile) ? File.read_binary(yfile).shell_split : []
262
+ result = yield
263
+ @yardopts = nil
264
+ result
265
+ end
266
+
267
+ # @return [Array<String>] arguments from commandline and yardopts file
268
+ def self.arguments
269
+ ARGV + @yardopts
270
+ end
271
+ end
272
+
273
+ Config.options = Config::DEFAULT_CONFIG_OPTIONS
274
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+ class Array
3
+ # Places values before or after another object (by value) in
4
+ # an array. This is used in tandem with the before and after
5
+ # methods of the {Insertion} class.
6
+ #
7
+ # @example Places an item before another
8
+ # [1, 2, 3].place(4).before(3) # => [1, 2, 4, 3]
9
+ # @example Places an item after another
10
+ # [:a, :b, :c].place(:x).after(:a) # => [:a, :x, :b, :c]
11
+ # @param [Array] values value to insert
12
+ # @return [Insertion] an insertion object to
13
+ # @see Insertion#before
14
+ # @see Insertion#after
15
+ def place(*values) Insertion.new(self, values) end
16
+ end
@@ -0,0 +1,69 @@
1
+ # frozen_string_literal: true
2
+ require 'fileutils'
3
+
4
+ class File
5
+ RELATIVE_PARENTDIR = '..'
6
+ RELATIVE_SAMEDIR = '.'
7
+
8
+ # @group Manipulating Paths
9
+
10
+ # Turns a path +to+ into a relative path from starting
11
+ # point +from+. The argument +from+ is assumed to be
12
+ # a filename. To treat it as a directory, make sure it
13
+ # ends in +File::SEPARATOR+ ('/' on UNIX filesystems).
14
+ #
15
+ # @param [String] from the starting filename
16
+ # (or directory with +from_isdir+ set to +true+).
17
+ # @param [String] to the final path that should be made relative.
18
+ # @return [String] the relative path from +from+ to +to+.
19
+ def self.relative_path(from, to)
20
+ from = expand_path(from).split(SEPARATOR)
21
+ to = expand_path(to).split(SEPARATOR)
22
+ from.length.times do
23
+ break if from[0] != to[0]
24
+ from.shift; to.shift
25
+ end
26
+ from.pop
27
+ join(*(from.map { RELATIVE_PARENTDIR } + to))
28
+ end
29
+
30
+ # Cleans a path by removing extraneous '..', '.' and '/' characters
31
+ #
32
+ # @example Clean a path
33
+ # File.cleanpath('a/b//./c/../e') # => "a/b/e"
34
+ # @param [String] path the path to clean
35
+ # @param [Boolean] rel_root allows relative path above root value
36
+ # @return [String] the sanitized path
37
+ def self.cleanpath(path, rel_root = false)
38
+ path = path.split(SEPARATOR)
39
+ path = path.inject([]) do |acc, comp|
40
+ next acc if comp == RELATIVE_SAMEDIR
41
+ if comp == RELATIVE_PARENTDIR && !acc.empty? && acc.last != RELATIVE_PARENTDIR
42
+ acc.pop
43
+ next acc
44
+ elsif !rel_root && comp == RELATIVE_PARENTDIR && acc.empty?
45
+ next acc
46
+ end
47
+ acc << comp
48
+ end
49
+ File.join(*path)
50
+ end
51
+
52
+ # @group Reading Files
53
+
54
+ # Forces opening a file (for writing) by first creating the file's directory
55
+ # @param [String] file the filename to open
56
+ # @since 0.5.2
57
+ def self.open!(file, *args, &block)
58
+ dir = dirname(file)
59
+ FileUtils.mkdir_p(dir) unless directory?(dir)
60
+ open(file, *args, &block)
61
+ end
62
+
63
+ # Reads a file with binary encoding
64
+ # @return [String] the ascii-8bit encoded data
65
+ # @since 0.5.3
66
+ def self.read_binary(file)
67
+ File.open(file, 'rb', &:read)
68
+ end
69
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+ class Hash
3
+ class << self
4
+ def create(*args)
5
+ if args.first.is_a?(Array) && args.size == 1
6
+ obj = new
7
+ args.first.each {|k, v| obj[k] = v }
8
+ obj
9
+ else
10
+ create_186(*args)
11
+ end
12
+ end
13
+ alias create_186 []
14
+ alias [] create
15
+ end
16
+ end if RUBY_VERSION < "1.8.7"
@@ -0,0 +1,63 @@
1
+ # frozen_string_literal: true
2
+ # The Insertion class inserts a value before or after another
3
+ # value in a list.
4
+ #
5
+ # @example
6
+ # Insertion.new([1, 2, 3], 4).before(3) # => [1, 2, 4, 3]
7
+ class Insertion
8
+ # Creates an insertion object on a list with a value to be
9
+ # inserted. To finalize the insertion, call {#before} or
10
+ # {#after} on the object.
11
+ #
12
+ # @param [Array] list the list to perform the insertion on
13
+ # @param [Object] value the value to insert
14
+ def initialize(list, value)
15
+ @list = list
16
+ @values = (Array === value ? value : [value])
17
+ end
18
+
19
+ # Inserts the value before +val+
20
+ # @param [Object] val the object the value will be inserted before
21
+ # @param [Boolean] recursive look inside sublists
22
+ def before(val, recursive = false) insertion(val, 0, recursive) end
23
+
24
+ # Inserts the value after +val+.
25
+ #
26
+ # @example If subsections are ignored
27
+ # Insertion.new([1, [2], 3], :X).after(1) # => [1, [2], :X, 3]
28
+ # @param [Object] val the object the value will be inserted after
29
+ # @param [Boolean] recursive look inside sublists
30
+ def after(val, recursive = false) insertion(val, 1, recursive) end
31
+
32
+ # Alias for {#before} with +recursive+ set to true
33
+ # @since 0.6.0
34
+ def before_any(val) insertion(val, 0, true) end
35
+
36
+ # Alias for {#after} with +recursive+ set to true
37
+ # @since 0.6.0
38
+ def after_any(val) insertion(val, 1, true) end
39
+
40
+ private
41
+
42
+ # This method performs the actual insertion
43
+ #
44
+ # @param [Object] val the value to insert
45
+ # @param [Fixnum] rel the relative index (0 or 1) of where the object
46
+ # should be placed
47
+ # @param [Boolean] recursive look inside sublists
48
+ # @param [Array] list the list to place objects into
49
+ def insertion(val, rel, recursive = false, list = @list)
50
+ if recursive
51
+ list.each do |item|
52
+ next unless item.is_a?(Array)
53
+ tmp = item.dup
54
+ insertion(val, rel, recursive, item)
55
+ return(list) unless item == tmp
56
+ end
57
+ end
58
+
59
+ index = list.index(val)
60
+ list[index + rel, 0] = @values if index
61
+ list
62
+ end
63
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+ class Module
3
+ # Returns the class name of a full module namespace path
4
+ #
5
+ # @example
6
+ # module A::B::C; class_name end # => "C"
7
+ # @return [String] the last part of a module path
8
+ def class_name
9
+ name.split("::").last
10
+ end
11
+ end
@@ -0,0 +1,68 @@
1
+ # frozen_string_literal: true
2
+ class String
3
+ # Splits text into tokens the way a shell would, handling quoted
4
+ # text as a single token. Use '\"' and "\'" to escape quotes and
5
+ # '\\' to escape a backslash.
6
+ #
7
+ # @return [Array] an array representing the tokens
8
+ def shell_split
9
+ out = [String.new("")]
10
+ state = :none
11
+ escape_next = false
12
+ quote = String.new("")
13
+ strip.split(//).each do |char|
14
+ case state
15
+ when :none, :space
16
+ case char
17
+ when /\s/
18
+ out << String.new("") unless state == :space
19
+ state = :space
20
+ escape_next = false
21
+ when "\\"
22
+ if escape_next
23
+ out.last << char
24
+ escape_next = false
25
+ else
26
+ escape_next = true
27
+ end
28
+ when '"', "'"
29
+ if escape_next
30
+ out.last << char
31
+ escape_next = false
32
+ else
33
+ state = char
34
+ quote = String.new("")
35
+ end
36
+ else
37
+ state = :none
38
+ out.last << char
39
+ escape_next = false
40
+ end
41
+ when '"', "'"
42
+ case char
43
+ when '"', "'"
44
+ if escape_next
45
+ quote << char
46
+ escape_next = false
47
+ elsif char == state
48
+ out.last << quote
49
+ state = :none
50
+ else
51
+ quote << char
52
+ end
53
+ when '\\'
54
+ if escape_next
55
+ quote << char
56
+ escape_next = false
57
+ else
58
+ escape_next = true
59
+ end
60
+ else
61
+ quote << char
62
+ escape_next = false
63
+ end
64
+ end
65
+ end
66
+ out
67
+ end
68
+ end
@@ -0,0 +1,75 @@
1
+ # frozen_string_literal: true
2
+ # A subclass of Hash where all keys are converted into Symbols, and
3
+ # optionally, all String values are converted into Symbols.
4
+ class SymbolHash < Hash
5
+ # Creates a new SymbolHash object
6
+ #
7
+ # @param [Boolean] symbolize_value converts any String values into Symbols
8
+ # if this is set to +true+.
9
+ def initialize(symbolize_value = true)
10
+ @symbolize_value = symbolize_value
11
+ end
12
+
13
+ # @overload [](hash)
14
+ # Creates a SymbolHash object from an existing Hash
15
+ #
16
+ # @example
17
+ # SymbolHash['x' => 1, :y => 2] # => #<SymbolHash:0x...>
18
+ # @param [Hash] hash the hash object
19
+ # @return [SymbolHash] a new SymbolHash from a hash object
20
+ #
21
+ # @overload [](*list)
22
+ # Creates a SymbolHash from an even list of keys and values
23
+ #
24
+ # @example
25
+ # SymbolHash[key1, value1, key2, value2, ...]
26
+ # @param [Array] list an even list of key followed by value
27
+ # @return [SymbolHash] a new SymbolHash object
28
+ def self.[](*hsh)
29
+ obj = new
30
+ if hsh.size == 1 && hsh.first.is_a?(Hash)
31
+ hsh.first.each {|k, v| obj[k] = v }
32
+ else
33
+ 0.step(hsh.size, 2) {|n| obj[hsh[n]] = hsh[n + 1] }
34
+ end
35
+ obj
36
+ end
37
+
38
+ # Assigns a value to a symbolized key
39
+ # @param [#to_sym] key the key
40
+ # @param [Object] value the value to be assigned. If this is a String and
41
+ # values are set to be symbolized, it will be converted into a Symbol.
42
+ def []=(key, value)
43
+ super(key.to_sym, value.instance_of?(String) && @symbolize_value ? value.to_sym : value)
44
+ end
45
+
46
+ # Accessed a symbolized key
47
+ # @param [#to_sym] key the key to access
48
+ # @return [Object] the value associated with the key
49
+ def [](key) super(key.to_sym) end
50
+
51
+ # Deleted a key and value associated with it
52
+ # @param [#to_sym] key the key to delete
53
+ # @return [void]
54
+ def delete(key) super(key.to_sym) end
55
+
56
+ # Tests if a symbolized key exists
57
+ # @param [#to_sym] key the key to test
58
+ # @return [Boolean] whether the key exists
59
+ def key?(key) super(key.to_sym) end
60
+ alias has_key? key?
61
+
62
+ # Updates the object with the contents of another Hash object.
63
+ # This method modifies the original SymbolHash object
64
+ #
65
+ # @param [Hash] hash the hash object to copy the values from
66
+ # @return [SymbolHash] self
67
+ def update(hash) hash.each {|k, v| self[k] = v }; self end
68
+ alias merge! update
69
+
70
+ # Merges the contents of another hash into a new SymbolHash object
71
+ #
72
+ # @param [Hash] hash the hash of objects to copy
73
+ # @return [SymbolHash] a new SymbolHash containing the merged data
74
+ def merge(hash) dup.merge!(hash) end
75
+ end