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.
- checksums.yaml +7 -0
- data/hyper-pro-gem.gemspec +12 -0
- data/yard-0.9.44/CHANGELOG.md +983 -0
- data/yard-0.9.44/LEGAL +94 -0
- data/yard-0.9.44/LICENSE +22 -0
- data/yard-0.9.44/README.md +329 -0
- data/yard-0.9.44/bin/yard +13 -0
- data/yard-0.9.44/bin/yardoc +13 -0
- data/yard-0.9.44/bin/yri +13 -0
- data/yard-0.9.44/docs/CodeObjects.md +115 -0
- data/yard-0.9.44/docs/GettingStarted.md +705 -0
- data/yard-0.9.44/docs/Handlers.md +152 -0
- data/yard-0.9.44/docs/Overview.md +61 -0
- data/yard-0.9.44/docs/Parser.md +166 -0
- data/yard-0.9.44/docs/Tags.md +304 -0
- data/yard-0.9.44/docs/TagsArch.md +123 -0
- data/yard-0.9.44/docs/Templates.md +497 -0
- data/yard-0.9.44/docs/WhatsNew.md +1297 -0
- data/yard-0.9.44/docs/images/code-objects-class-diagram.png +0 -0
- data/yard-0.9.44/docs/images/handlers-class-diagram.png +0 -0
- data/yard-0.9.44/docs/images/overview-class-diagram.png +0 -0
- data/yard-0.9.44/docs/images/parser-class-diagram.png +0 -0
- data/yard-0.9.44/docs/images/tags-class-diagram.png +0 -0
- data/yard-0.9.44/docs/templates/default/fulldoc/html/full_list_tag.erb +9 -0
- data/yard-0.9.44/docs/templates/default/fulldoc/html/setup.rb +6 -0
- data/yard-0.9.44/docs/templates/default/layout/html/setup.rb +9 -0
- data/yard-0.9.44/docs/templates/default/layout/html/tag_list.erb +11 -0
- data/yard-0.9.44/docs/templates/default/yard_tags/html/list.erb +18 -0
- data/yard-0.9.44/docs/templates/default/yard_tags/html/setup.rb +26 -0
- data/yard-0.9.44/docs/templates/plugin.rb +70 -0
- data/yard-0.9.44/lib/rubygems_plugin.rb +9 -0
- data/yard-0.9.44/lib/yard/autoload.rb +328 -0
- data/yard-0.9.44/lib/yard/cli/command.rb +85 -0
- data/yard-0.9.44/lib/yard/cli/command_parser.rb +93 -0
- data/yard-0.9.44/lib/yard/cli/config.rb +198 -0
- data/yard-0.9.44/lib/yard/cli/diff.rb +278 -0
- data/yard-0.9.44/lib/yard/cli/display.rb +69 -0
- data/yard-0.9.44/lib/yard/cli/gems.rb +84 -0
- data/yard-0.9.44/lib/yard/cli/graph.rb +125 -0
- data/yard-0.9.44/lib/yard/cli/help.rb +20 -0
- data/yard-0.9.44/lib/yard/cli/i18n.rb +70 -0
- data/yard-0.9.44/lib/yard/cli/list.rb +23 -0
- data/yard-0.9.44/lib/yard/cli/markup_types.rb +32 -0
- data/yard-0.9.44/lib/yard/cli/server.rb +266 -0
- data/yard-0.9.44/lib/yard/cli/stats.rb +234 -0
- data/yard-0.9.44/lib/yard/cli/yardoc.rb +791 -0
- data/yard-0.9.44/lib/yard/cli/yardopts_command.rb +110 -0
- data/yard-0.9.44/lib/yard/cli/yri.rb +215 -0
- data/yard-0.9.44/lib/yard/code_objects/base.rb +626 -0
- data/yard-0.9.44/lib/yard/code_objects/class_object.rb +146 -0
- data/yard-0.9.44/lib/yard/code_objects/class_variable_object.rb +11 -0
- data/yard-0.9.44/lib/yard/code_objects/constant_object.rb +16 -0
- data/yard-0.9.44/lib/yard/code_objects/extended_method_object.rb +24 -0
- data/yard-0.9.44/lib/yard/code_objects/extra_file_object.rb +135 -0
- data/yard-0.9.44/lib/yard/code_objects/macro_object.rb +171 -0
- data/yard-0.9.44/lib/yard/code_objects/method_object.rb +196 -0
- data/yard-0.9.44/lib/yard/code_objects/module_object.rb +21 -0
- data/yard-0.9.44/lib/yard/code_objects/namespace_mapper.rb +141 -0
- data/yard-0.9.44/lib/yard/code_objects/namespace_object.rb +200 -0
- data/yard-0.9.44/lib/yard/code_objects/proxy.rb +245 -0
- data/yard-0.9.44/lib/yard/code_objects/root_object.rb +19 -0
- data/yard-0.9.44/lib/yard/config.rb +274 -0
- data/yard-0.9.44/lib/yard/core_ext/array.rb +16 -0
- data/yard-0.9.44/lib/yard/core_ext/file.rb +69 -0
- data/yard-0.9.44/lib/yard/core_ext/hash.rb +16 -0
- data/yard-0.9.44/lib/yard/core_ext/insertion.rb +63 -0
- data/yard-0.9.44/lib/yard/core_ext/module.rb +11 -0
- data/yard-0.9.44/lib/yard/core_ext/string.rb +68 -0
- data/yard-0.9.44/lib/yard/core_ext/symbol_hash.rb +75 -0
- data/yard-0.9.44/lib/yard/docstring.rb +386 -0
- data/yard-0.9.44/lib/yard/docstring_parser.rb +344 -0
- data/yard-0.9.44/lib/yard/gem_index.rb +29 -0
- data/yard-0.9.44/lib/yard/globals.rb +22 -0
- data/yard-0.9.44/lib/yard/handlers/base.rb +617 -0
- data/yard-0.9.44/lib/yard/handlers/c/alias_handler.rb +16 -0
- data/yard-0.9.44/lib/yard/handlers/c/attribute_handler.rb +13 -0
- data/yard-0.9.44/lib/yard/handlers/c/base.rb +164 -0
- data/yard-0.9.44/lib/yard/handlers/c/class_handler.rb +27 -0
- data/yard-0.9.44/lib/yard/handlers/c/constant_handler.rb +13 -0
- data/yard-0.9.44/lib/yard/handlers/c/handler_methods.rb +212 -0
- data/yard-0.9.44/lib/yard/handlers/c/init_handler.rb +20 -0
- data/yard-0.9.44/lib/yard/handlers/c/method_handler.rb +45 -0
- data/yard-0.9.44/lib/yard/handlers/c/mixin_handler.rb +21 -0
- data/yard-0.9.44/lib/yard/handlers/c/module_handler.rb +17 -0
- data/yard-0.9.44/lib/yard/handlers/c/override_comment_handler.rb +31 -0
- data/yard-0.9.44/lib/yard/handlers/c/path_handler.rb +11 -0
- data/yard-0.9.44/lib/yard/handlers/c/struct_handler.rb +13 -0
- data/yard-0.9.44/lib/yard/handlers/c/symbol_handler.rb +8 -0
- data/yard-0.9.44/lib/yard/handlers/common/method_handler.rb +19 -0
- data/yard-0.9.44/lib/yard/handlers/processor.rb +200 -0
- data/yard-0.9.44/lib/yard/handlers/rbs/attribute_handler.rb +79 -0
- data/yard-0.9.44/lib/yard/handlers/rbs/base.rb +38 -0
- data/yard-0.9.44/lib/yard/handlers/rbs/constant_handler.rb +18 -0
- data/yard-0.9.44/lib/yard/handlers/rbs/method_handler.rb +327 -0
- data/yard-0.9.44/lib/yard/handlers/rbs/mixin_handler.rb +20 -0
- data/yard-0.9.44/lib/yard/handlers/rbs/namespace_handler.rb +26 -0
- data/yard-0.9.44/lib/yard/handlers/ruby/alias_handler.rb +45 -0
- data/yard-0.9.44/lib/yard/handlers/ruby/attribute_handler.rb +90 -0
- data/yard-0.9.44/lib/yard/handlers/ruby/base.rb +165 -0
- data/yard-0.9.44/lib/yard/handlers/ruby/class_condition_handler.rb +92 -0
- data/yard-0.9.44/lib/yard/handlers/ruby/class_handler.rb +119 -0
- data/yard-0.9.44/lib/yard/handlers/ruby/class_variable_handler.rb +17 -0
- data/yard-0.9.44/lib/yard/handlers/ruby/comment_handler.rb +10 -0
- data/yard-0.9.44/lib/yard/handlers/ruby/constant_handler.rb +73 -0
- data/yard-0.9.44/lib/yard/handlers/ruby/decorator_handler_methods.rb +123 -0
- data/yard-0.9.44/lib/yard/handlers/ruby/dsl_handler.rb +15 -0
- data/yard-0.9.44/lib/yard/handlers/ruby/dsl_handler_methods.rb +96 -0
- data/yard-0.9.44/lib/yard/handlers/ruby/exception_handler.rb +27 -0
- data/yard-0.9.44/lib/yard/handlers/ruby/extend_handler.rb +22 -0
- data/yard-0.9.44/lib/yard/handlers/ruby/legacy/alias_handler.rb +37 -0
- data/yard-0.9.44/lib/yard/handlers/ruby/legacy/attribute_handler.rb +65 -0
- data/yard-0.9.44/lib/yard/handlers/ruby/legacy/base.rb +245 -0
- data/yard-0.9.44/lib/yard/handlers/ruby/legacy/class_condition_handler.rb +83 -0
- data/yard-0.9.44/lib/yard/handlers/ruby/legacy/class_handler.rb +113 -0
- data/yard-0.9.44/lib/yard/handlers/ruby/legacy/class_variable_handler.rb +15 -0
- data/yard-0.9.44/lib/yard/handlers/ruby/legacy/comment_handler.rb +10 -0
- data/yard-0.9.44/lib/yard/handlers/ruby/legacy/constant_handler.rb +29 -0
- data/yard-0.9.44/lib/yard/handlers/ruby/legacy/dsl_handler.rb +17 -0
- data/yard-0.9.44/lib/yard/handlers/ruby/legacy/exception_handler.rb +13 -0
- data/yard-0.9.44/lib/yard/handlers/ruby/legacy/extend_handler.rb +21 -0
- data/yard-0.9.44/lib/yard/handlers/ruby/legacy/method_handler.rb +90 -0
- data/yard-0.9.44/lib/yard/handlers/ruby/legacy/mixin_handler.rb +39 -0
- data/yard-0.9.44/lib/yard/handlers/ruby/legacy/module_function_handler.rb +19 -0
- data/yard-0.9.44/lib/yard/handlers/ruby/legacy/module_handler.rb +12 -0
- data/yard-0.9.44/lib/yard/handlers/ruby/legacy/private_class_method_handler.rb +22 -0
- data/yard-0.9.44/lib/yard/handlers/ruby/legacy/private_constant_handler.rb +22 -0
- data/yard-0.9.44/lib/yard/handlers/ruby/legacy/visibility_handler.rb +18 -0
- data/yard-0.9.44/lib/yard/handlers/ruby/legacy/yield_handler.rb +29 -0
- data/yard-0.9.44/lib/yard/handlers/ruby/method_condition_handler.rb +9 -0
- data/yard-0.9.44/lib/yard/handlers/ruby/method_handler.rb +104 -0
- data/yard-0.9.44/lib/yard/handlers/ruby/mixin_handler.rb +61 -0
- data/yard-0.9.44/lib/yard/handlers/ruby/module_function_handler.rb +39 -0
- data/yard-0.9.44/lib/yard/handlers/ruby/module_handler.rb +12 -0
- data/yard-0.9.44/lib/yard/handlers/ruby/private_class_method_handler.rb +14 -0
- data/yard-0.9.44/lib/yard/handlers/ruby/private_constant_handler.rb +43 -0
- data/yard-0.9.44/lib/yard/handlers/ruby/public_class_method_handler.rb +14 -0
- data/yard-0.9.44/lib/yard/handlers/ruby/struct_handler_methods.rb +143 -0
- data/yard-0.9.44/lib/yard/handlers/ruby/visibility_handler.rb +35 -0
- data/yard-0.9.44/lib/yard/handlers/ruby/yield_handler.rb +31 -0
- data/yard-0.9.44/lib/yard/i18n/locale.rb +67 -0
- data/yard-0.9.44/lib/yard/i18n/message.rb +57 -0
- data/yard-0.9.44/lib/yard/i18n/messages.rb +56 -0
- data/yard-0.9.44/lib/yard/i18n/po_parser.rb +61 -0
- data/yard-0.9.44/lib/yard/i18n/pot_generator.rb +290 -0
- data/yard-0.9.44/lib/yard/i18n/text.rb +173 -0
- data/yard-0.9.44/lib/yard/logging.rb +260 -0
- data/yard-0.9.44/lib/yard/open_struct.rb +67 -0
- data/yard-0.9.44/lib/yard/options.rb +217 -0
- data/yard-0.9.44/lib/yard/parser/base.rb +57 -0
- data/yard-0.9.44/lib/yard/parser/c/c_parser.rb +235 -0
- data/yard-0.9.44/lib/yard/parser/c/comment_parser.rb +134 -0
- data/yard-0.9.44/lib/yard/parser/c/statement.rb +66 -0
- data/yard-0.9.44/lib/yard/parser/rbs/rbs_parser.rb +325 -0
- data/yard-0.9.44/lib/yard/parser/rbs/statement.rb +75 -0
- data/yard-0.9.44/lib/yard/parser/ruby/ast_node.rb +559 -0
- data/yard-0.9.44/lib/yard/parser/ruby/legacy/irb/slex.rb +294 -0
- data/yard-0.9.44/lib/yard/parser/ruby/legacy/ruby_lex.rb +1360 -0
- data/yard-0.9.44/lib/yard/parser/ruby/legacy/ruby_parser.rb +32 -0
- data/yard-0.9.44/lib/yard/parser/ruby/legacy/statement.rb +68 -0
- data/yard-0.9.44/lib/yard/parser/ruby/legacy/statement_list.rb +394 -0
- data/yard-0.9.44/lib/yard/parser/ruby/legacy/token_list.rb +74 -0
- data/yard-0.9.44/lib/yard/parser/ruby/ruby_parser.rb +792 -0
- data/yard-0.9.44/lib/yard/parser/ruby/token_resolver.rb +158 -0
- data/yard-0.9.44/lib/yard/parser/source_parser.rb +526 -0
- data/yard-0.9.44/lib/yard/rake/yardoc_task.rb +81 -0
- data/yard-0.9.44/lib/yard/registry.rb +439 -0
- data/yard-0.9.44/lib/yard/registry_resolver.rb +225 -0
- data/yard-0.9.44/lib/yard/registry_store.rb +342 -0
- data/yard-0.9.44/lib/yard/rubygems/backports/LICENSE.txt +57 -0
- data/yard-0.9.44/lib/yard/rubygems/backports/MIT.txt +20 -0
- data/yard-0.9.44/lib/yard/rubygems/backports/gem.rb +10 -0
- data/yard-0.9.44/lib/yard/rubygems/backports/source_index.rb +365 -0
- data/yard-0.9.44/lib/yard/rubygems/backports.rb +10 -0
- data/yard-0.9.44/lib/yard/rubygems/doc_manager.rb +90 -0
- data/yard-0.9.44/lib/yard/rubygems/hook.rb +197 -0
- data/yard-0.9.44/lib/yard/rubygems/specification.rb +50 -0
- data/yard-0.9.44/lib/yard/serializers/base.rb +83 -0
- data/yard-0.9.44/lib/yard/serializers/file_system_serializer.rb +123 -0
- data/yard-0.9.44/lib/yard/serializers/process_serializer.rb +24 -0
- data/yard-0.9.44/lib/yard/serializers/stdout_serializer.rb +34 -0
- data/yard-0.9.44/lib/yard/serializers/yardoc_serializer.rb +152 -0
- data/yard-0.9.44/lib/yard/server/adapter.rb +100 -0
- data/yard-0.9.44/lib/yard/server/commands/base.rb +203 -0
- data/yard-0.9.44/lib/yard/server/commands/display_file_command.rb +29 -0
- data/yard-0.9.44/lib/yard/server/commands/display_object_command.rb +65 -0
- data/yard-0.9.44/lib/yard/server/commands/frames_command.rb +16 -0
- data/yard-0.9.44/lib/yard/server/commands/library_command.rb +187 -0
- data/yard-0.9.44/lib/yard/server/commands/library_index_command.rb +28 -0
- data/yard-0.9.44/lib/yard/server/commands/list_command.rb +25 -0
- data/yard-0.9.44/lib/yard/server/commands/root_request_command.rb +15 -0
- data/yard-0.9.44/lib/yard/server/commands/search_command.rb +79 -0
- data/yard-0.9.44/lib/yard/server/commands/static_file_command.rb +23 -0
- data/yard-0.9.44/lib/yard/server/commands/static_file_helpers.rb +60 -0
- data/yard-0.9.44/lib/yard/server/doc_server_helper.rb +91 -0
- data/yard-0.9.44/lib/yard/server/doc_server_serializer.rb +39 -0
- data/yard-0.9.44/lib/yard/server/http_utils.rb +512 -0
- data/yard-0.9.44/lib/yard/server/library_version.rb +277 -0
- data/yard-0.9.44/lib/yard/server/rack_adapter.rb +97 -0
- data/yard-0.9.44/lib/yard/server/router.rb +187 -0
- data/yard-0.9.44/lib/yard/server/static_caching.rb +77 -0
- data/yard-0.9.44/lib/yard/server/templates/default/fulldoc/html/css/custom.css +207 -0
- data/yard-0.9.44/lib/yard/server/templates/default/fulldoc/html/images/processing.gif +0 -0
- data/yard-0.9.44/lib/yard/server/templates/default/fulldoc/html/js/autocomplete.js +203 -0
- data/yard-0.9.44/lib/yard/server/templates/default/layout/html/breadcrumb.erb +21 -0
- data/yard-0.9.44/lib/yard/server/templates/default/layout/html/script_setup.erb +7 -0
- data/yard-0.9.44/lib/yard/server/templates/default/layout/html/setup.rb +8 -0
- data/yard-0.9.44/lib/yard/server/templates/default/method_details/html/permalink.erb +6 -0
- data/yard-0.9.44/lib/yard/server/templates/default/method_details/html/setup.rb +5 -0
- data/yard-0.9.44/lib/yard/server/templates/doc_server/library_list/html/headers.erb +8 -0
- data/yard-0.9.44/lib/yard/server/templates/doc_server/library_list/html/library_list.erb +13 -0
- data/yard-0.9.44/lib/yard/server/templates/doc_server/library_list/html/listing.erb +13 -0
- data/yard-0.9.44/lib/yard/server/templates/doc_server/library_list/html/setup.rb +6 -0
- data/yard-0.9.44/lib/yard/server/templates/doc_server/library_list/html/title.erb +2 -0
- data/yard-0.9.44/lib/yard/server/templates/doc_server/processing/html/processing.erb +58 -0
- data/yard-0.9.44/lib/yard/server/templates/doc_server/processing/html/setup.rb +4 -0
- data/yard-0.9.44/lib/yard/server/templates/doc_server/search/html/search.erb +18 -0
- data/yard-0.9.44/lib/yard/server/templates/doc_server/search/html/setup.rb +9 -0
- data/yard-0.9.44/lib/yard/server/webrick_adapter.rb +45 -0
- data/yard-0.9.44/lib/yard/server.rb +13 -0
- data/yard-0.9.44/lib/yard/tags/default_factory.rb +192 -0
- data/yard-0.9.44/lib/yard/tags/default_tag.rb +13 -0
- data/yard-0.9.44/lib/yard/tags/directives.rb +631 -0
- data/yard-0.9.44/lib/yard/tags/library.rb +633 -0
- data/yard-0.9.44/lib/yard/tags/option_tag.rb +13 -0
- data/yard-0.9.44/lib/yard/tags/overload_tag.rb +72 -0
- data/yard-0.9.44/lib/yard/tags/ref_tag.rb +8 -0
- data/yard-0.9.44/lib/yard/tags/ref_tag_list.rb +28 -0
- data/yard-0.9.44/lib/yard/tags/tag.rb +72 -0
- data/yard-0.9.44/lib/yard/tags/tag_format_error.rb +7 -0
- data/yard-0.9.44/lib/yard/tags/types_explainer.rb +288 -0
- data/yard-0.9.44/lib/yard/templates/engine.rb +185 -0
- data/yard-0.9.44/lib/yard/templates/erb_cache.rb +23 -0
- data/yard-0.9.44/lib/yard/templates/helpers/base_helper.rb +215 -0
- data/yard-0.9.44/lib/yard/templates/helpers/filter_helper.rb +27 -0
- data/yard-0.9.44/lib/yard/templates/helpers/html_helper.rb +688 -0
- data/yard-0.9.44/lib/yard/templates/helpers/html_syntax_highlight_helper.rb +83 -0
- data/yard-0.9.44/lib/yard/templates/helpers/markup/html_entities.rb +2140 -0
- data/yard-0.9.44/lib/yard/templates/helpers/markup/hybrid_markdown.rb +2131 -0
- data/yard-0.9.44/lib/yard/templates/helpers/markup/rdoc_markdown.rb +23 -0
- data/yard-0.9.44/lib/yard/templates/helpers/markup/rdoc_markup.rb +112 -0
- data/yard-0.9.44/lib/yard/templates/helpers/markup_helper.rb +175 -0
- data/yard-0.9.44/lib/yard/templates/helpers/method_helper.rb +77 -0
- data/yard-0.9.44/lib/yard/templates/helpers/module_helper.rb +21 -0
- data/yard-0.9.44/lib/yard/templates/helpers/text_helper.rb +112 -0
- data/yard-0.9.44/lib/yard/templates/helpers/uml_helper.rb +47 -0
- data/yard-0.9.44/lib/yard/templates/section.rb +103 -0
- data/yard-0.9.44/lib/yard/templates/template.rb +420 -0
- data/yard-0.9.44/lib/yard/templates/template_options.rb +91 -0
- data/yard-0.9.44/lib/yard/verifier.rb +151 -0
- data/yard-0.9.44/lib/yard/version.rb +6 -0
- data/yard-0.9.44/lib/yard.rb +75 -0
- data/yard-0.9.44/po/ja.po +31108 -0
- data/yard-0.9.44/templates/default/class/dot/setup.rb +7 -0
- data/yard-0.9.44/templates/default/class/dot/superklass.erb +3 -0
- data/yard-0.9.44/templates/default/class/html/constructor_details.erb +8 -0
- data/yard-0.9.44/templates/default/class/html/setup.rb +2 -0
- data/yard-0.9.44/templates/default/class/html/subclasses.erb +4 -0
- data/yard-0.9.44/templates/default/class/setup.rb +36 -0
- data/yard-0.9.44/templates/default/class/text/setup.rb +12 -0
- data/yard-0.9.44/templates/default/class/text/subclasses.erb +5 -0
- data/yard-0.9.44/templates/default/constant/text/header.erb +11 -0
- data/yard-0.9.44/templates/default/constant/text/setup.rb +4 -0
- data/yard-0.9.44/templates/default/docstring/html/abstract.erb +4 -0
- data/yard-0.9.44/templates/default/docstring/html/deprecated.erb +1 -0
- data/yard-0.9.44/templates/default/docstring/html/index.erb +5 -0
- data/yard-0.9.44/templates/default/docstring/html/note.erb +6 -0
- data/yard-0.9.44/templates/default/docstring/html/private.erb +4 -0
- data/yard-0.9.44/templates/default/docstring/html/returns_void.erb +1 -0
- data/yard-0.9.44/templates/default/docstring/html/text.erb +1 -0
- data/yard-0.9.44/templates/default/docstring/html/todo.erb +6 -0
- data/yard-0.9.44/templates/default/docstring/setup.rb +52 -0
- data/yard-0.9.44/templates/default/docstring/text/abstract.erb +2 -0
- data/yard-0.9.44/templates/default/docstring/text/deprecated.erb +2 -0
- data/yard-0.9.44/templates/default/docstring/text/index.erb +2 -0
- data/yard-0.9.44/templates/default/docstring/text/note.erb +4 -0
- data/yard-0.9.44/templates/default/docstring/text/private.erb +2 -0
- data/yard-0.9.44/templates/default/docstring/text/returns_void.erb +1 -0
- data/yard-0.9.44/templates/default/docstring/text/text.erb +1 -0
- data/yard-0.9.44/templates/default/docstring/text/todo.erb +4 -0
- data/yard-0.9.44/templates/default/fulldoc/html/css/common.css +1 -0
- data/yard-0.9.44/templates/default/fulldoc/html/css/full_list.css +206 -0
- data/yard-0.9.44/templates/default/fulldoc/html/css/style.css +1089 -0
- data/yard-0.9.44/templates/default/fulldoc/html/frames.erb +22 -0
- data/yard-0.9.44/templates/default/fulldoc/html/full_list.erb +40 -0
- data/yard-0.9.44/templates/default/fulldoc/html/full_list_class.erb +2 -0
- data/yard-0.9.44/templates/default/fulldoc/html/full_list_file.erb +7 -0
- data/yard-0.9.44/templates/default/fulldoc/html/full_list_method.erb +10 -0
- data/yard-0.9.44/templates/default/fulldoc/html/js/app.js +801 -0
- data/yard-0.9.44/templates/default/fulldoc/html/js/full_list.js +334 -0
- data/yard-0.9.44/templates/default/fulldoc/html/js/jquery.js +4 -0
- data/yard-0.9.44/templates/default/fulldoc/html/setup.rb +249 -0
- data/yard-0.9.44/templates/default/layout/dot/header.erb +6 -0
- data/yard-0.9.44/templates/default/layout/dot/setup.rb +15 -0
- data/yard-0.9.44/templates/default/layout/html/breadcrumb.erb +11 -0
- data/yard-0.9.44/templates/default/layout/html/files.erb +11 -0
- data/yard-0.9.44/templates/default/layout/html/footer.erb +5 -0
- data/yard-0.9.44/templates/default/layout/html/headers.erb +15 -0
- data/yard-0.9.44/templates/default/layout/html/index.erb +2 -0
- data/yard-0.9.44/templates/default/layout/html/layout.erb +26 -0
- data/yard-0.9.44/templates/default/layout/html/listing.erb +4 -0
- data/yard-0.9.44/templates/default/layout/html/objects.erb +32 -0
- data/yard-0.9.44/templates/default/layout/html/script_setup.erb +4 -0
- data/yard-0.9.44/templates/default/layout/html/search.erb +13 -0
- data/yard-0.9.44/templates/default/layout/html/setup.rb +89 -0
- data/yard-0.9.44/templates/default/method/html/header.erb +17 -0
- data/yard-0.9.44/templates/default/method/setup.rb +4 -0
- data/yard-0.9.44/templates/default/method/text/header.erb +1 -0
- data/yard-0.9.44/templates/default/method_details/html/header.erb +3 -0
- data/yard-0.9.44/templates/default/method_details/html/method_signature.erb +25 -0
- data/yard-0.9.44/templates/default/method_details/html/source.erb +10 -0
- data/yard-0.9.44/templates/default/method_details/setup.rb +11 -0
- data/yard-0.9.44/templates/default/method_details/text/header.erb +10 -0
- data/yard-0.9.44/templates/default/method_details/text/method_signature.erb +12 -0
- data/yard-0.9.44/templates/default/method_details/text/setup.rb +11 -0
- data/yard-0.9.44/templates/default/module/dot/child.erb +1 -0
- data/yard-0.9.44/templates/default/module/dot/dependencies.erb +3 -0
- data/yard-0.9.44/templates/default/module/dot/header.erb +6 -0
- data/yard-0.9.44/templates/default/module/dot/info.erb +14 -0
- data/yard-0.9.44/templates/default/module/dot/setup.rb +15 -0
- data/yard-0.9.44/templates/default/module/html/attribute_details.erb +10 -0
- data/yard-0.9.44/templates/default/module/html/attribute_summary.erb +8 -0
- data/yard-0.9.44/templates/default/module/html/box_info.erb +43 -0
- data/yard-0.9.44/templates/default/module/html/children.erb +8 -0
- data/yard-0.9.44/templates/default/module/html/constant_summary.erb +17 -0
- data/yard-0.9.44/templates/default/module/html/defines.erb +3 -0
- data/yard-0.9.44/templates/default/module/html/header.erb +5 -0
- data/yard-0.9.44/templates/default/module/html/inherited_attributes.erb +14 -0
- data/yard-0.9.44/templates/default/module/html/inherited_constants.erb +8 -0
- data/yard-0.9.44/templates/default/module/html/inherited_methods.erb +20 -0
- data/yard-0.9.44/templates/default/module/html/item_summary.erb +40 -0
- data/yard-0.9.44/templates/default/module/html/method_details_list.erb +9 -0
- data/yard-0.9.44/templates/default/module/html/method_summary.erb +22 -0
- data/yard-0.9.44/templates/default/module/html/methodmissing.erb +12 -0
- data/yard-0.9.44/templates/default/module/html/pre_docstring.erb +1 -0
- data/yard-0.9.44/templates/default/module/setup.rb +187 -0
- data/yard-0.9.44/templates/default/module/text/children.erb +10 -0
- data/yard-0.9.44/templates/default/module/text/class_meths_list.erb +8 -0
- data/yard-0.9.44/templates/default/module/text/extends.erb +8 -0
- data/yard-0.9.44/templates/default/module/text/header.erb +7 -0
- data/yard-0.9.44/templates/default/module/text/includes.erb +8 -0
- data/yard-0.9.44/templates/default/module/text/instance_meths_list.erb +8 -0
- data/yard-0.9.44/templates/default/module/text/setup.rb +13 -0
- data/yard-0.9.44/templates/default/onefile/html/files.erb +5 -0
- data/yard-0.9.44/templates/default/onefile/html/headers.erb +8 -0
- data/yard-0.9.44/templates/default/onefile/html/layout.erb +16 -0
- data/yard-0.9.44/templates/default/onefile/html/readme.erb +3 -0
- data/yard-0.9.44/templates/default/onefile/html/setup.rb +62 -0
- data/yard-0.9.44/templates/default/root/dot/child.erb +3 -0
- data/yard-0.9.44/templates/default/root/dot/setup.rb +6 -0
- data/yard-0.9.44/templates/default/root/html/setup.rb +2 -0
- data/yard-0.9.44/templates/default/tags/html/example.erb +11 -0
- data/yard-0.9.44/templates/default/tags/html/index.erb +3 -0
- data/yard-0.9.44/templates/default/tags/html/option.erb +24 -0
- data/yard-0.9.44/templates/default/tags/html/overload.erb +14 -0
- data/yard-0.9.44/templates/default/tags/html/see.erb +8 -0
- data/yard-0.9.44/templates/default/tags/html/tag.erb +20 -0
- data/yard-0.9.44/templates/default/tags/setup.rb +57 -0
- data/yard-0.9.44/templates/default/tags/text/example.erb +12 -0
- data/yard-0.9.44/templates/default/tags/text/index.erb +1 -0
- data/yard-0.9.44/templates/default/tags/text/option.erb +20 -0
- data/yard-0.9.44/templates/default/tags/text/overload.erb +19 -0
- data/yard-0.9.44/templates/default/tags/text/see.erb +11 -0
- data/yard-0.9.44/templates/default/tags/text/tag.erb +13 -0
- data/yard-0.9.44/templates/guide/class/html/setup.rb +2 -0
- data/yard-0.9.44/templates/guide/docstring/html/setup.rb +2 -0
- data/yard-0.9.44/templates/guide/fulldoc/html/css/style.css +358 -0
- data/yard-0.9.44/templates/guide/fulldoc/html/js/app.js +61 -0
- data/yard-0.9.44/templates/guide/fulldoc/html/setup.rb +74 -0
- data/yard-0.9.44/templates/guide/layout/html/layout.erb +78 -0
- data/yard-0.9.44/templates/guide/layout/html/setup.rb +25 -0
- data/yard-0.9.44/templates/guide/method/html/header.erb +18 -0
- data/yard-0.9.44/templates/guide/method/html/setup.rb +22 -0
- data/yard-0.9.44/templates/guide/module/html/header.erb +7 -0
- data/yard-0.9.44/templates/guide/module/html/method_list.erb +5 -0
- data/yard-0.9.44/templates/guide/module/html/setup.rb +27 -0
- data/yard-0.9.44/templates/guide/onefile/html/files.erb +4 -0
- data/yard-0.9.44/templates/guide/onefile/html/setup.rb +6 -0
- data/yard-0.9.44/templates/guide/onefile/html/toc.erb +3 -0
- data/yard-0.9.44/templates/guide/tags/html/setup.rb +9 -0
- 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
|