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,83 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module YARD
|
|
3
|
+
module Serializers
|
|
4
|
+
# The abstract base serializer. Serializers allow templates to be
|
|
5
|
+
# rendered to various endpoints. For instance, a {FileSystemSerializer}
|
|
6
|
+
# would allow template contents to be written to the filesystem
|
|
7
|
+
#
|
|
8
|
+
# To implement a custom serializer, override the following methods:
|
|
9
|
+
# * {#serialize}
|
|
10
|
+
# * {#serialized_path}
|
|
11
|
+
#
|
|
12
|
+
# Optionally, a serializer can implement before and after filters:
|
|
13
|
+
# * {#before_serialize}
|
|
14
|
+
# * {#after_serialize}
|
|
15
|
+
#
|
|
16
|
+
# @abstract Override this class to implement a custom serializer.
|
|
17
|
+
class Base
|
|
18
|
+
# All serializer options are saved so they can be passed to other serializers.
|
|
19
|
+
#
|
|
20
|
+
# @return [SymbolHash] the serializer options
|
|
21
|
+
attr_reader :options
|
|
22
|
+
|
|
23
|
+
# @group Creating a New Serializer
|
|
24
|
+
|
|
25
|
+
# Creates a new serializer with options
|
|
26
|
+
#
|
|
27
|
+
# @param [Hash] opts the options to assign to {#options}
|
|
28
|
+
def initialize(opts = {})
|
|
29
|
+
@options = SymbolHash.new(false).update(opts)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# @group Serializing an Object
|
|
33
|
+
|
|
34
|
+
# Serializes an object.
|
|
35
|
+
#
|
|
36
|
+
# @abstract This method should implement the logic that serializes
|
|
37
|
+
# +data+ to the respective endpoint. This method should also call
|
|
38
|
+
# the before and after callbacks {#before_serialize} and {#after_serialize}
|
|
39
|
+
# @param [CodeObjects::Base, String] object the object to serialize the
|
|
40
|
+
# data for. The object can also be a string (for non-object serialization)
|
|
41
|
+
# @param [String] data the contents that should be serialized
|
|
42
|
+
def serialize(object, data) end
|
|
43
|
+
|
|
44
|
+
# The serialized path of an object
|
|
45
|
+
#
|
|
46
|
+
# @abstract This method should return the path of the object on the
|
|
47
|
+
# endpoint. For instance, for a file serializer, this should return
|
|
48
|
+
# the filename that represents the object on disk.
|
|
49
|
+
# @param [CodeObjects::Base] object the object to return a path for
|
|
50
|
+
# @return [String] the serialized path of an object
|
|
51
|
+
def serialized_path(object) end
|
|
52
|
+
|
|
53
|
+
# Returns whether an object has been serialized
|
|
54
|
+
#
|
|
55
|
+
# @abstract This method should return whether the endpoint already exists.
|
|
56
|
+
# For instance, a file system serializer would check if the file exists
|
|
57
|
+
# on disk. You will most likely use +#basepath+ and {#serialized_path} to
|
|
58
|
+
# get the endpoint's location.
|
|
59
|
+
# @param [CodeObjects::Base] object the object to check existence of
|
|
60
|
+
# @return [Boolean] whether the endpoint exists.
|
|
61
|
+
# @since 0.6.0
|
|
62
|
+
def exists?(object) # rubocop:disable Lint/UnusedMethodArgument
|
|
63
|
+
false
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
# @group Callbacks
|
|
67
|
+
|
|
68
|
+
# Called before serialization.
|
|
69
|
+
#
|
|
70
|
+
# @abstract Should run code before serialization. Should return false
|
|
71
|
+
# if serialization should not occur.
|
|
72
|
+
# @return [Boolean] whether or not serialization should occur
|
|
73
|
+
def before_serialize; end
|
|
74
|
+
|
|
75
|
+
# Called after serialization.
|
|
76
|
+
#
|
|
77
|
+
# @abstract Should run code after serialization.
|
|
78
|
+
# @param [String] data the data that was serialized.
|
|
79
|
+
# @return [void]
|
|
80
|
+
def after_serialize(data); end
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
end
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module YARD
|
|
3
|
+
module Serializers
|
|
4
|
+
# Implements a serializer that reads from and writes to the filesystem.
|
|
5
|
+
class FileSystemSerializer < Base
|
|
6
|
+
# The base path to write data to.
|
|
7
|
+
# @return [String] a base path
|
|
8
|
+
attr_reader :basepath
|
|
9
|
+
|
|
10
|
+
def basepath=(value)
|
|
11
|
+
@basepath = options[:basepath] = value
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# The extension of the filename (defaults to +html+)
|
|
15
|
+
#
|
|
16
|
+
# @return [String] the extension of the file. Empty string for no extension.
|
|
17
|
+
attr_reader :extension
|
|
18
|
+
|
|
19
|
+
def extension=(value)
|
|
20
|
+
@extension = options[:extension] = value
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
# Creates a new FileSystemSerializer with options
|
|
24
|
+
#
|
|
25
|
+
# @option opts [String] :basepath ('doc') the base path to write data to
|
|
26
|
+
# @option opts [String] :extension ('html') the extension of the serialized
|
|
27
|
+
# path filename. If this is set to the empty string, no extension is used.
|
|
28
|
+
def initialize(opts = {})
|
|
29
|
+
super
|
|
30
|
+
@name_map = nil
|
|
31
|
+
@basepath = (options[:basepath] || 'doc').to_s
|
|
32
|
+
@extension = (options.key?(:extension) ? options[:extension] : 'html').to_s
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# Serializes object with data to its serialized path (prefixed by the +#basepath+).
|
|
36
|
+
#
|
|
37
|
+
# @return [String] the written data (for chaining)
|
|
38
|
+
def serialize(object, data)
|
|
39
|
+
path = File.join(basepath, serialized_path(object))
|
|
40
|
+
log.debug "Serializing to #{path}"
|
|
41
|
+
File.open!(path, "wb") {|f| f.write data }
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
# Implements the serialized path of a code object.
|
|
45
|
+
#
|
|
46
|
+
# @param [CodeObjects::Base, CodeObjects::ExtraFileObject, String] object
|
|
47
|
+
# the object to get a path for. The path of a string is the string itself.
|
|
48
|
+
# @return [String] if object is a String, returns
|
|
49
|
+
# object, otherwise the path on disk (without the basepath).
|
|
50
|
+
def serialized_path(object)
|
|
51
|
+
return object if object.is_a?(String)
|
|
52
|
+
|
|
53
|
+
if object.is_a?(CodeObjects::ExtraFileObject)
|
|
54
|
+
fspath = ['file.' + object.name + (extension.empty? ? '' : ".#{extension}")]
|
|
55
|
+
else
|
|
56
|
+
objname = object != YARD::Registry.root ? mapped_name(object) : "top-level-namespace"
|
|
57
|
+
objname += '_' + object.scope.to_s[0, 1] if object.is_a?(CodeObjects::MethodObject)
|
|
58
|
+
fspath = [objname + (extension.empty? ? '' : ".#{extension}")]
|
|
59
|
+
if object.namespace && object.namespace.path != ""
|
|
60
|
+
fspath.unshift(*object.namespace.path.split(CodeObjects::NSEP))
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
File.join(encode_path_components(*fspath))
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
# Checks the disk for an object and returns whether it was serialized.
|
|
68
|
+
#
|
|
69
|
+
# @param [CodeObjects::Base] object the object to check
|
|
70
|
+
# @return [Boolean] whether an object has been serialized to disk
|
|
71
|
+
def exists?(object)
|
|
72
|
+
File.exist?(File.join(basepath, serialized_path(object)))
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
private
|
|
76
|
+
|
|
77
|
+
# Builds a filename mapping from object paths to filesystem path names.
|
|
78
|
+
# Needed to handle case sensitive YARD objects mapped into a case
|
|
79
|
+
# insensitive filesystem. Uses with {#mapped_name} to determine the
|
|
80
|
+
# mapping name for a given object.
|
|
81
|
+
#
|
|
82
|
+
# @note In order to use filesystem name mapping, you must initialize
|
|
83
|
+
# the serializer object after preparing the {YARD::Registry}.
|
|
84
|
+
def build_filename_map
|
|
85
|
+
@name_map = {}
|
|
86
|
+
YARD::Registry.all.each do |object|
|
|
87
|
+
lpath = nil
|
|
88
|
+
if object.parent && object.parent.type != :root
|
|
89
|
+
lpath = object.parent.path + "::" + object.name.to_s.downcase
|
|
90
|
+
else
|
|
91
|
+
lpath = object.path.downcase
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
@name_map[lpath] ||= {}
|
|
95
|
+
size = @name_map[lpath].size
|
|
96
|
+
name = "#{object.name}#{size > 0 ? "_" * size : ""}"
|
|
97
|
+
@name_map[lpath][object.name] = name
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
# @return [String] the filesystem mapped name of a given object.
|
|
102
|
+
def mapped_name(object)
|
|
103
|
+
build_filename_map unless @name_map
|
|
104
|
+
map = @name_map[object.path.downcase]
|
|
105
|
+
map && map[object.name] ? map[object.name] : object.name.to_s
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
# Remove special chars from filenames.
|
|
109
|
+
# Windows disallows \ / : * ? " < > | but we will just remove any
|
|
110
|
+
# non alphanumeric (plus period, underscore and dash).
|
|
111
|
+
def encode_path_components(*components)
|
|
112
|
+
components.map! do |p|
|
|
113
|
+
p.gsub(/[^\w\.-]/) do |x|
|
|
114
|
+
encoded = String.new('_')
|
|
115
|
+
|
|
116
|
+
x.each_byte {|b| encoded << ("%X" % b) }
|
|
117
|
+
encoded
|
|
118
|
+
end
|
|
119
|
+
end
|
|
120
|
+
end
|
|
121
|
+
end
|
|
122
|
+
end
|
|
123
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module YARD
|
|
3
|
+
module Serializers
|
|
4
|
+
# Serializes an object to a process (like less)
|
|
5
|
+
#
|
|
6
|
+
# @example Serializing to a pager (less)
|
|
7
|
+
# serializer = ProcessSerializer.new('less')
|
|
8
|
+
# serializer.serialize(object, "data!")
|
|
9
|
+
class ProcessSerializer < Base
|
|
10
|
+
# Creates a new ProcessSerializer for the shell command +cmd+
|
|
11
|
+
#
|
|
12
|
+
# @param [String] cmd the command that will accept data on stdin
|
|
13
|
+
def initialize(cmd)
|
|
14
|
+
@cmd = cmd
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# Overrides serialize behaviour and writes data to standard input
|
|
18
|
+
# of the associated command
|
|
19
|
+
def serialize(_object, data)
|
|
20
|
+
IO.popen(@cmd, 'w') {|io| io.write(data) }
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module YARD
|
|
3
|
+
module Serializers
|
|
4
|
+
# A serializer that writes data to standard output.
|
|
5
|
+
class StdoutSerializer < Base
|
|
6
|
+
# Creates a serializer to print text to stdout
|
|
7
|
+
#
|
|
8
|
+
# @param [Fixnum, nil] wrap if wrap is a number, wraps text to +wrap+
|
|
9
|
+
# columns, otherwise no wrapping is done.
|
|
10
|
+
def initialize(wrap = nil)
|
|
11
|
+
@wrap = wrap
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# Overrides serialize behaviour to write data to standard output
|
|
15
|
+
def serialize(_object, data)
|
|
16
|
+
print(@wrap ? word_wrap(data, @wrap) : data)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
private
|
|
20
|
+
|
|
21
|
+
# Wraps text to a specific column length
|
|
22
|
+
#
|
|
23
|
+
# @param [String] text the text to wrap
|
|
24
|
+
# @param [Fixnum] _length the column length to wrap to
|
|
25
|
+
# @return [String] the wrapped text
|
|
26
|
+
def word_wrap(text, _length = 80)
|
|
27
|
+
# See ruby-talk/10655 / Ernest Ellingson
|
|
28
|
+
text.gsub(/\t/, " ").gsub(/.{1,50}(?:\s|\Z)/) do
|
|
29
|
+
($& + 5.chr).gsub(/\n\005/, "\n").gsub(/\005/, "\n")
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module YARD
|
|
3
|
+
# Stubs marshal dumps and acts a delegate class for an object by path
|
|
4
|
+
#
|
|
5
|
+
# @private
|
|
6
|
+
class StubProxy
|
|
7
|
+
instance_methods.each {|m| undef_method(m) unless m.to_s =~ /^__|^object_id$/ }
|
|
8
|
+
|
|
9
|
+
def _dump(_depth) @path end
|
|
10
|
+
def self._load(str) new(str) end
|
|
11
|
+
def hash; @path.hash end
|
|
12
|
+
|
|
13
|
+
def initialize(path, transient = false)
|
|
14
|
+
@path = path
|
|
15
|
+
@transient = transient
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def method_missing(meth, *args, &block)
|
|
19
|
+
return true if meth == :respond_to? && args.first == :_dump
|
|
20
|
+
@object = nil if @transient
|
|
21
|
+
@object ||= Registry.at(@path)
|
|
22
|
+
@object.send(meth, *args, &block)
|
|
23
|
+
rescue NoMethodError => e
|
|
24
|
+
e.backtrace.delete_if {|l| l[0, FILELEN] == __FILE__ }
|
|
25
|
+
raise
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
FILELEN = __FILE__.size
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
module Serializers
|
|
32
|
+
class YardocSerializer < FileSystemSerializer
|
|
33
|
+
def initialize(yfile)
|
|
34
|
+
super(:basepath => yfile, :extension => 'dat')
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def objects_path; File.join(basepath, 'objects') end
|
|
38
|
+
# @deprecated The registry no longer tracks proxy types
|
|
39
|
+
def proxy_types_path; File.join(basepath, 'proxy_types') end
|
|
40
|
+
def checksums_path; File.join(basepath, 'checksums') end
|
|
41
|
+
def object_types_path; File.join(basepath, 'object_types') end
|
|
42
|
+
def complete_lock_path; File.join(basepath, 'complete') end
|
|
43
|
+
def processing_path; File.join(basepath, 'processing') end
|
|
44
|
+
|
|
45
|
+
def complete?
|
|
46
|
+
File.exist?(complete_lock_path) && !locked_for_writing?
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
# Creates a pessmistic transactional lock on the database for writing.
|
|
50
|
+
# Use with {YARD.parse} to ensure the database is not written multiple
|
|
51
|
+
# times.
|
|
52
|
+
#
|
|
53
|
+
# @see #locked_for_writing?
|
|
54
|
+
def lock_for_writing
|
|
55
|
+
File.open!(processing_path, 'w') {}
|
|
56
|
+
yield
|
|
57
|
+
ensure
|
|
58
|
+
File.unlink(processing_path) if File.exist?(processing_path)
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
# @return [Boolean] whether the database is currently locked for writing
|
|
62
|
+
def locked_for_writing?
|
|
63
|
+
File.exist?(processing_path)
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def serialized_path(object)
|
|
67
|
+
path =
|
|
68
|
+
case object
|
|
69
|
+
when String, Symbol
|
|
70
|
+
object = object.to_s
|
|
71
|
+
if object =~ /#/
|
|
72
|
+
object += '_i'
|
|
73
|
+
elsif object =~ /\./
|
|
74
|
+
object += '_c'
|
|
75
|
+
end
|
|
76
|
+
object.split(/::|\.|#/).map do |p|
|
|
77
|
+
p.gsub(/[^\w\.-]/) do |x|
|
|
78
|
+
encoded = '_'
|
|
79
|
+
|
|
80
|
+
x.each_byte {|b| encoded += ("%X" % b) }
|
|
81
|
+
encoded
|
|
82
|
+
end
|
|
83
|
+
end.join('/') + '.' + extension
|
|
84
|
+
when YARD::CodeObjects::RootObject
|
|
85
|
+
'root.dat'
|
|
86
|
+
else
|
|
87
|
+
super(object)
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
File.join('objects', path)
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
def serialize(object)
|
|
94
|
+
if Hash === object
|
|
95
|
+
super(object[:root], dump(object)) if object[:root]
|
|
96
|
+
else
|
|
97
|
+
super(object, dump(object))
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
def deserialize(path, is_path = false)
|
|
102
|
+
path = File.join(basepath, serialized_path(path)) unless is_path
|
|
103
|
+
if File.file?(path)
|
|
104
|
+
log.debug "Deserializing #{path}..."
|
|
105
|
+
Marshal.load(File.read_binary(path))
|
|
106
|
+
else
|
|
107
|
+
log.debug "Could not find #{path}"
|
|
108
|
+
nil
|
|
109
|
+
end
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
private
|
|
113
|
+
|
|
114
|
+
def dump(object)
|
|
115
|
+
object = internal_dump(object, true) unless object.is_a?(Hash)
|
|
116
|
+
Marshal.dump(object)
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
def internal_dump(object, first_object = false)
|
|
120
|
+
if !first_object && object.is_a?(CodeObjects::Base) &&
|
|
121
|
+
!(Tags::OverloadTag === object)
|
|
122
|
+
return StubProxy.new(object.path)
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
if object.is_a?(Hash) || object.is_a?(Array) ||
|
|
126
|
+
object.is_a?(CodeObjects::Base) ||
|
|
127
|
+
!object.instance_variables.empty?
|
|
128
|
+
object = object.dup
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
object.instance_variables.each do |ivar|
|
|
132
|
+
ivar_obj = object.instance_variable_get(ivar)
|
|
133
|
+
ivar_obj_dump = internal_dump(ivar_obj)
|
|
134
|
+
object.instance_variable_set(ivar, ivar_obj_dump)
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
case object
|
|
138
|
+
when Hash
|
|
139
|
+
list = object.map do |k, v|
|
|
140
|
+
[k, v].map {|item| internal_dump(item) }
|
|
141
|
+
end
|
|
142
|
+
object.replace(Hash[list])
|
|
143
|
+
when Array
|
|
144
|
+
list = object.map {|item| internal_dump(item) }
|
|
145
|
+
object.replace(list)
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
object
|
|
149
|
+
end
|
|
150
|
+
end
|
|
151
|
+
end
|
|
152
|
+
end
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module YARD
|
|
3
|
+
module Server
|
|
4
|
+
# Short circuits a request by raising an error. This exception is caught
|
|
5
|
+
# by {Commands::Base#call} to immediately end a request and return a response.
|
|
6
|
+
class FinishRequest < RuntimeError; end
|
|
7
|
+
|
|
8
|
+
# Raises an error if a resource is not found. This exception is caught by
|
|
9
|
+
# {Commands::Base#call} to immediately end a request and return a 404 response
|
|
10
|
+
# code. If a message is provided, the body is set to the exception message.
|
|
11
|
+
class NotFoundError < RuntimeError; end
|
|
12
|
+
|
|
13
|
+
# This class implements the bridge between the {Router} and the server
|
|
14
|
+
# backend for a specific server type. YARD implements concrete adapters
|
|
15
|
+
# for WEBrick and Rack respectively, though other adapters can be made
|
|
16
|
+
# for other server architectures.
|
|
17
|
+
#
|
|
18
|
+
# == Subclassing Notes
|
|
19
|
+
# To create a concrete adapter class, implement the {#start} method to
|
|
20
|
+
# initiate the server backend.
|
|
21
|
+
#
|
|
22
|
+
# @abstract
|
|
23
|
+
class Adapter
|
|
24
|
+
# @return [String] the location where static files are located, if any.
|
|
25
|
+
# To set this field on initialization, pass +:DocumentRoot+ to the
|
|
26
|
+
# +server_opts+ argument in {#initialize}
|
|
27
|
+
attr_accessor :document_root
|
|
28
|
+
|
|
29
|
+
# @return [Hash{String=>Array<LibraryVersion>}] a map of libraries.
|
|
30
|
+
# @see LibraryVersion LibraryVersion for information on building a list of libraries
|
|
31
|
+
# @see #add_library
|
|
32
|
+
attr_accessor :libraries
|
|
33
|
+
|
|
34
|
+
# @return [Hash] options passed and processed by adapters. The actual
|
|
35
|
+
# options mostly depend on the adapters themselves.
|
|
36
|
+
attr_accessor :options
|
|
37
|
+
|
|
38
|
+
# @return [Hash] a set of options to pass to the server backend. Note
|
|
39
|
+
# that +:DocumentRoot+ also sets the {#document_root}.
|
|
40
|
+
attr_accessor :server_options
|
|
41
|
+
|
|
42
|
+
# @return [Router] the router object used to route URLs to commands
|
|
43
|
+
attr_accessor :router
|
|
44
|
+
|
|
45
|
+
# Performs any global initialization for the adapter.
|
|
46
|
+
# @note If you subclass this method, make sure to call +super+.
|
|
47
|
+
# @return [void]
|
|
48
|
+
def self.setup
|
|
49
|
+
Templates::Template.extra_includes |= [YARD::Server::DocServerHelper]
|
|
50
|
+
Templates::Engine.template_paths |= [File.dirname(__FILE__) + '/templates']
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
# Performs any global shutdown procedures for the adapter.
|
|
54
|
+
# @note If you subclass this method, make sure to call +super+.
|
|
55
|
+
# @return [void]
|
|
56
|
+
def self.shutdown
|
|
57
|
+
Templates::Template.extra_includes -= [YARD::Server::DocServerHelper]
|
|
58
|
+
Templates::Engine.template_paths -= [File.dirname(__FILE__) + '/templates']
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
# Creates a new adapter object
|
|
62
|
+
#
|
|
63
|
+
# @param [Hash{String=>Array<LibraryVersion>}] libs a list of libraries,
|
|
64
|
+
# see {#libraries} for formulating this list.
|
|
65
|
+
# @param [Hash] opts extra options to pass to the adapter
|
|
66
|
+
# @option opts [Class] :router (Router) the router class to initialize as the
|
|
67
|
+
# adapter's router.
|
|
68
|
+
# @option opts [Boolean] :caching (false) whether or not caching is enabled
|
|
69
|
+
# @option opts [Boolean] :single_library (false) whether to server documentation
|
|
70
|
+
# for a single or multiple libraries (changes URL structure)
|
|
71
|
+
def initialize(libs, opts = {}, server_opts = {})
|
|
72
|
+
self.class.setup
|
|
73
|
+
self.libraries = libs
|
|
74
|
+
self.options = opts
|
|
75
|
+
self.server_options = server_opts
|
|
76
|
+
self.document_root = server_options[:DocumentRoot]
|
|
77
|
+
self.router = (options[:router] || Router).new(self)
|
|
78
|
+
options[:adapter] = self
|
|
79
|
+
log.debug "Serving libraries using #{self.class}: #{libraries.keys.join(', ')}"
|
|
80
|
+
log.debug "Caching on" if options[:caching]
|
|
81
|
+
log.debug "Document root: #{document_root}" if document_root
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
# Adds a library to the {#libraries} mapping for a given library object.
|
|
85
|
+
# @example Adding a new library to an adapter
|
|
86
|
+
# adapter.add_library LibraryVersion.new('mylib', '1.0', '/path/to/.yardoc')
|
|
87
|
+
# @param [LibraryVersion] library a library to add
|
|
88
|
+
def add_library(library)
|
|
89
|
+
libraries[library.name] ||= []
|
|
90
|
+
libraries[library.name] |= [library]
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
# Implement this method to connect your adapter to your server.
|
|
94
|
+
# @abstract
|
|
95
|
+
def start
|
|
96
|
+
raise NotImplementedError
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
end
|