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,123 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
# Helper methods to assist with processing decorators.
|
|
3
|
+
module YARD::Handlers::Ruby::DecoratorHandlerMethods
|
|
4
|
+
# @overload process_decorator(*nodes, opts = {}, &block)
|
|
5
|
+
# Takes care of parsing method definitions passed to decorators
|
|
6
|
+
# as parameters, as well as parsing chained decorators.
|
|
7
|
+
#
|
|
8
|
+
# Use this in a handler's process block.
|
|
9
|
+
#
|
|
10
|
+
# @yieldparam method [YARD::CodeObjects::MethodObject] Method being decorated.
|
|
11
|
+
# @yieldparam node [YARD::Parser::Ruby::AstNode] AST node of the decorated method.
|
|
12
|
+
# @yieldparam name [Symbol] Name of the decorated method.
|
|
13
|
+
# @return [Array<Hash>] Array of hashes containing :method, :node, :name.
|
|
14
|
+
# See yield params.
|
|
15
|
+
#
|
|
16
|
+
# @param nodes [YARD::Parser::Ruby::AstNode] AST nodes that refer to decorated
|
|
17
|
+
# methods, like indexes of statement.parameter. Defaults to all parameters.
|
|
18
|
+
# Pass nil to specify zero parameters.
|
|
19
|
+
#
|
|
20
|
+
# @option opts [:instance, :class] :scope (:instance) Scope to use for each
|
|
21
|
+
# MethodObject.
|
|
22
|
+
#
|
|
23
|
+
# @option opts [true, false] :transfer_docstring Set false to disable
|
|
24
|
+
# transferring the decorator docstring to method definitions passed to the
|
|
25
|
+
# decorator as parameters.
|
|
26
|
+
#
|
|
27
|
+
# @option opts [true, false] :transfer_source Set false to disable
|
|
28
|
+
# transferring the decorator source code string to method definitions
|
|
29
|
+
# passed to the decorator as parameters.
|
|
30
|
+
#
|
|
31
|
+
# @example Basic Usage
|
|
32
|
+
# # Simply pass the method docs through to the method definition.
|
|
33
|
+
# process do
|
|
34
|
+
# process_decorator
|
|
35
|
+
# end
|
|
36
|
+
#
|
|
37
|
+
# @example Setting a method's visibility to private.
|
|
38
|
+
# process do
|
|
39
|
+
# process_decorator :scope => :class do |method|
|
|
40
|
+
# method.visibility = :private if method.respond_to? :visibility
|
|
41
|
+
# end
|
|
42
|
+
# end
|
|
43
|
+
def process_decorator(*nodes, &block)
|
|
44
|
+
opts = nodes.last.is_a?(Hash) ? nodes.pop : {}
|
|
45
|
+
|
|
46
|
+
all_nodes = statement.parameters.select do |p|
|
|
47
|
+
p.is_a? YARD::Parser::Ruby::AstNode
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# Parse decorator parameters (decorator chain).
|
|
51
|
+
all_nodes.each do |param|
|
|
52
|
+
parse_block param if param.call? || param.def?
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
selected_nodes =
|
|
56
|
+
if nodes.empty?
|
|
57
|
+
all_nodes
|
|
58
|
+
elsif nodes.count == 1 && nodes.first.nil?
|
|
59
|
+
[]
|
|
60
|
+
else
|
|
61
|
+
nodes
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
decorated_methods = selected_nodes.map do |param|
|
|
65
|
+
process_decorator_parameter param, opts, &block
|
|
66
|
+
end.flatten
|
|
67
|
+
|
|
68
|
+
# Store method nodes in decorator node.
|
|
69
|
+
statement.define_singleton_method :decorators do
|
|
70
|
+
decorated_methods.map {|h| h[:node] }
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
decorated_methods
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
private
|
|
77
|
+
|
|
78
|
+
def process_decorator_parameter(node, opts = {}, &block)
|
|
79
|
+
scope = opts.fetch :scope, :instance
|
|
80
|
+
transfer_docstring = opts.fetch :transfer_docstring, true
|
|
81
|
+
transfer_source = opts.fetch :transfer_source, true
|
|
82
|
+
|
|
83
|
+
name = nil
|
|
84
|
+
|
|
85
|
+
if node.call?
|
|
86
|
+
if node.respond_to? :decorators
|
|
87
|
+
return node.decorators.map do |n|
|
|
88
|
+
process_decorator_parameter n, opts, &block
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
elsif node.def?
|
|
92
|
+
name = node.jump(:def).method_name.source
|
|
93
|
+
else
|
|
94
|
+
name = node.jump(:ident, :string_content, :const).source
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
if name.nil?
|
|
98
|
+
raise YARD::Parser::UndocumentableError, 'statement, cannot determine method name'
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
method = YARD::CodeObjects::Proxy.new(
|
|
102
|
+
namespace,
|
|
103
|
+
(scope == :instance ? '#' : '.') + name.to_s,
|
|
104
|
+
:method
|
|
105
|
+
)
|
|
106
|
+
|
|
107
|
+
# Transfer source to methods passed to the helper as parameters.
|
|
108
|
+
method.source = statement.source if transfer_source && node.def?
|
|
109
|
+
|
|
110
|
+
# Transfer decorator docstring to methods passed to the helper as parameters.
|
|
111
|
+
if transfer_docstring && node.def? &&
|
|
112
|
+
statement.docstring && method.docstring.empty?
|
|
113
|
+
tags = method.tags if method.respond_to? :tags
|
|
114
|
+
tags ||= []
|
|
115
|
+
method.docstring = statement.docstring
|
|
116
|
+
tags.each {|t| method.add_tag t }
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
yield method, node, name.to_sym if block_given?
|
|
120
|
+
|
|
121
|
+
[{:method => method, :node => node, :name => name.to_sym}]
|
|
122
|
+
end
|
|
123
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module YARD
|
|
3
|
+
module Handlers
|
|
4
|
+
module Ruby
|
|
5
|
+
# Handles automatic detection of dsl-style methods
|
|
6
|
+
class DSLHandler < Base
|
|
7
|
+
include CodeObjects
|
|
8
|
+
include DSLHandlerMethods
|
|
9
|
+
handles method_call
|
|
10
|
+
namespace_only
|
|
11
|
+
process { handle_comments }
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module YARD
|
|
3
|
+
module Handlers
|
|
4
|
+
module Ruby
|
|
5
|
+
module DSLHandlerMethods
|
|
6
|
+
include CodeObjects
|
|
7
|
+
include Parser
|
|
8
|
+
|
|
9
|
+
IGNORE_METHODS = Hash[*%w(alias alias_method autoload attr attr_accessor
|
|
10
|
+
attr_reader attr_writer extend include module_function public private
|
|
11
|
+
protected private_constant private_class_method public_class_method).
|
|
12
|
+
map {|n| [n, true] }.flatten]
|
|
13
|
+
|
|
14
|
+
def handle_comments
|
|
15
|
+
return if IGNORE_METHODS[caller_method]
|
|
16
|
+
|
|
17
|
+
@docstring = statement.comments || ""
|
|
18
|
+
@docstring = @docstring.join("\n") if @docstring.is_a?(Array)
|
|
19
|
+
|
|
20
|
+
attaching = false
|
|
21
|
+
if @docstring =~ /^@!?macro\s+\[[^\]]*attach/
|
|
22
|
+
register_docstring(nil)
|
|
23
|
+
@docstring = ""
|
|
24
|
+
attaching = true
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
macro = find_attached_macro
|
|
28
|
+
if macro
|
|
29
|
+
txt = macro.expand([caller_method, *call_params], statement.source)
|
|
30
|
+
@docstring += "\n" + txt
|
|
31
|
+
|
|
32
|
+
# macro may have a directive
|
|
33
|
+
return register_docstring(nil) if !attaching && txt.match(/^\s*@!/)
|
|
34
|
+
elsif !statement.comments_hash_flag && !implicit_docstring?
|
|
35
|
+
return register_docstring(nil)
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# ignore DSL definitions if @method/@attribute directive is used
|
|
39
|
+
if @docstring =~ /^@!?(method|attribute)\b/
|
|
40
|
+
return register_docstring(nil)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
register MethodObject.new(namespace, method_name, scope) do |o|
|
|
44
|
+
o.signature = method_signature
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def register_docstring(object, docstring = @docstring, stmt = statement)
|
|
49
|
+
super
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
private
|
|
53
|
+
|
|
54
|
+
def implicit_docstring?
|
|
55
|
+
tags = %w(method attribute overload visibility scope return)
|
|
56
|
+
tags.any? {|tag| @docstring =~ /^@!?#{tag}\b/ }
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def method_name
|
|
60
|
+
name = call_params.first || ""
|
|
61
|
+
if name =~ /^#{CodeObjects::METHODNAMEMATCH}$/
|
|
62
|
+
name
|
|
63
|
+
else
|
|
64
|
+
raise UndocumentableError, "method, missing name"
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def method_signature
|
|
69
|
+
"def #{method_name}"
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
def find_attached_macro
|
|
73
|
+
Registry.all(:macro).each do |macro|
|
|
74
|
+
next unless macro.method_object
|
|
75
|
+
next unless macro_name_matches(macro)
|
|
76
|
+
(namespace.inheritance_tree(true) + [P('Object')]).each do |obj|
|
|
77
|
+
return macro if obj == macro.method_object.namespace
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
nil
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
# @return [Boolean] whether caller method matches a macro or
|
|
84
|
+
# its alias names.
|
|
85
|
+
def macro_name_matches(macro)
|
|
86
|
+
objs = [macro.method_object]
|
|
87
|
+
if objs.first.type != :proxy && objs.first.respond_to?(:aliases)
|
|
88
|
+
objs.concat(objs.first.aliases)
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
objs.any? {|obj| obj.name.to_s == caller_method.to_s }
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
# Handles 'raise' calls inside methods
|
|
3
|
+
class YARD::Handlers::Ruby::ExceptionHandler < YARD::Handlers::Ruby::Base
|
|
4
|
+
handles method_call(:raise)
|
|
5
|
+
|
|
6
|
+
process do
|
|
7
|
+
return unless owner.is_a?(MethodObject) # Only methods yield
|
|
8
|
+
return if [:command_call, :call].include? statement.type
|
|
9
|
+
return if owner.has_tag?(:raise)
|
|
10
|
+
|
|
11
|
+
klass = nil
|
|
12
|
+
if statement.call?
|
|
13
|
+
params = statement.parameters(false)
|
|
14
|
+
if params.size == 1
|
|
15
|
+
if params.first.ref? && params.first.first.type != :ident
|
|
16
|
+
klass = params.first.source
|
|
17
|
+
elsif params.first.call? && params.first.method_name(true) == :new
|
|
18
|
+
klass = params.first.namespace.source
|
|
19
|
+
end
|
|
20
|
+
elsif params.size > 1
|
|
21
|
+
klass = params.first.source
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
owner.add_tag YARD::Tags::Tag.new(:raise, '', klass) if klass
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
# Handles 'extend' call to include modules into the class scope of another
|
|
3
|
+
# @see MixinHandler
|
|
4
|
+
class YARD::Handlers::Ruby::ExtendHandler < YARD::Handlers::Ruby::MixinHandler
|
|
5
|
+
handles method_call(:extend)
|
|
6
|
+
namespace_only
|
|
7
|
+
|
|
8
|
+
def scope; :class end
|
|
9
|
+
|
|
10
|
+
private
|
|
11
|
+
|
|
12
|
+
def process_mixin(mixin)
|
|
13
|
+
if mixin == s(:var_ref, s(:kw, "self"))
|
|
14
|
+
if namespace.is_a?(ClassObject)
|
|
15
|
+
raise UndocumentableError, "extend(self) statement on class"
|
|
16
|
+
end
|
|
17
|
+
namespace.mixins(scope) << namespace
|
|
18
|
+
else
|
|
19
|
+
super
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
# (see Ruby::AliasHandler)
|
|
3
|
+
class YARD::Handlers::Ruby::Legacy::AliasHandler < YARD::Handlers::Ruby::Legacy::Base
|
|
4
|
+
handles(/\Aalias(_method)?(\s|\()/)
|
|
5
|
+
namespace_only
|
|
6
|
+
|
|
7
|
+
process do
|
|
8
|
+
if TkALIAS === statement.tokens.first
|
|
9
|
+
tokens = statement.tokens[2..-1].to_s.split(/\s+/)
|
|
10
|
+
names = [tokens[0], tokens[1]].map {|t| t.gsub(/^:(['"])?(.+?)\1?$|^(:)(.+)/, '\2') }
|
|
11
|
+
else
|
|
12
|
+
names = tokval_list(statement.tokens[2..-1], :attr)
|
|
13
|
+
end
|
|
14
|
+
raise YARD::Parser::UndocumentableError, statement.tokens.first.text if names.size != 2
|
|
15
|
+
|
|
16
|
+
names = names.map {|n| Symbol === n ? n.to_s.delete('"') : n }
|
|
17
|
+
new_meth = names[0].to_sym
|
|
18
|
+
old_meth = names[1].to_sym
|
|
19
|
+
old_obj = namespace.child(:name => old_meth, :scope => scope)
|
|
20
|
+
new_obj = register MethodObject.new(namespace, new_meth, scope) do |o|
|
|
21
|
+
o.add_file(parser.file, statement.tokens.first.line_no, statement.comments)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
if old_obj
|
|
25
|
+
new_obj.signature = old_obj.signature
|
|
26
|
+
new_obj.source = old_obj.source
|
|
27
|
+
new_obj.docstring = old_obj.docstring + YARD::Docstring.new(statement.comments)
|
|
28
|
+
new_obj.docstring.line_range = statement.comments_range
|
|
29
|
+
new_obj.docstring.hash_flag = statement.comments_hash_flag
|
|
30
|
+
new_obj.docstring.object = new_obj
|
|
31
|
+
else
|
|
32
|
+
new_obj.signature = "def #{new_meth}" # this is all we know.
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
namespace.aliases[new_obj] = old_meth
|
|
36
|
+
end
|
|
37
|
+
end
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
# (see Ruby::AttributeHandler)
|
|
3
|
+
class YARD::Handlers::Ruby::Legacy::AttributeHandler < YARD::Handlers::Ruby::Legacy::Base
|
|
4
|
+
handles(/\Aattr(?:_(?:reader|writer|accessor))?(?:\s|\()/)
|
|
5
|
+
namespace_only
|
|
6
|
+
|
|
7
|
+
process do
|
|
8
|
+
begin
|
|
9
|
+
attr_type = statement.tokens.first.text.to_sym
|
|
10
|
+
symbols = tokval_list statement.tokens[2..-1], :attr, TkTRUE, TkFALSE
|
|
11
|
+
read = true
|
|
12
|
+
write = false
|
|
13
|
+
rescue SyntaxError
|
|
14
|
+
raise YARD::Parser::UndocumentableError, attr_type
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# Change read/write based on attr_reader/writer/accessor
|
|
18
|
+
case attr_type
|
|
19
|
+
when :attr
|
|
20
|
+
# In the case of 'attr', the second parameter (if given) isn't a symbol.
|
|
21
|
+
write = symbols.pop if symbols.size == 2
|
|
22
|
+
when :attr_accessor
|
|
23
|
+
write = true
|
|
24
|
+
when :attr_reader
|
|
25
|
+
# change nothing
|
|
26
|
+
when :attr_writer
|
|
27
|
+
read = false
|
|
28
|
+
write = true
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# Add all attributes
|
|
32
|
+
symbols.each do |name|
|
|
33
|
+
namespace.attributes[scope][name] = SymbolHash[:read => nil, :write => nil]
|
|
34
|
+
|
|
35
|
+
# Show their methods as well
|
|
36
|
+
{:read => name, :write => "#{name}="}.each do |type, meth|
|
|
37
|
+
if type == :read ? read : write
|
|
38
|
+
o = MethodObject.new(namespace, meth, scope)
|
|
39
|
+
if type == :write
|
|
40
|
+
o.parameters = [['value', nil]]
|
|
41
|
+
src = "def #{meth}(value)"
|
|
42
|
+
full_src = "#{src}\n @#{name} = value\nend"
|
|
43
|
+
doc = "Sets the attribute #{name}\n@param value the value to set the attribute #{name} to."
|
|
44
|
+
else
|
|
45
|
+
src = "def #{meth}"
|
|
46
|
+
full_src = "#{src}\n @#{name}\nend"
|
|
47
|
+
doc = "Returns the value of attribute #{name}"
|
|
48
|
+
end
|
|
49
|
+
o.source ||= full_src
|
|
50
|
+
o.signature ||= src
|
|
51
|
+
register(o)
|
|
52
|
+
o.docstring = doc if o.docstring.blank?(false)
|
|
53
|
+
|
|
54
|
+
# Register the object explicitly
|
|
55
|
+
namespace.attributes[scope][name][type] = o
|
|
56
|
+
else
|
|
57
|
+
obj = namespace.children.find {|other| other.name == meth.to_sym && other.scope == scope }
|
|
58
|
+
|
|
59
|
+
# register an existing method as attribute
|
|
60
|
+
namespace.attributes[scope][name][type] = obj if obj
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module YARD
|
|
3
|
+
module Handlers
|
|
4
|
+
module Ruby::Legacy
|
|
5
|
+
# This is the base handler for the legacy parser. To implement a legacy
|
|
6
|
+
# handler, subclass this class.
|
|
7
|
+
#
|
|
8
|
+
# @abstract (see Ruby::Base)
|
|
9
|
+
class Base < Handlers::Base
|
|
10
|
+
# For tokens like TkDEF, TkCLASS, etc.
|
|
11
|
+
include YARD::Parser::Ruby::Legacy::RubyToken
|
|
12
|
+
|
|
13
|
+
# @return [Boolean] whether or not a {Parser::Ruby::Legacy::Statement} object should be handled
|
|
14
|
+
# by this handler.
|
|
15
|
+
def self.handles?(stmt)
|
|
16
|
+
handlers.any? do |a_handler|
|
|
17
|
+
case a_handler
|
|
18
|
+
when String
|
|
19
|
+
stmt.tokens.first.text == a_handler
|
|
20
|
+
when Regexp
|
|
21
|
+
stmt.tokens.to_s =~ a_handler
|
|
22
|
+
else
|
|
23
|
+
a_handler == stmt.tokens.first.class
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# Parses a statement's block with a set of state values. If the
|
|
29
|
+
# statement has no block, nothing happens. A description of state
|
|
30
|
+
# values can be found at {Handlers::Base#push_state}
|
|
31
|
+
#
|
|
32
|
+
# @param [Hash] opts State options
|
|
33
|
+
# @option opts (see Handlers::Base#push_state)
|
|
34
|
+
# @see Handlers::Base#push_state #push_state
|
|
35
|
+
def parse_block(opts = {})
|
|
36
|
+
push_state(opts) do
|
|
37
|
+
if statement.block
|
|
38
|
+
blk = Parser::Ruby::Legacy::StatementList.new(statement.block)
|
|
39
|
+
parser.process(blk)
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def call_params
|
|
45
|
+
if statement.tokens.first.is_a?(TkDEF)
|
|
46
|
+
extract_method_details.last.map(&:first)
|
|
47
|
+
else
|
|
48
|
+
tokens = statement.tokens[1..-1]
|
|
49
|
+
tokval_list(tokens, :attr, :identifier, TkId).map(&:to_s)
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def caller_method
|
|
54
|
+
if statement.tokens.first.is_a?(TkIDENTIFIER)
|
|
55
|
+
statement.tokens.first.text
|
|
56
|
+
elsif statement.tokens.first.is_a?(TkDEF)
|
|
57
|
+
extract_method_details.first
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
private
|
|
62
|
+
|
|
63
|
+
# Extracts method information for macro expansion only
|
|
64
|
+
#
|
|
65
|
+
# @todo This is a duplicate implementation of {MethodHandler}. Refactor.
|
|
66
|
+
# @return [Array<String,Array<Array<String>>>] the method name followed by method
|
|
67
|
+
# arguments (name and optional value)
|
|
68
|
+
def extract_method_details
|
|
69
|
+
if statement.tokens.to_s =~ /^def\s+(#{METHODMATCH})(?:(?:\s+|\s*\()(.*)(?:\)\s*$)?)?/m
|
|
70
|
+
meth = $1
|
|
71
|
+
args = $2
|
|
72
|
+
meth.gsub!(/\s+/, '')
|
|
73
|
+
args = tokval_list(Parser::Ruby::Legacy::TokenList.new(args), :all)
|
|
74
|
+
args.map! {|a| k, v = *a.split('=', 2); [k.strip, (v ? v.strip : nil)] } if args
|
|
75
|
+
meth = $` if meth =~ /(?:#{NSEPQ}|#{CSEPQ})([^#{NSEP}#{CSEPQ}]+)$/
|
|
76
|
+
[meth, args]
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
# The string value of a token. For example, the return value for the symbol :sym
|
|
81
|
+
# would be :sym. The return value for a string +"foo #{ bar}"+ would be the literal
|
|
82
|
+
# +"foo #{ bar}"+ without any interpolation. The return value of the identifier
|
|
83
|
+
# 'test' would be the same value: 'test'. Here is a list of common types and
|
|
84
|
+
# their return values:
|
|
85
|
+
#
|
|
86
|
+
# @example
|
|
87
|
+
# tokval(TokenList.new('"foo"').first) => "foo"
|
|
88
|
+
# tokval(TokenList.new(':foo').first) => :foo
|
|
89
|
+
# tokval(TokenList.new('CONSTANT').first, RubyToken::TkId) => "CONSTANT"
|
|
90
|
+
# tokval(TokenList.new('identifier').first, RubyToken::TkId) => "identifier"
|
|
91
|
+
# tokval(TokenList.new('3.25').first) => 3.25
|
|
92
|
+
# tokval(TokenList.new('/xyz/i').first) => /xyz/i
|
|
93
|
+
#
|
|
94
|
+
# @param [Token] token The token of the class
|
|
95
|
+
#
|
|
96
|
+
# @param [Array<Class<Token>>, Symbol] accepted_types
|
|
97
|
+
# The allowed token types that this token can be. Defaults to [{TkVal}].
|
|
98
|
+
# A list of types would be, for example, [+TkSTRING+, +TkSYMBOL+], to return
|
|
99
|
+
# the token's value if it is either of those types. If +TkVal+ is accepted,
|
|
100
|
+
# +TkNode+ is also accepted.
|
|
101
|
+
#
|
|
102
|
+
# Certain symbol keys are allowed to specify multiple types in one fell swoop.
|
|
103
|
+
# These symbols are:
|
|
104
|
+
# :string => +TkSTRING+, +TkDSTRING+, +TkDXSTRING+ and +TkXSTRING+
|
|
105
|
+
# :attr => +TkSYMBOL+ and +TkSTRING+
|
|
106
|
+
# :identifier => +TkIDENTIFIER, +TkFID+ and +TkGVAR+.
|
|
107
|
+
# :number => +TkFLOAT+, +TkINTEGER+
|
|
108
|
+
#
|
|
109
|
+
# @return [Object] if the token is one of the accepted types, in its real value form.
|
|
110
|
+
# It should be noted that identifiers and constants are kept in String form.
|
|
111
|
+
# @return [nil] if the token is not any of the specified accepted types
|
|
112
|
+
def tokval(token, *accepted_types)
|
|
113
|
+
accepted_types = [TkVal] if accepted_types.empty?
|
|
114
|
+
accepted_types.push(TkNode) if accepted_types.include? TkVal
|
|
115
|
+
|
|
116
|
+
if accepted_types.include?(:attr)
|
|
117
|
+
accepted_types.push(TkSTRING, TkSYMBOL)
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
if accepted_types.include?(:string)
|
|
121
|
+
accepted_types.push(TkSTRING, TkDSTRING, TkXSTRING, TkDXSTRING)
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
if accepted_types.include?(:identifier)
|
|
125
|
+
accepted_types.push(TkIDENTIFIER, TkFID, TkGVAR)
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
if accepted_types.include?(:number)
|
|
129
|
+
accepted_types.push(TkFLOAT, TkINTEGER)
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
return unless accepted_types.any? {|t| t === token }
|
|
133
|
+
|
|
134
|
+
case token
|
|
135
|
+
when TkSTRING, TkDSTRING, TkXSTRING, TkDXSTRING
|
|
136
|
+
token.text[1..-2]
|
|
137
|
+
when TkSYMBOL
|
|
138
|
+
token.text[1..-1].to_sym
|
|
139
|
+
when TkFLOAT
|
|
140
|
+
token.text.to_f
|
|
141
|
+
when TkINTEGER
|
|
142
|
+
token.text.to_i
|
|
143
|
+
when TkREGEXP
|
|
144
|
+
token.text =~ %r{\A/(.+)/([^/])\Z}
|
|
145
|
+
Regexp.new($1, $2)
|
|
146
|
+
when TkTRUE
|
|
147
|
+
true
|
|
148
|
+
when TkFALSE
|
|
149
|
+
false
|
|
150
|
+
when TkNIL
|
|
151
|
+
nil
|
|
152
|
+
else
|
|
153
|
+
token.text
|
|
154
|
+
end
|
|
155
|
+
end
|
|
156
|
+
|
|
157
|
+
# Returns a list of symbols or string values from a statement.
|
|
158
|
+
# The list must be a valid comma delimited list, and values
|
|
159
|
+
# will only be returned to the end of the list only.
|
|
160
|
+
#
|
|
161
|
+
# Example:
|
|
162
|
+
# attr_accessor :a, 'b', :c, :d => ['a', 'b', 'c', 'd']
|
|
163
|
+
# attr_accessor 'a', UNACCEPTED_TYPE, 'c' => ['a', 'c']
|
|
164
|
+
#
|
|
165
|
+
# The tokval list of a {Parser::Ruby::Legacy::TokenList} of the above
|
|
166
|
+
# code would be the {#tokval} value of :a, 'b',
|
|
167
|
+
# :c and :d.
|
|
168
|
+
#
|
|
169
|
+
# It should also be noted that this function stops immediately at
|
|
170
|
+
# any ruby keyword encountered:
|
|
171
|
+
# "attr_accessor :a, :b, :c if x == 5" => ['a', 'b', 'c']
|
|
172
|
+
#
|
|
173
|
+
# @param [TokenList] tokenlist The list of tokens to process.
|
|
174
|
+
# @param [Array<Class<Token>>] accepted_types passed to {#tokval}
|
|
175
|
+
# @return [Array<String>] the list of tokvalues in the list.
|
|
176
|
+
# @return [Array<EMPTY>] if there are no symbols or Strings in the list
|
|
177
|
+
# @see #tokval
|
|
178
|
+
def tokval_list(tokenlist, *accepted_types)
|
|
179
|
+
return [] unless tokenlist
|
|
180
|
+
out = [[]]
|
|
181
|
+
parencount = 0
|
|
182
|
+
beforeparen = 0
|
|
183
|
+
needcomma = false
|
|
184
|
+
seen_comma = true
|
|
185
|
+
tokenlist.each do |token|
|
|
186
|
+
tokval = accepted_types == [:all] ? token.text : tokval(token, *accepted_types)
|
|
187
|
+
parencond = !out.last.empty? && !tokval.nil?
|
|
188
|
+
# puts "#{seen_comma.inspect} #{parencount} #{token.class.class_name} #{out.inspect}"
|
|
189
|
+
case token
|
|
190
|
+
when TkCOMMA
|
|
191
|
+
if parencount == 0
|
|
192
|
+
out << [] unless out.last.empty?
|
|
193
|
+
needcomma = false
|
|
194
|
+
seen_comma = true
|
|
195
|
+
elsif parencond
|
|
196
|
+
out.last << token.text
|
|
197
|
+
end
|
|
198
|
+
when TkLPAREN
|
|
199
|
+
if seen_comma
|
|
200
|
+
beforeparen += 1
|
|
201
|
+
else
|
|
202
|
+
parencount += 1
|
|
203
|
+
out.last << token.text if parencond
|
|
204
|
+
end
|
|
205
|
+
when TkRPAREN
|
|
206
|
+
if beforeparen > 0
|
|
207
|
+
beforeparen -= 1
|
|
208
|
+
else
|
|
209
|
+
out.last << token.text if parencount > 0 && !tokval.nil?
|
|
210
|
+
parencount -= 1
|
|
211
|
+
end
|
|
212
|
+
when TkLBRACE, TkLBRACK, TkDO
|
|
213
|
+
parencount += 1
|
|
214
|
+
out.last << token.text unless tokval.nil?
|
|
215
|
+
when TkRBRACE, TkRBRACK, TkEND
|
|
216
|
+
out.last << token.text unless tokval.nil?
|
|
217
|
+
parencount -= 1
|
|
218
|
+
else
|
|
219
|
+
break if TkKW === token && ![TkTRUE, TkFALSE, TkSUPER, TkSELF, TkNIL].include?(token.class)
|
|
220
|
+
|
|
221
|
+
seen_comma = false unless TkWhitespace === token
|
|
222
|
+
if parencount == 0
|
|
223
|
+
next if needcomma
|
|
224
|
+
next if TkWhitespace === token
|
|
225
|
+
if !tokval.nil?
|
|
226
|
+
out.last << tokval
|
|
227
|
+
else
|
|
228
|
+
out.last.clear
|
|
229
|
+
needcomma = true
|
|
230
|
+
end
|
|
231
|
+
elsif parencond
|
|
232
|
+
needcomma = true
|
|
233
|
+
out.last << token.text
|
|
234
|
+
end
|
|
235
|
+
end
|
|
236
|
+
|
|
237
|
+
break if beforeparen == 0 && parencount < 0
|
|
238
|
+
end
|
|
239
|
+
# Flatten any single element lists
|
|
240
|
+
out.map {|e| e.empty? ? nil : (e.size == 1 ? e.pop : e.flatten.join) }.compact
|
|
241
|
+
end
|
|
242
|
+
end
|
|
243
|
+
end
|
|
244
|
+
end
|
|
245
|
+
end
|