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,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module YARD::CodeObjects
|
|
3
|
+
register_separator NSEP, :module
|
|
4
|
+
|
|
5
|
+
# Represents a Ruby module.
|
|
6
|
+
class ModuleObject < NamespaceObject
|
|
7
|
+
# Returns the inheritance tree of mixins.
|
|
8
|
+
#
|
|
9
|
+
# @param [Boolean] include_mods if true, will include mixed in
|
|
10
|
+
# modules (which is likely what is wanted).
|
|
11
|
+
# @return [Array<NamespaceObject>] a list of namespace objects
|
|
12
|
+
def inheritance_tree(include_mods = false)
|
|
13
|
+
return [self] unless include_mods
|
|
14
|
+
[self] + mixins(:instance, :class).map do |m|
|
|
15
|
+
next if m == self
|
|
16
|
+
next m unless m.respond_to?(:inheritance_tree)
|
|
17
|
+
m.inheritance_tree(true)
|
|
18
|
+
end.compact.flatten.uniq
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module YARD
|
|
3
|
+
module CodeObjects
|
|
4
|
+
# This module controls registration and accessing of namespace separators
|
|
5
|
+
# for {Registry} lookup.
|
|
6
|
+
#
|
|
7
|
+
# @since 0.9.1
|
|
8
|
+
module NamespaceMapper
|
|
9
|
+
# @!group Registering a Separator for a Namespace
|
|
10
|
+
|
|
11
|
+
# Registers a separator with an optional set of valid types that
|
|
12
|
+
# must follow the separator lexically.
|
|
13
|
+
#
|
|
14
|
+
# Calls all callbacks defined by {NamespaceMapper.on_invalidate} after
|
|
15
|
+
# the separator is registered.
|
|
16
|
+
#
|
|
17
|
+
# @param sep [String] the separator string for the namespace
|
|
18
|
+
# @param valid_types [Array<Symbol>] a list of object types that
|
|
19
|
+
# must follow the separator. If the list is empty, any type can
|
|
20
|
+
# follow the separator.
|
|
21
|
+
# @example Registering separators for a method object
|
|
22
|
+
# # Anything after a "#" denotes a method object
|
|
23
|
+
# register_separator "#", :method
|
|
24
|
+
# # Anything after a "." denotes a method object
|
|
25
|
+
# register_separator ".", :method
|
|
26
|
+
# @see .on_invalidate
|
|
27
|
+
def register_separator(sep, *valid_types)
|
|
28
|
+
NamespaceMapper.invalidate
|
|
29
|
+
|
|
30
|
+
valid_types.each do |t|
|
|
31
|
+
NamespaceMapper.rev_map[t] ||= []
|
|
32
|
+
NamespaceMapper.rev_map[t] << sep
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
NamespaceMapper.map[sep] ||= []
|
|
36
|
+
NamespaceMapper.map[sep] += valid_types
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# Unregisters a separator by a type.
|
|
40
|
+
#
|
|
41
|
+
# @param type [Symbol] the type to unregister
|
|
42
|
+
# @see #register_separator
|
|
43
|
+
def unregister_separator_by_type(type)
|
|
44
|
+
seps = NamespaceMapper.rev_map[type]
|
|
45
|
+
return unless seps
|
|
46
|
+
|
|
47
|
+
seps.each {|s| NamespaceMapper.map.delete(s) }
|
|
48
|
+
NamespaceMapper.rev_map.delete(type)
|
|
49
|
+
NamespaceMapper.invalidate
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
# Clears the map of separators.
|
|
53
|
+
#
|
|
54
|
+
# @return [void]
|
|
55
|
+
def clear_separators
|
|
56
|
+
NamespaceMapper.invalidate
|
|
57
|
+
NamespaceMapper.map = {}
|
|
58
|
+
NamespaceMapper.rev_map = {}
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
# Gets or sets the default separator value to use when no
|
|
62
|
+
# separator for the namespace can be determined.
|
|
63
|
+
#
|
|
64
|
+
# @param value [String, nil] the default separator, or nil to return the
|
|
65
|
+
# value
|
|
66
|
+
# @example
|
|
67
|
+
# default_separator "::"
|
|
68
|
+
def default_separator(value = nil)
|
|
69
|
+
if value
|
|
70
|
+
NamespaceMapper.invalidate
|
|
71
|
+
NamespaceMapper.default_separator = Regexp.quote value
|
|
72
|
+
else
|
|
73
|
+
NamespaceMapper.default_separator
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
# @!group Separator and Type Lookup Helpers
|
|
78
|
+
|
|
79
|
+
# @return [Array<String>] all of the registered separators
|
|
80
|
+
def separators
|
|
81
|
+
NamespaceMapper.map.keys
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
# @return [Regexp] the regexp match of all separators
|
|
85
|
+
def separators_match
|
|
86
|
+
NamespaceMapper.map_match
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
# @param sep [String] the separator to return types for
|
|
90
|
+
# @return [Array<Symbol>] a list of types registered to a separator
|
|
91
|
+
def types_for_separator(sep)
|
|
92
|
+
NamespaceMapper.map[sep] || []
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
# @param type [String] the type to return separators for
|
|
96
|
+
# @return [Array<Symbol>] a list of separators registered to a type
|
|
97
|
+
def separators_for_type(type)
|
|
98
|
+
NamespaceMapper.rev_map[type] || []
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
# Internal methods to act as a singleton registry
|
|
102
|
+
class << self
|
|
103
|
+
# @!group Invalidation callbacks
|
|
104
|
+
|
|
105
|
+
# Adds a callback that triggers when a new separator is registered or
|
|
106
|
+
# the cache is cleared by invalidation.
|
|
107
|
+
def on_invalidate(&block)
|
|
108
|
+
(@invalidation_callbacks ||= []).push(block)
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
# @!visibility private
|
|
112
|
+
|
|
113
|
+
# @return [Hash] a mapping of types to separators
|
|
114
|
+
def map
|
|
115
|
+
@map ||= {}
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
# @return [Hash] a reverse mapping of separators to types
|
|
119
|
+
def rev_map
|
|
120
|
+
@rev_map ||= {}
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
# Invalidates all separators
|
|
124
|
+
# @return [void]
|
|
125
|
+
def invalidate
|
|
126
|
+
@map_match = nil
|
|
127
|
+
(@invalidation_callbacks || []).each(&:call)
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
# @return [Regexp] the full list of separators as a regexp match
|
|
131
|
+
def map_match
|
|
132
|
+
@map_match ||= map.keys.map {|k| Regexp.quote k }.join('|')
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
# @return [String] the default separator when no separator can begin
|
|
136
|
+
# determined.
|
|
137
|
+
attr_accessor :default_separator
|
|
138
|
+
end
|
|
139
|
+
end
|
|
140
|
+
end
|
|
141
|
+
end
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module YARD::CodeObjects
|
|
3
|
+
register_separator NSEP, :namespace
|
|
4
|
+
default_separator NSEP
|
|
5
|
+
|
|
6
|
+
# A "namespace" is any object that can store other objects within itself.
|
|
7
|
+
# The two main Ruby objects that can act as namespaces are modules
|
|
8
|
+
# ({ModuleObject}) and classes ({ClassObject}).
|
|
9
|
+
class NamespaceObject < Base
|
|
10
|
+
# @return [Array<String>] a list of ordered group names inside the namespace
|
|
11
|
+
# @since 0.6.0
|
|
12
|
+
attr_accessor :groups
|
|
13
|
+
|
|
14
|
+
# The list of objects defined in this namespace
|
|
15
|
+
# @return [Array<Base>] a list of objects
|
|
16
|
+
attr_reader :children
|
|
17
|
+
|
|
18
|
+
# A hash containing two keys, class and instance, each containing
|
|
19
|
+
# the attribute name with a { :read, :write } hash for the read and
|
|
20
|
+
# write objects respectively.
|
|
21
|
+
#
|
|
22
|
+
# @example The attributes of an object
|
|
23
|
+
# >> Registry.at('YARD::Docstring').attributes
|
|
24
|
+
# => {
|
|
25
|
+
# :class => { },
|
|
26
|
+
# :instance => {
|
|
27
|
+
# :ref_tags => {
|
|
28
|
+
# :read => #<yardoc method YARD::Docstring#ref_tags>,
|
|
29
|
+
# :write => nil
|
|
30
|
+
# },
|
|
31
|
+
# :object => {
|
|
32
|
+
# :read => #<yardoc method YARD::Docstring#object>,
|
|
33
|
+
# :write => #<yardoc method YARD::Docstring#object=>
|
|
34
|
+
# },
|
|
35
|
+
# ...
|
|
36
|
+
# }
|
|
37
|
+
# }
|
|
38
|
+
# @return [Hash] a list of methods
|
|
39
|
+
attr_reader :attributes
|
|
40
|
+
|
|
41
|
+
# A hash containing two keys, :class and :instance, each containing
|
|
42
|
+
# a hash of objects and their alias names.
|
|
43
|
+
# @return [Hash] a list of methods
|
|
44
|
+
attr_reader :aliases
|
|
45
|
+
|
|
46
|
+
# Class mixins
|
|
47
|
+
# @return [Array<ModuleObject>] a list of mixins
|
|
48
|
+
attr_reader :class_mixins
|
|
49
|
+
|
|
50
|
+
# Instance mixins
|
|
51
|
+
# @return [Array<ModuleObject>] a list of mixins
|
|
52
|
+
attr_reader :instance_mixins
|
|
53
|
+
|
|
54
|
+
# Creates a new namespace object inside +namespace+ with +name+.
|
|
55
|
+
# @see Base#initialize
|
|
56
|
+
def initialize(namespace, name, *args, &block)
|
|
57
|
+
@children = CodeObjectList.new(self)
|
|
58
|
+
@class_mixins = CodeObjectList.new(self)
|
|
59
|
+
@instance_mixins = CodeObjectList.new(self)
|
|
60
|
+
@attributes = SymbolHash[:class => SymbolHash.new, :instance => SymbolHash.new]
|
|
61
|
+
@aliases = {}
|
|
62
|
+
@groups = []
|
|
63
|
+
super
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
# Only the class attributes
|
|
67
|
+
# @return [Hash] a list of method names and their read/write objects
|
|
68
|
+
# @see #attributes
|
|
69
|
+
def class_attributes
|
|
70
|
+
attributes[:class]
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
# Only the instance attributes
|
|
74
|
+
# @return [Hash] a list of method names and their read/write objects
|
|
75
|
+
# @see #attributes
|
|
76
|
+
def instance_attributes
|
|
77
|
+
attributes[:instance]
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
# Looks for a child that matches the attributes specified by +opts+.
|
|
81
|
+
#
|
|
82
|
+
# @example Finds a child by name and scope
|
|
83
|
+
# namespace.child(:name => :to_s, :scope => :instance)
|
|
84
|
+
# # => #<yardoc method MyClass#to_s>
|
|
85
|
+
# @return [Base, nil] the first matched child object, or nil
|
|
86
|
+
def child(opts = {})
|
|
87
|
+
if !opts.is_a?(Hash)
|
|
88
|
+
children.find {|o| o.name == opts.to_sym }
|
|
89
|
+
else
|
|
90
|
+
opts = SymbolHash[opts]
|
|
91
|
+
children.find do |obj|
|
|
92
|
+
opts.each do |meth, value|
|
|
93
|
+
break false unless value.is_a?(Array) ? value.include?(obj[meth]) : obj[meth] == value
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
# Returns all methods that match the attributes specified by +opts+. If
|
|
100
|
+
# no options are provided, returns all methods.
|
|
101
|
+
#
|
|
102
|
+
# @example Finds all private and protected class methods
|
|
103
|
+
# namespace.meths(:visibility => [:private, :protected], :scope => :class)
|
|
104
|
+
# # => [#<yardoc method MyClass.privmeth>, #<yardoc method MyClass.protmeth>]
|
|
105
|
+
# @option opts [Array<Symbol>, Symbol] :visibility ([:public, :private,
|
|
106
|
+
# :protected]) the visibility of the methods to list. Can be an array or
|
|
107
|
+
# single value.
|
|
108
|
+
# @option opts [Array<Symbol>, Symbol] :scope ([:class, :instance]) the
|
|
109
|
+
# scope of the methods to list. Can be an array or single value.
|
|
110
|
+
# @option opts [Boolean] :included (true) whether to include mixed in
|
|
111
|
+
# methods in the list.
|
|
112
|
+
# @return [Array<MethodObject>] a list of method objects
|
|
113
|
+
def meths(opts = {})
|
|
114
|
+
opts = SymbolHash[
|
|
115
|
+
:visibility => [:public, :private, :protected],
|
|
116
|
+
:scope => [:class, :instance],
|
|
117
|
+
:included => true
|
|
118
|
+
].update(opts)
|
|
119
|
+
|
|
120
|
+
opts[:visibility] = [opts[:visibility]].flatten
|
|
121
|
+
opts[:scope] = [opts[:scope]].flatten
|
|
122
|
+
|
|
123
|
+
ourmeths = children.select do |o|
|
|
124
|
+
o.is_a?(MethodObject) &&
|
|
125
|
+
opts[:visibility].include?(o.visibility) &&
|
|
126
|
+
opts[:scope].include?(o.scope)
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
ourmeths + (opts[:included] ? included_meths(opts) : [])
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
# Returns methods included from any mixins that match the attributes
|
|
133
|
+
# specified by +opts+. If no options are specified, returns all included
|
|
134
|
+
# methods.
|
|
135
|
+
#
|
|
136
|
+
# @option opts [Array<Symbol>, Symbol] :visibility ([:public, :private,
|
|
137
|
+
# :protected]) the visibility of the methods to list. Can be an array or
|
|
138
|
+
# single value.
|
|
139
|
+
# @option opts [Array<Symbol>, Symbol] :scope ([:class, :instance]) the
|
|
140
|
+
# scope of the methods to list. Can be an array or single value.
|
|
141
|
+
# @option opts [Boolean] :included (true) whether to include mixed in
|
|
142
|
+
# methods in the list.
|
|
143
|
+
# @see #meths
|
|
144
|
+
def included_meths(opts = {})
|
|
145
|
+
opts = SymbolHash[:scope => [:instance, :class]].update(opts)
|
|
146
|
+
[opts[:scope]].flatten.map do |scope|
|
|
147
|
+
mixins(scope).inject([]) do |list, mixin|
|
|
148
|
+
next list if mixin.is_a?(Proxy)
|
|
149
|
+
arr = mixin.meths(opts.merge(:scope => :instance)).reject do |o|
|
|
150
|
+
next false if opts[:all]
|
|
151
|
+
child(:name => o.name, :scope => scope) || list.find {|o2| o2.name == o.name }
|
|
152
|
+
end
|
|
153
|
+
arr.map! {|o| ExtendedMethodObject.new(o) } if scope == :class
|
|
154
|
+
list + arr
|
|
155
|
+
end
|
|
156
|
+
end.flatten
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
# Returns all constants in the namespace
|
|
160
|
+
#
|
|
161
|
+
# @option opts [Boolean] :included (true) whether or not to include
|
|
162
|
+
# mixed in constants in list
|
|
163
|
+
# @return [Array<ConstantObject>] a list of constant objects
|
|
164
|
+
def constants(opts = {})
|
|
165
|
+
opts = SymbolHash[:included => true].update(opts)
|
|
166
|
+
consts = children.select {|o| o.is_a? ConstantObject }
|
|
167
|
+
consts + (opts[:included] ? included_constants : [])
|
|
168
|
+
end
|
|
169
|
+
|
|
170
|
+
# Returns constants included from any mixins
|
|
171
|
+
# @return [Array<ConstantObject>] a list of constant objects
|
|
172
|
+
def included_constants
|
|
173
|
+
instance_mixins.inject([]) do |list, mixin|
|
|
174
|
+
if mixin.respond_to? :constants
|
|
175
|
+
list += mixin.constants.reject do |o|
|
|
176
|
+
child(:name => o.name) || list.find {|o2| o2.name == o.name }
|
|
177
|
+
end
|
|
178
|
+
else
|
|
179
|
+
list
|
|
180
|
+
end
|
|
181
|
+
end
|
|
182
|
+
end
|
|
183
|
+
|
|
184
|
+
# Returns class variables defined in this namespace.
|
|
185
|
+
# @return [Array<ClassVariableObject>] a list of class variable objects
|
|
186
|
+
def cvars
|
|
187
|
+
children.select {|o| o.is_a? ClassVariableObject }
|
|
188
|
+
end
|
|
189
|
+
|
|
190
|
+
# Returns for specific scopes. If no scopes are provided, returns all mixins.
|
|
191
|
+
# @param [Array<Symbol>] scopes a list of scopes (:class, :instance) to
|
|
192
|
+
# return mixins for. If this is empty, all scopes will be returned.
|
|
193
|
+
# @return [Array<ModuleObject>] a list of mixins
|
|
194
|
+
def mixins(*scopes)
|
|
195
|
+
return class_mixins if scopes == [:class]
|
|
196
|
+
return instance_mixins if scopes == [:instance]
|
|
197
|
+
class_mixins | instance_mixins
|
|
198
|
+
end
|
|
199
|
+
end
|
|
200
|
+
end
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module YARD
|
|
3
|
+
module CodeObjects
|
|
4
|
+
# A special type of +NoMethodError+ when raised from a {Proxy}
|
|
5
|
+
class ProxyMethodError < NoMethodError; end
|
|
6
|
+
|
|
7
|
+
# @private
|
|
8
|
+
PROXY_MATCH = /(?:#{NSEPQ}|#{ISEPQ}|#{CSEPQ})([^#{Regexp.quote(
|
|
9
|
+
(NSEP + ISEP + CSEP).split('').uniq.join
|
|
10
|
+
)}]+)$/
|
|
11
|
+
|
|
12
|
+
# The Proxy class is a way to lazily resolve code objects in
|
|
13
|
+
# cases where the object may not yet exist. A proxy simply stores
|
|
14
|
+
# an unresolved path until a method is called on the object, at which
|
|
15
|
+
# point it does a lookup using {Registry.resolve}. If the object is
|
|
16
|
+
# not found, a warning is raised and {ProxyMethodError} might be raised.
|
|
17
|
+
#
|
|
18
|
+
# @example Creates a Proxy to the String class from a module
|
|
19
|
+
# # When the String class is parsed this method will
|
|
20
|
+
# # begin to act like the String ClassObject.
|
|
21
|
+
# Proxy.new(mymoduleobj, "String")
|
|
22
|
+
# @see Registry.resolve
|
|
23
|
+
# @see ProxyMethodError
|
|
24
|
+
class Proxy
|
|
25
|
+
def self.===(other) other.is_a?(self) end
|
|
26
|
+
|
|
27
|
+
attr_reader :namespace
|
|
28
|
+
alias parent namespace
|
|
29
|
+
|
|
30
|
+
# Creates a new Proxy
|
|
31
|
+
#
|
|
32
|
+
# @raise [ArgumentError] if namespace is not a NamespaceObject
|
|
33
|
+
# @return [Proxy] self
|
|
34
|
+
def initialize(namespace, name, type = nil)
|
|
35
|
+
namespace = Registry.root if !namespace || namespace == :root
|
|
36
|
+
|
|
37
|
+
if name =~ /^#{NSEPQ}/
|
|
38
|
+
namespace = Registry.root
|
|
39
|
+
name = name[2..-1]
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
if name =~ PROXY_MATCH
|
|
43
|
+
@orignamespace = namespace
|
|
44
|
+
@origname = name
|
|
45
|
+
@imethod = true if name.include? ISEP
|
|
46
|
+
namespace = Proxy.new(namespace, $`) unless $`.empty?
|
|
47
|
+
name = $1
|
|
48
|
+
else
|
|
49
|
+
@orignamespace = nil
|
|
50
|
+
@origname = nil
|
|
51
|
+
@imethod = nil
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
@name = name.to_sym
|
|
55
|
+
@namespace = namespace
|
|
56
|
+
@obj = nil
|
|
57
|
+
@imethod ||= nil
|
|
58
|
+
self.type = type
|
|
59
|
+
|
|
60
|
+
if @namespace.is_a?(ConstantObject)
|
|
61
|
+
unless @namespace.value =~ /\A#{NAMESPACEMATCH}\Z/
|
|
62
|
+
raise Parser::UndocumentableError, "constant mapping for " +
|
|
63
|
+
"#{@origname} (type=#{type.inspect})"
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
@origname = nil # forget these for a constant
|
|
67
|
+
@orignamespace = nil
|
|
68
|
+
@namespace = Proxy.new(@namespace.namespace, @namespace.value)
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
unless @namespace.is_a?(NamespaceObject) || @namespace.is_a?(Proxy)
|
|
72
|
+
raise ArgumentError, "Invalid namespace object: #{namespace}"
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
# If the name begins with "::" (like "::String")
|
|
76
|
+
# this is definitely a root level object, so
|
|
77
|
+
# remove the namespace and attach it to the root
|
|
78
|
+
if @name =~ /^#{NSEPQ}/
|
|
79
|
+
@name.gsub!(/^#{NSEPQ}/, '')
|
|
80
|
+
@namespace = Registry.root
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
# (see Base#name)
|
|
85
|
+
def name(prefix = false)
|
|
86
|
+
prefix ? "#{@imethod && ISEP}#{@name}" : @name
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
# Returns a text representation of the Proxy
|
|
90
|
+
# @return [String] the object's #inspect method or P(OBJECTPATH)
|
|
91
|
+
def inspect
|
|
92
|
+
to_obj ? to_obj.inspect : "P(#{path})"
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
# If the proxy resolves to an object, returns its path, otherwise
|
|
96
|
+
# guesses at the correct path using the original namespace and name.
|
|
97
|
+
#
|
|
98
|
+
# @return [String] the assumed path of the proxy (or the real path
|
|
99
|
+
# of the resolved object)
|
|
100
|
+
def path
|
|
101
|
+
to_obj ? to_obj.path : proxy_path
|
|
102
|
+
end
|
|
103
|
+
alias to_s path
|
|
104
|
+
alias to_str path
|
|
105
|
+
alias title path
|
|
106
|
+
|
|
107
|
+
# @return [Boolean]
|
|
108
|
+
def is_a?(klass)
|
|
109
|
+
to_obj ? to_obj.is_a?(klass) : self.class <= klass
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
# @return [Boolean]
|
|
113
|
+
def ===(other)
|
|
114
|
+
to_obj ? to_obj === other : self.class <= other.class
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
# @return [Boolean]
|
|
118
|
+
def <=>(other)
|
|
119
|
+
if other.respond_to? :path
|
|
120
|
+
path <=> other.path
|
|
121
|
+
else
|
|
122
|
+
false
|
|
123
|
+
end
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
# @return [Boolean]
|
|
127
|
+
def equal?(other)
|
|
128
|
+
if other.respond_to? :path
|
|
129
|
+
path == other.path
|
|
130
|
+
else
|
|
131
|
+
false
|
|
132
|
+
end
|
|
133
|
+
end
|
|
134
|
+
alias == equal?
|
|
135
|
+
|
|
136
|
+
# @return [Integer] the object's hash value (for equality checking)
|
|
137
|
+
def hash; path.hash end
|
|
138
|
+
|
|
139
|
+
# Returns the class name of the object the proxy is mimicking, if
|
|
140
|
+
# resolved. Otherwise returns +Proxy+.
|
|
141
|
+
# @return [Class] the resolved object's class or +Proxy+
|
|
142
|
+
def class
|
|
143
|
+
to_obj ? to_obj.class : Proxy
|
|
144
|
+
end
|
|
145
|
+
|
|
146
|
+
# Returns the type of the proxy. If it cannot be resolved at the
|
|
147
|
+
# time of the call, it will either return the inferred proxy type
|
|
148
|
+
# (see {#type=}) or +:proxy+
|
|
149
|
+
# @return [Symbol] the Proxy's type
|
|
150
|
+
# @see #type=
|
|
151
|
+
def type
|
|
152
|
+
to_obj ? to_obj.type : @type || :proxy
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
# Allows a parser to infer the type of the proxy by its path.
|
|
156
|
+
# @param [#to_sym] type the proxy's inferred type
|
|
157
|
+
# @return [void]
|
|
158
|
+
def type=(type) @type = type ? type.to_sym : nil end
|
|
159
|
+
|
|
160
|
+
# @return [Boolean]
|
|
161
|
+
def instance_of?(klass)
|
|
162
|
+
self.class == klass
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
# @return [Boolean]
|
|
166
|
+
def kind_of?(klass)
|
|
167
|
+
self.class <= klass
|
|
168
|
+
end
|
|
169
|
+
|
|
170
|
+
# @return [Boolean]
|
|
171
|
+
def respond_to?(meth, include_private = false)
|
|
172
|
+
to_obj ? to_obj.respond_to?(meth, include_private) : super
|
|
173
|
+
end
|
|
174
|
+
|
|
175
|
+
# Dispatches the method to the resolved object.
|
|
176
|
+
#
|
|
177
|
+
# @raise [ProxyMethodError] if the proxy cannot find the real object
|
|
178
|
+
def method_missing(meth, *args, &block)
|
|
179
|
+
if to_obj
|
|
180
|
+
to_obj.__send__(meth, *args, &block)
|
|
181
|
+
else
|
|
182
|
+
log.warn "Load Order / Name Resolution Problem on #{path}:\n" \
|
|
183
|
+
"-\n" \
|
|
184
|
+
"Something is trying to call #{meth} on object #{path} before it has been recognized.\n" \
|
|
185
|
+
"This error usually means that you need to modify the order in which you parse files\n" \
|
|
186
|
+
"so that #{path} is parsed before methods or other objects attempt to access it.\n" \
|
|
187
|
+
"-\n" \
|
|
188
|
+
"YARD will recover from this error and continue to parse but you *may* have problems\n" \
|
|
189
|
+
"with your generated documentation. You should probably fix this.\n" \
|
|
190
|
+
"-\n"
|
|
191
|
+
begin
|
|
192
|
+
super
|
|
193
|
+
rescue NoMethodError
|
|
194
|
+
raise ProxyMethodError, "Proxy cannot call method ##{meth} on object '#{path}'"
|
|
195
|
+
end
|
|
196
|
+
end
|
|
197
|
+
end
|
|
198
|
+
|
|
199
|
+
# This class is never a root object
|
|
200
|
+
def root?; false end
|
|
201
|
+
|
|
202
|
+
private
|
|
203
|
+
|
|
204
|
+
# @note this method fixes a bug in 1.9.2: https://gist.github.com/437136
|
|
205
|
+
def to_ary; nil end
|
|
206
|
+
|
|
207
|
+
# Attempts to find the object that this unresolved object
|
|
208
|
+
# references by checking if any objects by this name are
|
|
209
|
+
# registered all the way up the namespace tree.
|
|
210
|
+
#
|
|
211
|
+
# @return [Base, nil] the registered code object or nil
|
|
212
|
+
def to_obj
|
|
213
|
+
return @obj if @obj
|
|
214
|
+
@obj = Registry.resolve(@namespace, (@imethod ? ISEP : '') + @name.to_s, false, false, @type)
|
|
215
|
+
if @obj
|
|
216
|
+
if @origname && @origname.include?("::") && !@obj.path.include?(@origname)
|
|
217
|
+
# the object's path should include the original proxy namespace,
|
|
218
|
+
# otherwise it's (probably) not the right object.
|
|
219
|
+
@obj = nil
|
|
220
|
+
else
|
|
221
|
+
@namespace = @obj.namespace
|
|
222
|
+
@name = @obj.name
|
|
223
|
+
end
|
|
224
|
+
end
|
|
225
|
+
@obj
|
|
226
|
+
end
|
|
227
|
+
|
|
228
|
+
def proxy_path
|
|
229
|
+
if @namespace.root?
|
|
230
|
+
(@imethod ? ISEP : "") + name.to_s
|
|
231
|
+
elsif @origname
|
|
232
|
+
if @origname =~ CONSTANTSTART
|
|
233
|
+
@origname
|
|
234
|
+
else
|
|
235
|
+
[namespace.path, @origname].join
|
|
236
|
+
end
|
|
237
|
+
elsif name.to_s =~ CONSTANTSTART
|
|
238
|
+
name.to_s
|
|
239
|
+
else # class meth?
|
|
240
|
+
[namespace.path, name.to_s].join(CSEP)
|
|
241
|
+
end
|
|
242
|
+
end
|
|
243
|
+
end
|
|
244
|
+
end
|
|
245
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module YARD
|
|
3
|
+
module CodeObjects
|
|
4
|
+
# Represents the root namespace object (the invisible Ruby module that
|
|
5
|
+
# holds all top level modules, class and other objects).
|
|
6
|
+
class RootObject < ModuleObject
|
|
7
|
+
def path; @path ||= "" end
|
|
8
|
+
def inspect; @inspect ||= "#<yardoc root>" end
|
|
9
|
+
def root?; true end
|
|
10
|
+
def title; 'Top Level Namespace' end
|
|
11
|
+
|
|
12
|
+
def equal?(other)
|
|
13
|
+
other == :root ? true : super(other)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def hash; :root.hash end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|