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,203 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module YARD
|
|
3
|
+
module Server
|
|
4
|
+
module Commands
|
|
5
|
+
# This is the base command class used to implement custom commands for
|
|
6
|
+
# a server. A command will be routed to by the {Router} class and return
|
|
7
|
+
# a Rack-style response.
|
|
8
|
+
#
|
|
9
|
+
# == Attribute Initializers
|
|
10
|
+
# All attributes can be initialized via options passed into the {#initialize}
|
|
11
|
+
# method. When creating a custom command, the {Adapter#options} will
|
|
12
|
+
# automatically be mapped to attributes by the same name on your class.
|
|
13
|
+
#
|
|
14
|
+
# class MyCommand < Base
|
|
15
|
+
# attr_accessor :myattr
|
|
16
|
+
# end
|
|
17
|
+
#
|
|
18
|
+
# Adapter.new(libs, {:myattr => 'foo'}).start
|
|
19
|
+
#
|
|
20
|
+
# # when a request comes in, cmd.myattr == 'foo'
|
|
21
|
+
#
|
|
22
|
+
# == Subclassing Notes
|
|
23
|
+
# To implement a custom command, override the {#run} method, not {#call}.
|
|
24
|
+
# In your implementation, you should set the body and status for requests.
|
|
25
|
+
# See details in the +#run+ method documentation.
|
|
26
|
+
#
|
|
27
|
+
# Note that if your command deals directly with libraries, you should
|
|
28
|
+
# consider subclassing the more specific {LibraryCommand} class instead.
|
|
29
|
+
#
|
|
30
|
+
# @abstract
|
|
31
|
+
# @see #run
|
|
32
|
+
class Base
|
|
33
|
+
include StaticCaching
|
|
34
|
+
|
|
35
|
+
# @group Basic Command and Adapter Options
|
|
36
|
+
|
|
37
|
+
# @return [Hash] the options passed to the command's constructor
|
|
38
|
+
attr_accessor :command_options
|
|
39
|
+
|
|
40
|
+
# @return [Adapter] the server adapter
|
|
41
|
+
attr_accessor :adapter
|
|
42
|
+
|
|
43
|
+
# @return [Boolean] whether to cache
|
|
44
|
+
attr_accessor :caching
|
|
45
|
+
|
|
46
|
+
# @group Attributes Set Per Request
|
|
47
|
+
|
|
48
|
+
# @return [Rack::Request] request object
|
|
49
|
+
attr_accessor :request
|
|
50
|
+
|
|
51
|
+
# @return [String] the path after the command base URI
|
|
52
|
+
attr_accessor :path
|
|
53
|
+
|
|
54
|
+
# @return [Hash{String => String}] response headers
|
|
55
|
+
attr_accessor :headers
|
|
56
|
+
|
|
57
|
+
# @return [Numeric] status code. Defaults to 200 per request
|
|
58
|
+
attr_accessor :status
|
|
59
|
+
|
|
60
|
+
# @return [String] the response body. Defaults to empty string.
|
|
61
|
+
attr_accessor :body
|
|
62
|
+
|
|
63
|
+
# @group Instance Method Summary
|
|
64
|
+
|
|
65
|
+
# Creates a new command object, setting attributes named by keys
|
|
66
|
+
# in the options hash. After initialization, the options hash
|
|
67
|
+
# is saved in {#command_options} for further inspection.
|
|
68
|
+
#
|
|
69
|
+
# @example Creating a Command
|
|
70
|
+
# cmd = DisplayObjectCommand.new(:caching => true, :library => mylib)
|
|
71
|
+
# cmd.library # => mylib
|
|
72
|
+
# cmd.command_options # => {:caching => true, :library => mylib}
|
|
73
|
+
# @param [Hash] opts the options hash, saved to {#command_options}
|
|
74
|
+
# after initialization.
|
|
75
|
+
def initialize(opts = {})
|
|
76
|
+
opts.each do |key, value|
|
|
77
|
+
send("#{key}=", value) if respond_to?("#{key}=")
|
|
78
|
+
end
|
|
79
|
+
self.command_options = opts
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
# The main method called by a router with a request object.
|
|
83
|
+
#
|
|
84
|
+
# @note This command should not be overridden by subclasses. Implement
|
|
85
|
+
# the callback method {#run} instead.
|
|
86
|
+
# @param [Adapter Dependent] request the request object
|
|
87
|
+
# @return [Array(Numeric,Hash,Array<String>)] a Rack-style response
|
|
88
|
+
# of status, headers, and body wrapped in an array.
|
|
89
|
+
def call(request)
|
|
90
|
+
self.request = request
|
|
91
|
+
self.path ||= File.cleanpath(request.path_info[1..-1])
|
|
92
|
+
self.headers = {'Content-Type' => 'text/html'}
|
|
93
|
+
self.body = ''
|
|
94
|
+
self.status = 200
|
|
95
|
+
add_cache_control
|
|
96
|
+
begin
|
|
97
|
+
run
|
|
98
|
+
rescue FinishRequest
|
|
99
|
+
nil # noop
|
|
100
|
+
rescue NotFoundError => e
|
|
101
|
+
self.body = e.message if e.message != e.class.to_s
|
|
102
|
+
not_found
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
# keep this to support commands setting status manually.
|
|
106
|
+
not_found if status == 404
|
|
107
|
+
|
|
108
|
+
[status, headers, body.is_a?(Array) ? body : [body]]
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
# @group Abstract Methods
|
|
112
|
+
|
|
113
|
+
# Subclass this method to implement a custom command. This method
|
|
114
|
+
# should set the {#status} and {#body}, and optionally modify the
|
|
115
|
+
# {#headers}. Note that +#status+ defaults to 200.
|
|
116
|
+
#
|
|
117
|
+
# @example A custom command
|
|
118
|
+
# class ErrorCommand < Base
|
|
119
|
+
# def run
|
|
120
|
+
# self.body = 'ERROR! The System is down!'
|
|
121
|
+
# self.status = 500
|
|
122
|
+
# self.headers['Content-Type'] = 'text/plain'
|
|
123
|
+
# end
|
|
124
|
+
# end
|
|
125
|
+
#
|
|
126
|
+
# @abstract
|
|
127
|
+
# @return [void]
|
|
128
|
+
def run
|
|
129
|
+
raise NotImplementedError
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
protected
|
|
133
|
+
|
|
134
|
+
# @group Helper Methods
|
|
135
|
+
|
|
136
|
+
# Renders a specific object if provided, or a regular template rendering
|
|
137
|
+
# if object is not provided.
|
|
138
|
+
#
|
|
139
|
+
# @todo This method is dependent on +#options+, it should be in {LibraryCommand}.
|
|
140
|
+
# @param [CodeObjects::Base, nil] object calls {CodeObjects::Base#format} if
|
|
141
|
+
# an object is provided, or {Templates::Engine.render} if object is nil. Both
|
|
142
|
+
# receive +#options+ as an argument.
|
|
143
|
+
# @return [String] the resulting output to display
|
|
144
|
+
def render(object = nil)
|
|
145
|
+
case object
|
|
146
|
+
when CodeObjects::Base
|
|
147
|
+
cache object.format(options)
|
|
148
|
+
when nil
|
|
149
|
+
cache Templates::Engine.render(options)
|
|
150
|
+
else
|
|
151
|
+
cache object
|
|
152
|
+
end
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
# Override this method to implement custom caching mechanisms for
|
|
156
|
+
#
|
|
157
|
+
# @example Caching to memory
|
|
158
|
+
# $memory_cache = {}
|
|
159
|
+
# def cache(data)
|
|
160
|
+
# $memory_cache[path] = data
|
|
161
|
+
# end
|
|
162
|
+
# @param [String] data the data to cache
|
|
163
|
+
# @return [String] the same cached data (for chaining)
|
|
164
|
+
# @see StaticCaching
|
|
165
|
+
def cache(data)
|
|
166
|
+
super if caching
|
|
167
|
+
self.body = data
|
|
168
|
+
end
|
|
169
|
+
|
|
170
|
+
# Sets the body and headers for a 404 response. Does not modify the
|
|
171
|
+
# body if already set.
|
|
172
|
+
#
|
|
173
|
+
# @return [void]
|
|
174
|
+
def not_found
|
|
175
|
+
self.status = 404
|
|
176
|
+
return unless body.empty?
|
|
177
|
+
self.body = "Not found: #{request.path}"
|
|
178
|
+
headers['Content-Type'] = 'text/plain'
|
|
179
|
+
headers['X-Cascade'] = 'pass'
|
|
180
|
+
headers['Cache-Control'] = 'nocache'
|
|
181
|
+
end
|
|
182
|
+
|
|
183
|
+
# Sets the headers and status code for a redirection to a given URL
|
|
184
|
+
# @param [String] url the URL to redirect to
|
|
185
|
+
# @raise [FinishRequest] causes the request to terminate.
|
|
186
|
+
def redirect(url)
|
|
187
|
+
headers['Location'] = url
|
|
188
|
+
self.status = 302
|
|
189
|
+
raise FinishRequest
|
|
190
|
+
end
|
|
191
|
+
|
|
192
|
+
private
|
|
193
|
+
|
|
194
|
+
# Add a conservative cache control policy to reduce load on
|
|
195
|
+
# requests served with "?1234567890" style timestamp query strings.
|
|
196
|
+
def add_cache_control
|
|
197
|
+
return if request.query_string.to_i == 0
|
|
198
|
+
headers['Cache-Control'] ||= 'public, max-age=300'
|
|
199
|
+
end
|
|
200
|
+
end
|
|
201
|
+
end
|
|
202
|
+
end
|
|
203
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module YARD
|
|
3
|
+
module Server
|
|
4
|
+
module Commands
|
|
5
|
+
# Displays a README or extra file.
|
|
6
|
+
#
|
|
7
|
+
# @todo Implement better support for detecting binary (image) filetypes
|
|
8
|
+
class DisplayFileCommand < LibraryCommand
|
|
9
|
+
attr_accessor :index
|
|
10
|
+
|
|
11
|
+
def run
|
|
12
|
+
filename = File.cleanpath(File.join(library.source_path, path))
|
|
13
|
+
raise NotFoundError unless File.file?(filename)
|
|
14
|
+
if filename =~ /\.(jpe?g|gif|png|bmp|svg)$/i
|
|
15
|
+
headers['Content-Type'] = StaticFileCommand::DefaultMimeTypes[$1.downcase] || 'text/html'
|
|
16
|
+
render File.read_binary(filename)
|
|
17
|
+
else
|
|
18
|
+
file = CodeObjects::ExtraFileObject.new(filename)
|
|
19
|
+
options.update :object => Registry.root,
|
|
20
|
+
:type => :layout,
|
|
21
|
+
:file => file,
|
|
22
|
+
:index => index ? true : false
|
|
23
|
+
render
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module YARD
|
|
3
|
+
module Server
|
|
4
|
+
module Commands
|
|
5
|
+
# Displays documentation for a specific object identified by the path
|
|
6
|
+
class DisplayObjectCommand < LibraryCommand
|
|
7
|
+
include DocServerHelper
|
|
8
|
+
|
|
9
|
+
def run
|
|
10
|
+
if path.empty?
|
|
11
|
+
if options.readme
|
|
12
|
+
filename = options.readme.filename
|
|
13
|
+
opts = adapter.options.merge(
|
|
14
|
+
:index => true, :library => library,
|
|
15
|
+
:path => filename.sub(%r{^#{library.source_path.to_s}/}, '')
|
|
16
|
+
)
|
|
17
|
+
self.status, self.headers, self.body =
|
|
18
|
+
*DisplayFileCommand.new(opts).call(request)
|
|
19
|
+
cache(body)
|
|
20
|
+
return
|
|
21
|
+
else
|
|
22
|
+
self.path = 'index'
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
return index if path == 'index'
|
|
26
|
+
|
|
27
|
+
object = Registry.at(object_path)
|
|
28
|
+
if object
|
|
29
|
+
options.update(:type => :layout)
|
|
30
|
+
render(object)
|
|
31
|
+
else
|
|
32
|
+
not_found
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def index
|
|
37
|
+
Registry.load_all
|
|
38
|
+
|
|
39
|
+
options.update(
|
|
40
|
+
:object => '_index.html',
|
|
41
|
+
:objects => Registry.all(:module, :class),
|
|
42
|
+
:type => :layout
|
|
43
|
+
)
|
|
44
|
+
render
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def not_found
|
|
48
|
+
super
|
|
49
|
+
self.body = "Could not find object: #{object_path}"
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
private
|
|
53
|
+
|
|
54
|
+
def object_path
|
|
55
|
+
return @object_path if @object_path
|
|
56
|
+
if path == "toplevel"
|
|
57
|
+
@object_path = :root
|
|
58
|
+
else
|
|
59
|
+
@object_path = path.sub(':', '#').gsub('/', '::').sub(/^toplevel\b/, '').sub(/\.html$/, '')
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module YARD
|
|
3
|
+
module Server
|
|
4
|
+
module Commands
|
|
5
|
+
# Displays an object wrapped in frames
|
|
6
|
+
class FramesCommand < DisplayObjectCommand
|
|
7
|
+
def run
|
|
8
|
+
options.update(:frames => true, :type => :fulldoc)
|
|
9
|
+
tpl = fulldoc_template
|
|
10
|
+
tpl.generate_frameset
|
|
11
|
+
cache(tpl.contents)
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require 'thread'
|
|
3
|
+
|
|
4
|
+
module YARD
|
|
5
|
+
module Server
|
|
6
|
+
module Commands
|
|
7
|
+
class LibraryOptions < CLI::YardocOptions
|
|
8
|
+
def adapter; @command.adapter end
|
|
9
|
+
def library; @command.library end
|
|
10
|
+
def single_library; @command.single_library end
|
|
11
|
+
def serializer; @command.serializer end
|
|
12
|
+
def serialize; false end
|
|
13
|
+
|
|
14
|
+
attr_accessor :command
|
|
15
|
+
attr_accessor :frames
|
|
16
|
+
|
|
17
|
+
def each(&block)
|
|
18
|
+
super(&block)
|
|
19
|
+
yield(:adapter, adapter)
|
|
20
|
+
yield(:library, library)
|
|
21
|
+
yield(:single_library, single_library)
|
|
22
|
+
yield(:serializer, serializer)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# This is the base command for all commands that deal directly with libraries.
|
|
27
|
+
# Some commands do not, but most (like {DisplayObjectCommand}) do. If your
|
|
28
|
+
# command deals with libraries directly, subclass this class instead.
|
|
29
|
+
# See {Base} for notes on how to subclass a command.
|
|
30
|
+
#
|
|
31
|
+
# @abstract
|
|
32
|
+
class LibraryCommand < Base
|
|
33
|
+
begin
|
|
34
|
+
Process.fork { }
|
|
35
|
+
CAN_FORK = true
|
|
36
|
+
rescue Exception # rubocop:disable Lint/RescueException
|
|
37
|
+
CAN_FORK = false
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
# @return [LibraryVersion] the object containing library information
|
|
41
|
+
attr_accessor :library
|
|
42
|
+
|
|
43
|
+
# @return [LibraryOptions] default options for the library
|
|
44
|
+
attr_accessor :options
|
|
45
|
+
|
|
46
|
+
# @return [Serializers::Base] the serializer used to perform file linking
|
|
47
|
+
attr_accessor :serializer
|
|
48
|
+
|
|
49
|
+
# @return [Boolean] whether router should route for multiple libraries
|
|
50
|
+
attr_accessor :single_library
|
|
51
|
+
|
|
52
|
+
# @return [Boolean] whether to reparse data
|
|
53
|
+
attr_accessor :incremental
|
|
54
|
+
|
|
55
|
+
# @return [Boolean] whether or not this adapter calls +fork+ when serving
|
|
56
|
+
# library requests. Defaults to false.
|
|
57
|
+
attr_accessor :use_fork
|
|
58
|
+
|
|
59
|
+
# Needed to synchronize threads in {#setup_yardopts}
|
|
60
|
+
# @private
|
|
61
|
+
@@library_chdir_lock = Mutex.new
|
|
62
|
+
|
|
63
|
+
def initialize(opts = {})
|
|
64
|
+
super
|
|
65
|
+
self.serializer = DocServerSerializer.new
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def call(request)
|
|
69
|
+
if can_fork?
|
|
70
|
+
call_with_fork(request) { super }
|
|
71
|
+
else
|
|
72
|
+
begin
|
|
73
|
+
save_default_template_info
|
|
74
|
+
call_without_fork(request) { super }
|
|
75
|
+
ensure
|
|
76
|
+
restore_template_info
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
private
|
|
82
|
+
|
|
83
|
+
def call_without_fork(request)
|
|
84
|
+
self.request = request
|
|
85
|
+
self.options = LibraryOptions.new
|
|
86
|
+
options.reset_defaults
|
|
87
|
+
options.command = self
|
|
88
|
+
setup_library
|
|
89
|
+
options.title = "Documentation for #{library.name} " +
|
|
90
|
+
(library.version ? '(' + library.version + ')' : '')
|
|
91
|
+
yield
|
|
92
|
+
rescue LibraryNotPreparedError
|
|
93
|
+
not_prepared
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
def call_with_fork(request, &block)
|
|
97
|
+
IO.pipe(:binmode => true) do |reader, writer|
|
|
98
|
+
fork do
|
|
99
|
+
log.debug "[pid=#{Process.pid}] fork serving: #{request.path}"
|
|
100
|
+
reader.close
|
|
101
|
+
writer.print(Marshal.dump(call_without_fork(request, &block)))
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
writer.close
|
|
105
|
+
Marshal.load(reader.read)
|
|
106
|
+
end
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
def can_fork?
|
|
110
|
+
CAN_FORK && use_fork
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
def save_default_template_info
|
|
114
|
+
@old_template_paths = Templates::Engine.template_paths.dup
|
|
115
|
+
@old_extra_includes = Templates::Template.extra_includes.dup
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
def restore_template_info
|
|
119
|
+
Templates::Engine.template_paths = @old_template_paths
|
|
120
|
+
Templates::Template.extra_includes = @old_extra_includes
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
def setup_library
|
|
124
|
+
library.prepare! if request.xhr? && request.query['process']
|
|
125
|
+
load_yardoc
|
|
126
|
+
setup_yardopts
|
|
127
|
+
true
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
def setup_yardopts
|
|
131
|
+
@@library_chdir_lock.synchronize do
|
|
132
|
+
Dir.chdir(library.source_path) do
|
|
133
|
+
yardoc = CLI::Yardoc.new
|
|
134
|
+
if incremental
|
|
135
|
+
yardoc.run('-c', '-n', '--no-stats')
|
|
136
|
+
else
|
|
137
|
+
yardoc.parse_arguments
|
|
138
|
+
end
|
|
139
|
+
yardoc.send(:verify_markup_options)
|
|
140
|
+
yardoc.options.delete(:serializer)
|
|
141
|
+
yardoc.options.delete(:serialize)
|
|
142
|
+
options.update(yardoc.options.to_hash)
|
|
143
|
+
end
|
|
144
|
+
end
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
def load_yardoc
|
|
148
|
+
raise LibraryNotPreparedError unless library.ready?
|
|
149
|
+
if Thread.current[:__yard_last_yardoc__] == library.yardoc_file
|
|
150
|
+
log.debug "Reusing yardoc file: #{library.yardoc_file}"
|
|
151
|
+
return
|
|
152
|
+
end
|
|
153
|
+
Registry.clear
|
|
154
|
+
Templates::ErbCache.clear!
|
|
155
|
+
Registry.load_yardoc(library.yardoc_file)
|
|
156
|
+
Thread.current[:__yard_last_yardoc__] = library.yardoc_file
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
def not_prepared
|
|
160
|
+
options.update(:template => :doc_server, :type => :processing)
|
|
161
|
+
self.caching = false
|
|
162
|
+
self.status = 202
|
|
163
|
+
self.body = render
|
|
164
|
+
self.headers = {'Content-Type' => 'text/html'}
|
|
165
|
+
[status, headers, [body]]
|
|
166
|
+
end
|
|
167
|
+
|
|
168
|
+
# Hack to load a custom fulldoc template object that does
|
|
169
|
+
# not do any rendering/generation. We need this to access the
|
|
170
|
+
# generate_*_list methods.
|
|
171
|
+
def fulldoc_template
|
|
172
|
+
tplopts = [options.template, :fulldoc, options.format]
|
|
173
|
+
tplclass = Templates::Engine.template(*tplopts)
|
|
174
|
+
obj = Object.new.extend(tplclass)
|
|
175
|
+
class << obj; define_method(:init) {} end
|
|
176
|
+
obj.class = tplclass
|
|
177
|
+
obj.send(:initialize, options)
|
|
178
|
+
class << obj
|
|
179
|
+
attr_reader :contents
|
|
180
|
+
define_method(:asset) {|_, contents| @contents = contents }
|
|
181
|
+
end
|
|
182
|
+
obj
|
|
183
|
+
end
|
|
184
|
+
end
|
|
185
|
+
end
|
|
186
|
+
end
|
|
187
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module YARD
|
|
3
|
+
module Server
|
|
4
|
+
module Commands
|
|
5
|
+
class LibraryIndexOptions < CLI::YardocOptions
|
|
6
|
+
attr_accessor :adapter, :libraries
|
|
7
|
+
default_attr :template, :doc_server
|
|
8
|
+
default_attr :type, :library_list
|
|
9
|
+
default_attr :serialize, false
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
# Returns the index of libraries served by the server.
|
|
13
|
+
class LibraryIndexCommand < Base
|
|
14
|
+
attr_accessor :options
|
|
15
|
+
|
|
16
|
+
def run
|
|
17
|
+
return unless path.empty?
|
|
18
|
+
|
|
19
|
+
self.options = LibraryIndexOptions.new
|
|
20
|
+
options.adapter = adapter
|
|
21
|
+
options.libraries = adapter.libraries
|
|
22
|
+
options.reset_defaults
|
|
23
|
+
render
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module YARD
|
|
3
|
+
module Server
|
|
4
|
+
module Commands
|
|
5
|
+
# Returns a list of objects of a specific type
|
|
6
|
+
class ListCommand < LibraryCommand
|
|
7
|
+
include Templates::Helpers::BaseHelper
|
|
8
|
+
|
|
9
|
+
def run
|
|
10
|
+
Registry.load_all
|
|
11
|
+
options.update(:objects => run_verifier(Registry.all(:class, :module)))
|
|
12
|
+
list_type = request.path.split('/').last
|
|
13
|
+
meth = "generate_#{list_type}_list"
|
|
14
|
+
tpl = fulldoc_template
|
|
15
|
+
if tpl.respond_to?(meth)
|
|
16
|
+
tpl.send(meth)
|
|
17
|
+
cache(tpl.contents)
|
|
18
|
+
else
|
|
19
|
+
not_found
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module YARD
|
|
3
|
+
module Server
|
|
4
|
+
module Commands
|
|
5
|
+
# Serves requests from the root of the server
|
|
6
|
+
class RootRequestCommand < Base
|
|
7
|
+
include StaticFileHelpers
|
|
8
|
+
|
|
9
|
+
def run
|
|
10
|
+
static_template_file? || favicon? || not_found
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module YARD
|
|
3
|
+
module Server
|
|
4
|
+
module Commands
|
|
5
|
+
# Performs a search over the objects inside of a library and returns
|
|
6
|
+
# the results as HTML or plaintext
|
|
7
|
+
class SearchCommand < LibraryCommand
|
|
8
|
+
include Templates::Helpers::BaseHelper
|
|
9
|
+
include Templates::Helpers::ModuleHelper
|
|
10
|
+
include DocServerHelper
|
|
11
|
+
|
|
12
|
+
attr_accessor :results, :query
|
|
13
|
+
|
|
14
|
+
def run
|
|
15
|
+
Registry.load_all
|
|
16
|
+
self.query = request.query['q']
|
|
17
|
+
redirect(abs_url(adapter.router.docs_prefix, single_library ? library : '')) if query.nil? || query =~ /\A\s*\Z/
|
|
18
|
+
|
|
19
|
+
found = Registry.at(query)
|
|
20
|
+
redirect(url_for(found)) if found
|
|
21
|
+
|
|
22
|
+
search_for_object
|
|
23
|
+
request.xhr? ? serve_xhr : serve_normal
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def visible_results
|
|
27
|
+
results[0, 10]
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
private
|
|
31
|
+
|
|
32
|
+
def url_for(object)
|
|
33
|
+
abs_url(base_path(router.docs_prefix),
|
|
34
|
+
serializer.serialized_path(object))
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def serve_xhr
|
|
38
|
+
headers['Content-Type'] = 'text/plain'
|
|
39
|
+
self.body = visible_results.map {|o|
|
|
40
|
+
[(o.type == :method ? o.name(true) : o.name).to_s,
|
|
41
|
+
o.path,
|
|
42
|
+
o.namespace.root? ? '' : o.namespace.path,
|
|
43
|
+
url_for(o)].join(",")
|
|
44
|
+
}.join("\n")
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def serve_normal
|
|
48
|
+
options.update(
|
|
49
|
+
:visible_results => visible_results,
|
|
50
|
+
:query => query,
|
|
51
|
+
:results => results,
|
|
52
|
+
:template => :doc_server,
|
|
53
|
+
:type => :search
|
|
54
|
+
)
|
|
55
|
+
self.body = Templates::Engine.render(options)
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def search_for_object
|
|
59
|
+
# rubocop:disable Style/MultilineBlockChain
|
|
60
|
+
self.results = run_verifier(Registry.all).select do |o|
|
|
61
|
+
o.path.downcase.include?(query.downcase)
|
|
62
|
+
end.reject do |o|
|
|
63
|
+
name = (o.type == :method ? o.name(true) : o.name).to_s.downcase
|
|
64
|
+
!name.include?(query.downcase) ||
|
|
65
|
+
case o.type
|
|
66
|
+
when :method
|
|
67
|
+
!(query =~ /[#.]/) && query.include?("::")
|
|
68
|
+
when :class, :module, :constant, :class_variable
|
|
69
|
+
query =~ /[#.]/
|
|
70
|
+
end
|
|
71
|
+
end.sort_by do |o|
|
|
72
|
+
name = (o.type == :method ? o.name(true) : o.name).to_s
|
|
73
|
+
name.length.to_f / query.length.to_f
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module YARD
|
|
3
|
+
module Server
|
|
4
|
+
module Commands
|
|
5
|
+
# Serves static content when no other router matches a request
|
|
6
|
+
class StaticFileCommand < LibraryCommand
|
|
7
|
+
include StaticFileHelpers
|
|
8
|
+
|
|
9
|
+
DefaultMimeTypes['js'] = 'text/javascript'
|
|
10
|
+
|
|
11
|
+
# Defines the paths used to search for static assets. To define an
|
|
12
|
+
# extra path, use {YARD::Server.register_static_path} rather than
|
|
13
|
+
# modifying this constant directly. Also note that files in the
|
|
14
|
+
# document root will always take precedence over these paths.
|
|
15
|
+
STATIC_PATHS = []
|
|
16
|
+
|
|
17
|
+
def run
|
|
18
|
+
static_template_file? || not_found
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|