yard 0.9.5 → 0.9.6
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of yard might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.yardopts +0 -0
- data/CHANGELOG.md +20 -0
- data/LEGAL +0 -0
- data/LICENSE +0 -0
- data/README.md +70 -35
- data/Rakefile +10 -39
- data/benchmarks/builtins_vs_eval.rb +9 -8
- data/benchmarks/concat_vs_join.rb +1 -0
- data/benchmarks/erb_vs_erubis.rb +3 -2
- data/benchmarks/format_args.rb +1 -0
- data/benchmarks/generation.rb +2 -1
- data/benchmarks/marshal_vs_dbm.rb +2 -1
- data/benchmarks/parsing.rb +1 -1
- data/benchmarks/pathname_vs_string.rb +1 -0
- data/benchmarks/rdoc_vs_yardoc.rb +2 -1
- data/benchmarks/registry_store_types.rb +1 -0
- data/benchmarks/ri_vs_yri.rb +1 -0
- data/benchmarks/ripper_parser.rb +2 -1
- data/benchmarks/splat_vs_flatten.rb +4 -3
- data/benchmarks/template_erb.rb +2 -1
- data/benchmarks/template_format.rb +1 -0
- data/benchmarks/template_profile.rb +4 -3
- data/benchmarks/yri_cache.rb +2 -1
- data/bin/yard +2 -1
- data/bin/yardoc +2 -1
- data/bin/yri +2 -1
- data/docs/CodeObjects.md +0 -0
- data/docs/GettingStarted.md +0 -0
- data/docs/Handlers.md +0 -0
- data/docs/Overview.md +0 -0
- data/docs/Parser.md +0 -0
- data/docs/Tags.md +0 -0
- data/docs/TagsArch.md +0 -0
- data/docs/Templates.md +0 -0
- data/docs/WhatsNew.md +0 -0
- data/docs/images/code-objects-class-diagram.png +0 -0
- data/docs/images/tags-class-diagram.png +0 -0
- data/docs/templates/default/fulldoc/html/full_list_tag.erb +0 -0
- data/docs/templates/default/fulldoc/html/setup.rb +1 -1
- data/docs/templates/default/layout/html/setup.rb +1 -0
- data/docs/templates/default/layout/html/tag_list.erb +0 -0
- data/docs/templates/default/yard_tags/html/list.erb +0 -0
- data/docs/templates/default/yard_tags/html/setup.rb +18 -19
- data/docs/templates/plugin.rb +18 -13
- data/lib/rubygems_plugin.rb +1 -0
- data/lib/yard.rb +5 -6
- data/lib/yard/autoload.rb +4 -0
- data/lib/yard/cli/command.rb +3 -2
- data/lib/yard/cli/command_parser.rb +4 -3
- data/lib/yard/cli/config.rb +5 -4
- data/lib/yard/cli/diff.rb +39 -39
- data/lib/yard/cli/display.rb +2 -1
- data/lib/yard/cli/gems.rb +6 -5
- data/lib/yard/cli/graph.rb +4 -5
- data/lib/yard/cli/help.rb +4 -2
- data/lib/yard/cli/i18n.rb +2 -1
- data/lib/yard/cli/list.rb +2 -1
- data/lib/yard/cli/markup_types.rb +4 -5
- data/lib/yard/cli/server.rb +27 -24
- data/lib/yard/cli/stats.rb +20 -16
- data/lib/yard/cli/yardoc.rb +22 -19
- data/lib/yard/cli/yardopts_command.rb +3 -2
- data/lib/yard/cli/yri.rb +26 -25
- data/lib/yard/code_objects/base.rb +41 -37
- data/lib/yard/code_objects/class_object.rb +3 -2
- data/lib/yard/code_objects/class_variable_object.rb +2 -1
- data/lib/yard/code_objects/constant_object.rb +2 -1
- data/lib/yard/code_objects/extended_method_object.rb +2 -1
- data/lib/yard/code_objects/extra_file_object.rb +1 -0
- data/lib/yard/code_objects/macro_object.rb +10 -10
- data/lib/yard/code_objects/method_object.rb +15 -13
- data/lib/yard/code_objects/module_object.rb +1 -0
- data/lib/yard/code_objects/namespace_mapper.rb +1 -0
- data/lib/yard/code_objects/namespace_object.rb +2 -5
- data/lib/yard/code_objects/proxy.rb +35 -53
- data/lib/yard/code_objects/root_object.rb +3 -1
- data/lib/yard/config.rb +8 -9
- data/lib/yard/core_ext/array.rb +1 -0
- data/lib/yard/core_ext/file.rb +4 -3
- data/lib/yard/core_ext/hash.rb +3 -2
- data/lib/yard/core_ext/insertion.rb +7 -4
- data/lib/yard/core_ext/module.rb +2 -1
- data/lib/yard/core_ext/string.rb +5 -4
- data/lib/yard/core_ext/symbol_hash.rb +8 -6
- data/lib/yard/docstring.rb +26 -15
- data/lib/yard/docstring_parser.rb +61 -61
- data/lib/yard/gem_index.rb +17 -0
- data/lib/yard/globals.rb +6 -2
- data/lib/yard/handlers/base.rb +22 -23
- data/lib/yard/handlers/c/alias_handler.rb +3 -2
- data/lib/yard/handlers/c/attribute_handler.rb +2 -2
- data/lib/yard/handlers/c/base.rb +13 -13
- data/lib/yard/handlers/c/class_handler.rb +1 -0
- data/lib/yard/handlers/c/constant_handler.rb +3 -2
- data/lib/yard/handlers/c/handler_methods.rb +24 -25
- data/lib/yard/handlers/c/init_handler.rb +4 -2
- data/lib/yard/handlers/c/method_handler.rb +7 -6
- data/lib/yard/handlers/c/mixin_handler.rb +3 -1
- data/lib/yard/handlers/c/module_handler.rb +1 -0
- data/lib/yard/handlers/c/override_comment_handler.rb +2 -1
- data/lib/yard/handlers/c/path_handler.rb +1 -0
- data/lib/yard/handlers/c/struct_handler.rb +1 -0
- data/lib/yard/handlers/c/symbol_handler.rb +2 -1
- data/lib/yard/handlers/processor.rb +14 -15
- data/lib/yard/handlers/ruby/alias_handler.rb +4 -2
- data/lib/yard/handlers/ruby/attribute_handler.rb +11 -6
- data/lib/yard/handlers/ruby/base.rb +5 -4
- data/lib/yard/handlers/ruby/class_condition_handler.rb +4 -3
- data/lib/yard/handlers/ruby/class_handler.rb +7 -9
- data/lib/yard/handlers/ruby/class_variable_handler.rb +2 -1
- data/lib/yard/handlers/ruby/comment_handler.rb +1 -0
- data/lib/yard/handlers/ruby/constant_handler.rb +9 -5
- data/lib/yard/handlers/ruby/decorator_handler_methods.rb +15 -28
- data/lib/yard/handlers/ruby/dsl_handler.rb +1 -0
- data/lib/yard/handlers/ruby/dsl_handler_methods.rb +7 -6
- data/lib/yard/handlers/ruby/exception_handler.rb +1 -0
- data/lib/yard/handlers/ruby/extend_handler.rb +1 -0
- data/lib/yard/handlers/ruby/legacy/alias_handler.rb +6 -4
- data/lib/yard/handlers/ruby/legacy/attribute_handler.rb +12 -7
- data/lib/yard/handlers/ruby/legacy/base.rb +21 -26
- data/lib/yard/handlers/ruby/legacy/class_condition_handler.rb +7 -7
- data/lib/yard/handlers/ruby/legacy/class_handler.rb +7 -5
- data/lib/yard/handlers/ruby/legacy/class_variable_handler.rb +2 -1
- data/lib/yard/handlers/ruby/legacy/comment_handler.rb +1 -0
- data/lib/yard/handlers/ruby/legacy/constant_handler.rb +2 -1
- data/lib/yard/handlers/ruby/legacy/dsl_handler.rb +1 -0
- data/lib/yard/handlers/ruby/legacy/exception_handler.rb +2 -1
- data/lib/yard/handlers/ruby/legacy/extend_handler.rb +2 -1
- data/lib/yard/handlers/ruby/legacy/method_handler.rb +11 -6
- data/lib/yard/handlers/ruby/legacy/mixin_handler.rb +5 -5
- data/lib/yard/handlers/ruby/legacy/module_function_handler.rb +2 -1
- data/lib/yard/handlers/ruby/legacy/module_handler.rb +2 -1
- data/lib/yard/handlers/ruby/legacy/private_class_method_handler.rb +2 -1
- data/lib/yard/handlers/ruby/legacy/private_constant_handler.rb +2 -1
- data/lib/yard/handlers/ruby/legacy/visibility_handler.rb +3 -2
- data/lib/yard/handlers/ruby/legacy/yield_handler.rb +1 -0
- data/lib/yard/handlers/ruby/method_condition_handler.rb +2 -1
- data/lib/yard/handlers/ruby/method_handler.rb +9 -11
- data/lib/yard/handlers/ruby/mixin_handler.rb +2 -1
- data/lib/yard/handlers/ruby/module_function_handler.rb +2 -1
- data/lib/yard/handlers/ruby/module_handler.rb +2 -1
- data/lib/yard/handlers/ruby/private_class_method_handler.rb +1 -0
- data/lib/yard/handlers/ruby/private_constant_handler.rb +2 -2
- data/lib/yard/handlers/ruby/public_class_method_handler.rb +1 -0
- data/lib/yard/handlers/ruby/struct_handler_methods.rb +5 -4
- data/lib/yard/handlers/ruby/visibility_handler.rb +1 -0
- data/lib/yard/handlers/ruby/yield_handler.rb +1 -0
- data/lib/yard/i18n/locale.rb +1 -0
- data/lib/yard/i18n/message.rb +5 -4
- data/lib/yard/i18n/messages.rb +2 -1
- data/lib/yard/i18n/po_parser.rb +5 -4
- data/lib/yard/i18n/pot_generator.rb +8 -8
- data/lib/yard/i18n/text.rb +9 -9
- data/lib/yard/logging.rb +9 -6
- data/lib/yard/options.rb +8 -7
- data/lib/yard/parser/base.rb +3 -2
- data/lib/yard/parser/c/c_parser.rb +22 -21
- data/lib/yard/parser/c/comment_parser.rb +9 -6
- data/lib/yard/parser/c/statement.rb +1 -0
- data/lib/yard/parser/ruby/ast_node.rb +20 -18
- data/lib/yard/parser/ruby/legacy/ruby_lex.rb +99 -122
- data/lib/yard/parser/ruby/legacy/ruby_parser.rb +3 -2
- data/lib/yard/parser/ruby/legacy/statement.rb +4 -3
- data/lib/yard/parser/ruby/legacy/statement_list.rb +52 -42
- data/lib/yard/parser/ruby/legacy/token_list.rb +16 -13
- data/lib/yard/parser/ruby/ruby_parser.rb +87 -63
- data/lib/yard/parser/ruby/token_resolver.rb +156 -0
- data/lib/yard/parser/source_parser.rb +28 -20
- data/lib/yard/rake/yardoc_task.rb +3 -3
- data/lib/yard/registry.rb +14 -16
- data/lib/yard/registry_resolver.rb +36 -20
- data/lib/yard/registry_store.rb +19 -15
- data/lib/yard/rubygems/backports.rb +2 -0
- data/lib/yard/rubygems/backports/LICENSE.txt +0 -0
- data/lib/yard/rubygems/backports/MIT.txt +0 -0
- data/lib/yard/rubygems/backports/gem.rb +1 -0
- data/lib/yard/rubygems/backports/source_index.rb +25 -30
- data/lib/yard/rubygems/doc_manager.rb +10 -8
- data/lib/yard/rubygems/hook.rb +11 -18
- data/lib/yard/rubygems/specification.rb +1 -0
- data/lib/yard/serializers/base.rb +5 -2
- data/lib/yard/serializers/file_system_serializer.rb +7 -6
- data/lib/yard/serializers/process_serializer.rb +2 -2
- data/lib/yard/serializers/stdout_serializer.rb +8 -6
- data/lib/yard/serializers/yardoc_serializer.rb +31 -26
- data/lib/yard/server.rb +2 -1
- data/lib/yard/server/adapter.rb +1 -1
- data/lib/yard/server/commands/base.rb +15 -2
- data/lib/yard/server/commands/display_file_command.rb +2 -2
- data/lib/yard/server/commands/display_object_command.rb +6 -3
- data/lib/yard/server/commands/frames_command.rb +1 -0
- data/lib/yard/server/commands/library_command.rb +50 -14
- data/lib/yard/server/commands/library_index_command.rb +5 -4
- data/lib/yard/server/commands/list_command.rb +1 -0
- data/lib/yard/server/commands/root_request_command.rb +1 -0
- data/lib/yard/server/commands/search_command.rb +17 -16
- data/lib/yard/server/commands/static_file_command.rb +2 -1
- data/lib/yard/server/commands/static_file_helpers.rb +23 -14
- data/lib/yard/server/doc_server_helper.rb +15 -1
- data/lib/yard/server/doc_server_serializer.rb +3 -5
- data/lib/yard/server/library_version.rb +44 -22
- data/lib/yard/server/rack_adapter.rb +2 -1
- data/lib/yard/server/router.rb +15 -14
- data/lib/yard/server/static_caching.rb +1 -0
- data/lib/yard/server/templates/default/fulldoc/html/css/custom.css +0 -0
- data/lib/yard/server/templates/default/fulldoc/html/images/processing.gif +0 -0
- data/lib/yard/server/templates/default/fulldoc/html/js/autocomplete.js +0 -0
- data/lib/yard/server/templates/default/layout/html/breadcrumb.erb +0 -0
- data/lib/yard/server/templates/default/layout/html/script_setup.erb +0 -0
- data/lib/yard/server/templates/default/layout/html/setup.rb +2 -1
- data/lib/yard/server/templates/default/method_details/html/permalink.erb +0 -0
- data/lib/yard/server/templates/default/method_details/html/setup.rb +1 -0
- data/lib/yard/server/templates/doc_server/library_list/html/headers.erb +2 -2
- data/lib/yard/server/templates/doc_server/library_list/html/library_list.erb +0 -0
- data/lib/yard/server/templates/doc_server/library_list/html/listing.erb +1 -1
- data/lib/yard/server/templates/doc_server/library_list/html/setup.rb +2 -1
- data/lib/yard/server/templates/doc_server/library_list/html/title.erb +0 -0
- data/lib/yard/server/templates/doc_server/processing/html/processing.erb +4 -4
- data/lib/yard/server/templates/doc_server/processing/html/setup.rb +2 -1
- data/lib/yard/server/templates/doc_server/search/html/search.erb +0 -0
- data/lib/yard/server/templates/doc_server/search/html/setup.rb +2 -1
- data/lib/yard/server/webrick_adapter.rb +4 -2
- data/lib/yard/tags/default_factory.rb +19 -13
- data/lib/yard/tags/default_tag.rb +2 -1
- data/lib/yard/tags/directives.rb +17 -19
- data/lib/yard/tags/library.rb +9 -6
- data/lib/yard/tags/option_tag.rb +1 -0
- data/lib/yard/tags/overload_tag.rb +6 -4
- data/lib/yard/tags/ref_tag.rb +1 -0
- data/lib/yard/tags/ref_tag_list.rb +2 -1
- data/lib/yard/tags/tag.rb +16 -2
- data/lib/yard/tags/tag_format_error.rb +3 -2
- data/lib/yard/tags/types_explainer.rb +160 -0
- data/lib/yard/templates/engine.rb +3 -2
- data/lib/yard/templates/erb_cache.rb +3 -2
- data/lib/yard/templates/helpers/base_helper.rb +9 -6
- data/lib/yard/templates/helpers/filter_helper.rb +1 -0
- data/lib/yard/templates/helpers/html_helper.rb +65 -37
- data/lib/yard/templates/helpers/html_syntax_highlight_helper.rb +25 -7
- data/lib/yard/templates/helpers/markup/rdoc_markdown.rb +2 -1
- data/lib/yard/templates/helpers/markup/rdoc_markup.rb +10 -7
- data/lib/yard/templates/helpers/markup_helper.rb +12 -13
- data/lib/yard/templates/helpers/method_helper.rb +8 -7
- data/lib/yard/templates/helpers/module_helper.rb +1 -0
- data/lib/yard/templates/helpers/text_helper.rb +16 -11
- data/lib/yard/templates/helpers/uml_helper.rb +2 -1
- data/lib/yard/templates/section.rb +3 -4
- data/lib/yard/templates/template.rb +18 -11
- data/lib/yard/templates/template_options.rb +1 -0
- data/lib/yard/verifier.rb +2 -0
- data/lib/yard/version.rb +2 -1
- data/spec/cli/command_parser_spec.rb +7 -7
- data/spec/cli/command_spec.rb +2 -2
- data/spec/cli/config_spec.rb +3 -4
- data/spec/cli/diff_spec.rb +7 -9
- data/spec/cli/display_spec.rb +2 -2
- data/spec/cli/gems_spec.rb +11 -11
- data/spec/cli/graph_spec.rb +4 -3
- data/spec/cli/help_spec.rb +3 -3
- data/spec/cli/i18n_spec.rb +3 -3
- data/spec/cli/list_spec.rb +2 -2
- data/spec/cli/markup_types_spec.rb +2 -2
- data/spec/cli/server_spec.rb +21 -18
- data/spec/cli/stats_spec.rb +23 -22
- data/spec/cli/yardoc_spec.rb +49 -47
- data/spec/cli/yri_spec.rb +6 -6
- data/spec/code_objects/base_spec.rb +6 -4
- data/spec/code_objects/class_object_spec.rb +10 -9
- data/spec/code_objects/code_object_list_spec.rb +3 -2
- data/spec/code_objects/constants_spec.rb +17 -6
- data/spec/code_objects/extra_file_object_spec.rb +6 -5
- data/spec/code_objects/macro_object_spec.rb +5 -3
- data/spec/code_objects/method_object_spec.rb +6 -5
- data/spec/code_objects/module_object_spec.rb +3 -2
- data/spec/code_objects/namespace_object_spec.rb +10 -9
- data/spec/code_objects/proxy_spec.rb +9 -8
- data/spec/code_objects/spec_helper.rb +2 -2
- data/spec/config_spec.rb +9 -14
- data/spec/core_ext/array_spec.rb +2 -3
- data/spec/core_ext/file_spec.rb +3 -3
- data/spec/core_ext/hash_spec.rb +5 -5
- data/spec/core_ext/insertion_spec.rb +2 -2
- data/spec/core_ext/module_spec.rb +3 -3
- data/spec/core_ext/string_spec.rb +5 -5
- data/spec/core_ext/symbol_hash_spec.rb +8 -8
- data/spec/docstring_parser_spec.rb +6 -7
- data/spec/docstring_spec.rb +30 -3
- data/spec/examples.txt +1848 -0
- data/spec/handlers/alias_handler_spec.rb +2 -1
- data/spec/handlers/attribute_handler_spec.rb +7 -5
- data/spec/handlers/base_spec.rb +9 -8
- data/spec/handlers/c/alias_handler_spec.rb +2 -1
- data/spec/handlers/c/attribute_handler_spec.rb +2 -1
- data/spec/handlers/c/class_handler_spec.rb +2 -1
- data/spec/handlers/c/constant_handler_spec.rb +5 -4
- data/spec/handlers/c/init_handler_spec.rb +2 -1
- data/spec/handlers/c/method_handler_spec.rb +2 -1
- data/spec/handlers/c/mixin_handler_spec.rb +2 -1
- data/spec/handlers/c/module_handler_spec.rb +2 -1
- data/spec/handlers/c/override_comment_handler_spec.rb +2 -1
- data/spec/handlers/c/path_handler_spec.rb +2 -1
- data/spec/handlers/c/spec_helper.rb +1 -1
- data/spec/handlers/c/struct_handler_spec.rb +3 -2
- data/spec/handlers/class_condition_handler_spec.rb +3 -2
- data/spec/handlers/class_handler_spec.rb +3 -2
- data/spec/handlers/class_method_handler_shared_examples.rb +9 -8
- data/spec/handlers/class_variable_handler_spec.rb +3 -2
- data/spec/handlers/constant_handler_spec.rb +28 -3
- data/spec/handlers/decorator_handler_methods_spec.rb +47 -59
- data/spec/handlers/dsl_handler_spec.rb +3 -2
- data/spec/handlers/examples/alias_handler_001.rb.txt +0 -0
- data/spec/handlers/examples/attribute_handler_001.rb.txt +0 -0
- data/spec/handlers/examples/class_condition_handler_001.rb.txt +0 -0
- data/spec/handlers/examples/class_handler_001.rb.txt +0 -0
- data/spec/handlers/examples/class_variable_handler_001.rb.txt +0 -0
- data/spec/handlers/examples/constant_handler_001.rb.txt +0 -0
- data/spec/handlers/examples/dsl_handler_001.rb.txt +0 -0
- data/spec/handlers/examples/exception_handler_001.rb.txt +0 -0
- data/spec/handlers/examples/extend_handler_001.rb.txt +0 -0
- data/spec/handlers/examples/method_condition_handler_001.rb.txt +0 -0
- data/spec/handlers/examples/method_handler_001.rb.txt +2 -0
- data/spec/handlers/examples/mixin_handler_001.rb.txt +0 -0
- data/spec/handlers/examples/module_handler_001.rb.txt +0 -0
- data/spec/handlers/examples/private_constant_handler_001.rb.txt +0 -0
- data/spec/handlers/examples/process_handler_001.rb.txt +0 -0
- data/spec/handlers/examples/visibility_handler_001.rb.txt +0 -0
- data/spec/handlers/examples/yield_handler_001.rb.txt +0 -0
- data/spec/handlers/exception_handler_spec.rb +3 -2
- data/spec/handlers/extend_handler_spec.rb +2 -1
- data/spec/handlers/legacy_base_spec.rb +5 -5
- data/spec/handlers/method_condition_handler_spec.rb +3 -2
- data/spec/handlers/method_handler_spec.rb +7 -1
- data/spec/handlers/mixin_handler_spec.rb +3 -2
- data/spec/handlers/module_function_handler_spec.rb +2 -1
- data/spec/handlers/module_handler_spec.rb +3 -2
- data/spec/handlers/private_class_method_handler_spec.rb +2 -1
- data/spec/handlers/private_constant_handler_spec.rb +2 -1
- data/spec/handlers/processor_spec.rb +2 -1
- data/spec/handlers/public_class_method_handler_spec.rb +2 -1
- data/spec/handlers/ruby/base_spec.rb +6 -5
- data/spec/handlers/ruby/legacy/base_spec.rb +4 -4
- data/spec/handlers/spec_helper.rb +3 -3
- data/spec/handlers/visibility_handler_spec.rb +3 -2
- data/spec/handlers/yield_handler_spec.rb +3 -2
- data/spec/i18n/locale_spec.rb +3 -3
- data/spec/i18n/message_spec.rb +2 -2
- data/spec/i18n/messages_spec.rb +3 -3
- data/spec/i18n/pot_generator_spec.rb +34 -34
- data/spec/i18n/text_spec.rb +16 -12
- data/spec/logging_spec.rb +2 -2
- data/spec/options_spec.rb +9 -9
- data/spec/parser/base_spec.rb +2 -2
- data/spec/parser/c_parser_spec.rb +5 -4
- data/spec/parser/examples/array.c.txt +0 -0
- data/spec/parser/examples/example1.rb.txt +0 -0
- data/spec/parser/examples/extrafile.c.txt +0 -0
- data/spec/parser/examples/multifile.c.txt +0 -0
- data/spec/parser/examples/override.c.txt +0 -0
- data/spec/parser/examples/parse_in_order_001.rb.txt +0 -0
- data/spec/parser/examples/parse_in_order_002.rb.txt +0 -0
- data/spec/parser/examples/tag_handler_001.rb.txt +0 -0
- data/spec/parser/ruby/ast_node_spec.rb +7 -7
- data/spec/parser/ruby/legacy/statement_list_spec.rb +7 -7
- data/spec/parser/ruby/legacy/token_list_spec.rb +4 -4
- data/spec/parser/ruby/ruby_parser_spec.rb +42 -20
- data/spec/parser/ruby/token_resolver_spec.rb +165 -0
- data/spec/parser/source_parser_spec.rb +18 -18
- data/spec/parser/tag_parsing_spec.rb +2 -2
- data/spec/rake/yardoc_task_spec.rb +4 -4
- data/spec/registry_spec.rb +62 -56
- data/spec/registry_store_spec.rb +7 -7
- data/spec/rubygems/doc_manager_spec.rb +2 -2
- data/spec/serializers/data/serialized_yardoc/checksums +0 -0
- data/spec/serializers/data/serialized_yardoc/objects/Foo.dat +0 -0
- data/spec/serializers/data/serialized_yardoc/objects/Foo/bar_i.dat +0 -0
- data/spec/serializers/data/serialized_yardoc/objects/Foo/baz_i.dat +0 -0
- data/spec/serializers/data/serialized_yardoc/objects/root.dat +0 -0
- data/spec/serializers/data/serialized_yardoc/proxy_types +0 -0
- data/spec/serializers/file_system_serializer_spec.rb +8 -7
- data/spec/serializers/spec_helper.rb +2 -2
- data/spec/serializers/yardoc_serializer_spec.rb +5 -4
- data/spec/server/adapter_spec.rb +3 -2
- data/spec/server/commands/base_spec.rb +15 -11
- data/spec/server/commands/library_command_spec.rb +2 -2
- data/spec/server/doc_server_helper_spec.rb +4 -3
- data/spec/server/doc_server_serializer_spec.rb +3 -2
- data/spec/server/rack_adapter_spec.rb +3 -2
- data/spec/server/router_spec.rb +3 -2
- data/spec/server/spec_helper.rb +2 -2
- data/spec/server/static_caching_spec.rb +4 -3
- data/spec/server/webrick_servlet_spec.rb +5 -4
- data/spec/server_spec.rb +3 -3
- data/spec/spec_helper.rb +94 -21
- data/spec/tags/default_factory_spec.rb +10 -4
- data/spec/tags/default_tag_spec.rb +3 -3
- data/spec/tags/directives_spec.rb +12 -12
- data/spec/tags/library_spec.rb +16 -2
- data/spec/tags/overload_tag_spec.rb +4 -4
- data/spec/tags/ref_tag_list_spec.rb +3 -3
- data/spec/tags/types_explainer_spec.rb +200 -0
- data/spec/templates/class_spec.rb +2 -1
- data/spec/templates/constant_spec.rb +3 -2
- data/spec/templates/engine_spec.rb +4 -3
- data/spec/templates/examples/class001.html +0 -0
- data/spec/templates/examples/class001.txt +0 -0
- data/spec/templates/examples/class002.html +0 -0
- data/spec/templates/examples/constant001.txt +0 -0
- data/spec/templates/examples/constant002.txt +0 -0
- data/spec/templates/examples/constant003.txt +0 -0
- data/spec/templates/examples/method001.html +0 -0
- data/spec/templates/examples/method001.txt +0 -0
- data/spec/templates/examples/method002.html +0 -0
- data/spec/templates/examples/method002.txt +0 -0
- data/spec/templates/examples/method003.html +0 -0
- data/spec/templates/examples/method003.txt +0 -0
- data/spec/templates/examples/method004.html +0 -0
- data/spec/templates/examples/method004.txt +0 -0
- data/spec/templates/examples/method005.html +0 -0
- data/spec/templates/examples/method005.txt +0 -0
- data/spec/templates/examples/method006.html +108 -0
- data/spec/templates/examples/method006.txt +20 -0
- data/spec/templates/examples/module001.dot +0 -0
- data/spec/templates/examples/module001.html +0 -0
- data/spec/templates/examples/module001.txt +0 -0
- data/spec/templates/examples/module002.html +0 -0
- data/spec/templates/examples/module003.html +0 -0
- data/spec/templates/examples/module004.html +0 -0
- data/spec/templates/examples/tag001.txt +0 -0
- data/spec/templates/helpers/base_helper_spec.rb +5 -5
- data/spec/templates/helpers/html_helper_spec.rb +64 -60
- data/spec/templates/helpers/html_syntax_highlight_helper_spec.rb +17 -6
- data/spec/templates/helpers/markup/rdoc_markup_spec.rb +11 -13
- data/spec/templates/helpers/markup_helper_spec.rb +2 -2
- data/spec/templates/helpers/method_helper_spec.rb +3 -3
- data/spec/templates/helpers/module_helper_spec.rb +2 -2
- data/spec/templates/helpers/shared_signature_examples.rb +2 -1
- data/spec/templates/helpers/text_helper_spec.rb +7 -6
- data/spec/templates/method_spec.rb +18 -2
- data/spec/templates/module_spec.rb +4 -3
- data/spec/templates/onefile_spec.rb +8 -6
- data/spec/templates/section_spec.rb +3 -2
- data/spec/templates/spec_helper.rb +5 -2
- data/spec/templates/tag_spec.rb +3 -2
- data/spec/templates/template_spec.rb +15 -14
- data/spec/verifier_spec.rb +3 -3
- data/templates/default/class/dot/setup.rb +2 -1
- data/templates/default/class/dot/superklass.erb +0 -0
- data/templates/default/class/html/constructor_details.erb +0 -0
- data/templates/default/class/html/setup.rb +2 -1
- data/templates/default/class/html/subclasses.erb +0 -0
- data/templates/default/class/setup.rb +6 -6
- data/templates/default/class/text/setup.rb +2 -1
- data/templates/default/class/text/subclasses.erb +0 -0
- data/templates/default/constant/text/header.erb +0 -0
- data/templates/default/constant/text/setup.rb +1 -0
- data/templates/default/docstring/html/abstract.erb +0 -0
- data/templates/default/docstring/html/deprecated.erb +0 -0
- data/templates/default/docstring/html/index.erb +0 -0
- data/templates/default/docstring/html/note.erb +0 -0
- data/templates/default/docstring/html/private.erb +0 -0
- data/templates/default/docstring/html/returns_void.erb +0 -0
- data/templates/default/docstring/html/text.erb +0 -0
- data/templates/default/docstring/html/todo.erb +0 -0
- data/templates/default/docstring/setup.rb +4 -3
- data/templates/default/docstring/text/abstract.erb +0 -0
- data/templates/default/docstring/text/deprecated.erb +0 -0
- data/templates/default/docstring/text/index.erb +0 -0
- data/templates/default/docstring/text/note.erb +0 -0
- data/templates/default/docstring/text/private.erb +0 -0
- data/templates/default/docstring/text/returns_void.erb +0 -0
- data/templates/default/docstring/text/text.erb +0 -0
- data/templates/default/docstring/text/todo.erb +0 -0
- data/templates/default/fulldoc/html/css/common.css +0 -0
- data/templates/default/fulldoc/html/css/full_list.css +0 -0
- data/templates/default/fulldoc/html/css/style.css +31 -20
- data/templates/default/fulldoc/html/frames.erb +0 -0
- data/templates/default/fulldoc/html/full_list.erb +2 -2
- data/templates/default/fulldoc/html/full_list_class.erb +0 -0
- data/templates/default/fulldoc/html/full_list_file.erb +0 -0
- data/templates/default/fulldoc/html/full_list_method.erb +0 -0
- data/templates/default/fulldoc/html/js/app.js +3 -3
- data/templates/default/fulldoc/html/js/full_list.js +0 -0
- data/templates/default/fulldoc/html/js/jquery.js +0 -0
- data/templates/default/fulldoc/html/setup.rb +22 -23
- data/templates/default/layout/dot/header.erb +0 -0
- data/templates/default/layout/dot/setup.rb +1 -0
- data/templates/default/layout/html/breadcrumb.erb +0 -0
- data/templates/default/layout/html/files.erb +0 -0
- data/templates/default/layout/html/footer.erb +0 -0
- data/templates/default/layout/html/headers.erb +2 -2
- data/templates/default/layout/html/index.erb +0 -0
- data/templates/default/layout/html/layout.erb +1 -3
- data/templates/default/layout/html/listing.erb +0 -0
- data/templates/default/layout/html/objects.erb +0 -0
- data/templates/default/layout/html/script_setup.erb +0 -0
- data/templates/default/layout/html/search.erb +0 -0
- data/templates/default/layout/html/setup.rb +21 -19
- data/templates/default/method/html/header.erb +0 -0
- data/templates/default/method/setup.rb +2 -1
- data/templates/default/method/text/header.erb +0 -0
- data/templates/default/method_details/html/header.erb +0 -0
- data/templates/default/method_details/html/method_signature.erb +0 -0
- data/templates/default/method_details/html/source.erb +0 -0
- data/templates/default/method_details/setup.rb +1 -0
- data/templates/default/method_details/text/header.erb +0 -0
- data/templates/default/method_details/text/method_signature.erb +0 -0
- data/templates/default/method_details/text/setup.rb +3 -2
- data/templates/default/module/dot/child.erb +0 -0
- data/templates/default/module/dot/dependencies.erb +0 -0
- data/templates/default/module/dot/header.erb +0 -0
- data/templates/default/module/dot/info.erb +0 -0
- data/templates/default/module/dot/setup.rb +2 -1
- data/templates/default/module/html/attribute_details.erb +0 -0
- data/templates/default/module/html/attribute_summary.erb +0 -0
- data/templates/default/module/html/box_info.erb +0 -0
- data/templates/default/module/html/children.erb +0 -0
- data/templates/default/module/html/constant_summary.erb +0 -0
- data/templates/default/module/html/defines.erb +0 -0
- data/templates/default/module/html/header.erb +0 -0
- data/templates/default/module/html/inherited_attributes.erb +0 -0
- data/templates/default/module/html/inherited_constants.erb +0 -0
- data/templates/default/module/html/inherited_methods.erb +0 -0
- data/templates/default/module/html/item_summary.erb +0 -0
- data/templates/default/module/html/method_details_list.erb +0 -0
- data/templates/default/module/html/method_summary.erb +0 -0
- data/templates/default/module/html/methodmissing.erb +0 -0
- data/templates/default/module/html/pre_docstring.erb +0 -0
- data/templates/default/module/setup.rb +24 -26
- data/templates/default/module/text/children.erb +0 -0
- data/templates/default/module/text/class_meths_list.erb +0 -0
- data/templates/default/module/text/extends.erb +0 -0
- data/templates/default/module/text/header.erb +0 -0
- data/templates/default/module/text/includes.erb +0 -0
- data/templates/default/module/text/instance_meths_list.erb +0 -0
- data/templates/default/module/text/setup.rb +2 -1
- data/templates/default/onefile/html/files.erb +0 -0
- data/templates/default/onefile/html/headers.erb +0 -0
- data/templates/default/onefile/html/layout.erb +3 -3
- data/templates/default/onefile/html/readme.erb +0 -0
- data/templates/default/onefile/html/setup.rb +9 -8
- data/templates/default/root/dot/child.erb +0 -0
- data/templates/default/root/dot/setup.rb +3 -2
- data/templates/default/root/html/setup.rb +2 -1
- data/templates/default/tags/html/example.erb +0 -0
- data/templates/default/tags/html/index.erb +0 -0
- data/templates/default/tags/html/option.erb +1 -1
- data/templates/default/tags/html/overload.erb +0 -0
- data/templates/default/tags/html/see.erb +0 -0
- data/templates/default/tags/html/tag.erb +1 -1
- data/templates/default/tags/setup.rb +7 -5
- data/templates/default/tags/text/example.erb +0 -0
- data/templates/default/tags/text/index.erb +0 -0
- data/templates/default/tags/text/option.erb +1 -1
- data/templates/default/tags/text/overload.erb +0 -0
- data/templates/default/tags/text/see.erb +0 -0
- data/templates/default/tags/text/tag.erb +2 -2
- data/templates/guide/class/html/setup.rb +1 -0
- data/templates/guide/docstring/html/setup.rb +1 -0
- data/templates/guide/fulldoc/html/css/style.css +0 -0
- data/templates/guide/fulldoc/html/js/app.js +0 -0
- data/templates/guide/fulldoc/html/setup.rb +7 -6
- data/templates/guide/layout/html/layout.erb +0 -0
- data/templates/guide/layout/html/setup.rb +2 -5
- data/templates/guide/method/html/header.erb +0 -0
- data/templates/guide/method/html/setup.rb +5 -4
- data/templates/guide/module/html/header.erb +0 -0
- data/templates/guide/module/html/method_list.erb +0 -0
- data/templates/guide/module/html/setup.rb +2 -1
- data/templates/guide/onefile/html/files.erb +0 -0
- data/templates/guide/onefile/html/setup.rb +1 -0
- data/templates/guide/onefile/html/toc.erb +0 -0
- data/templates/guide/tags/html/setup.rb +1 -0
- data/yard.gemspec +2 -1
- metadata +10 -2
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module YARD
|
2
3
|
module Server
|
3
4
|
module Commands
|
@@ -14,9 +15,10 @@ module YARD
|
|
14
15
|
Registry.load_all
|
15
16
|
self.query = request.query['q']
|
16
17
|
redirect(abs_url(adapter.router.docs_prefix, single_library ? library : '')) if query.nil? || query =~ /\A\s*\Z/
|
17
|
-
|
18
|
-
|
19
|
-
|
18
|
+
|
19
|
+
found = Registry.at(query)
|
20
|
+
redirect(url_for(found)) if found
|
21
|
+
|
20
22
|
search_for_object
|
21
23
|
request.xhr? ? serve_xhr : serve_normal
|
22
24
|
end
|
@@ -33,13 +35,12 @@ module YARD
|
|
33
35
|
end
|
34
36
|
|
35
37
|
def serve_xhr
|
36
|
-
|
38
|
+
headers['Content-Type'] = 'text/plain'
|
37
39
|
self.body = visible_results.map {|o|
|
38
40
|
[(o.type == :method ? o.name(true) : o.name).to_s,
|
39
41
|
o.path,
|
40
42
|
o.namespace.root? ? '' : o.namespace.path,
|
41
|
-
url_for(o)
|
42
|
-
].join(",")
|
43
|
+
url_for(o)].join(",")
|
43
44
|
}.join("\n")
|
44
45
|
end
|
45
46
|
|
@@ -55,22 +56,22 @@ module YARD
|
|
55
56
|
end
|
56
57
|
|
57
58
|
def search_for_object
|
58
|
-
|
59
|
-
self.results = run_verifier(Registry.all).select
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
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) ||
|
64
65
|
case o.type
|
65
66
|
when :method
|
66
67
|
!(query =~ /[#.]/) && query.include?("::")
|
67
68
|
when :class, :module, :constant, :class_variable
|
68
69
|
query =~ /[#.]/
|
69
70
|
end
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
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
|
74
75
|
end
|
75
76
|
end
|
76
77
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
require 'webrick/httputils'
|
2
3
|
|
3
4
|
module YARD
|
@@ -7,13 +8,13 @@ module YARD
|
|
7
8
|
# and {favicon?} helpers.
|
8
9
|
module StaticFileHelpers
|
9
10
|
include WEBrick::HTTPUtils
|
10
|
-
|
11
|
+
|
11
12
|
# Serves an empty favicon.
|
12
13
|
# @raise [FinishRequest] finalizes an empty body if the path matches
|
13
14
|
# /favicon.ico so browsers don't complain.
|
14
15
|
def favicon?
|
15
16
|
return unless request.path == '/favicon.ico'
|
16
|
-
|
17
|
+
headers['Content-Type'] = 'image/png'
|
17
18
|
self.status = 200
|
18
19
|
self.body = ''
|
19
20
|
raise FinishRequest
|
@@ -24,28 +25,36 @@ module YARD
|
|
24
25
|
# @raise [FinishRequest] if a file was found and served
|
25
26
|
# @return [void]
|
26
27
|
def static_template_file?
|
27
|
-
#
|
28
|
-
static_paths = StaticFileCommand::STATIC_PATHS
|
28
|
+
# this const was defined in StaticFileCommand originally
|
29
29
|
default_mime_types = StaticFileCommand::DefaultMimeTypes
|
30
30
|
|
31
|
-
|
31
|
+
file = find_file(adapter, path)
|
32
|
+
|
33
|
+
if file
|
34
|
+
ext = "." + (path[/\.(\w+)$/, 1] || "html")
|
35
|
+
headers['Content-Type'] = mime_type(ext, default_mime_types)
|
36
|
+
self.body = File.read(file)
|
37
|
+
raise FinishRequest
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
module_function
|
42
|
+
|
43
|
+
def find_file(adapter, url)
|
44
|
+
# this const was defined in StaticFileCommand originally
|
45
|
+
static_paths = StaticFileCommand::STATIC_PATHS
|
32
46
|
|
33
47
|
file = nil
|
34
48
|
([adapter.document_root] + static_paths.reverse).compact.each do |path_prefix|
|
35
|
-
file = File.join(path_prefix,
|
49
|
+
file = File.join(path_prefix, url)
|
50
|
+
p file
|
36
51
|
break if File.exist?(file)
|
37
52
|
file = nil
|
38
53
|
end
|
39
54
|
|
40
55
|
# Search in default/fulldoc/html template if nothing in static asset paths
|
41
|
-
|
42
|
-
|
43
|
-
if file
|
44
|
-
ext = "." + (path[/\.(\w+)$/, 1] || "html")
|
45
|
-
headers['Content-Type'] = mime_type(ext, default_mime_types)
|
46
|
-
self.body = File.read(file)
|
47
|
-
raise FinishRequest
|
48
|
-
end
|
56
|
+
assets_template = Templates::Engine.template(:default, :fulldoc, :html)
|
57
|
+
file || assets_template.find_file(url)
|
49
58
|
end
|
50
59
|
end
|
51
60
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module YARD
|
2
3
|
module Server
|
3
4
|
# A module that is mixed into {Templates::Template} in order to customize
|
@@ -7,7 +8,7 @@ module YARD
|
|
7
8
|
# of a disk location.
|
8
9
|
# @param (see Templates::Helpers::HtmlHelper#url_for)
|
9
10
|
# @return (see Templates::Helpers::HtmlHelper#url_for)
|
10
|
-
def url_for(obj, anchor = nil, relative = false)
|
11
|
+
def url_for(obj, anchor = nil, relative = false) # rubocop:disable Lint/UnusedMethodArgument
|
11
12
|
return '' if obj.nil?
|
12
13
|
return url_for_index if obj == '_index.html'
|
13
14
|
return abs_url(base_path(router.static_prefix), obj) if String === obj
|
@@ -72,6 +73,19 @@ module YARD
|
|
72
73
|
|
73
74
|
# @return [Router] convenience method for accessing the router
|
74
75
|
def router; @adapter.router end
|
76
|
+
|
77
|
+
# @return [String] a timestamp for a given file
|
78
|
+
def mtime(file)
|
79
|
+
file = YARD::Server::Commands::StaticFileHelpers.find_file(@adapter, file)
|
80
|
+
file ? File.mtime(file).to_i : nil
|
81
|
+
end
|
82
|
+
|
83
|
+
# @return [String] a URL for a file with a timestamp
|
84
|
+
def mtime_url(file)
|
85
|
+
url = url_for(file)
|
86
|
+
time = mtime(file)
|
87
|
+
url + (time ? "?#{time}" : "")
|
88
|
+
end
|
75
89
|
end
|
76
90
|
end
|
77
91
|
end
|
@@ -1,11 +1,10 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
# frozen_string_literal: true
|
3
2
|
module YARD
|
4
3
|
module Server
|
5
4
|
# A custom {Serializers::Base serializer} which returns resource URLs instead of
|
6
5
|
# static relative paths to files on disk.
|
7
6
|
class DocServerSerializer < Serializers::FileSystemSerializer
|
8
|
-
def initialize(
|
7
|
+
def initialize(_command = nil)
|
9
8
|
super(:basepath => '', :extension => '')
|
10
9
|
end
|
11
10
|
|
@@ -14,7 +13,6 @@ module YARD
|
|
14
13
|
when CodeObjects::RootObject
|
15
14
|
"toplevel"
|
16
15
|
when CodeObjects::ExtendedMethodObject
|
17
|
-
name = object.name.to_s
|
18
16
|
serialized_path(object.namespace) + ':' + urlencode(object.name.to_s)
|
19
17
|
when CodeObjects::MethodObject
|
20
18
|
serialized_path(object.namespace) +
|
@@ -34,7 +32,7 @@ module YARD
|
|
34
32
|
if name.respond_to?(:force_encoding)
|
35
33
|
name = name.dup.force_encoding('binary')
|
36
34
|
end
|
37
|
-
|
35
|
+
Templates::Helpers::HtmlHelper.urlencode(name)
|
38
36
|
end
|
39
37
|
end
|
40
38
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
require 'fileutils'
|
2
3
|
require 'thread'
|
3
4
|
|
@@ -49,37 +50,42 @@ module YARD
|
|
49
50
|
# YARD can be extended to support custom library sources in order to
|
50
51
|
# build or retrieve a yardoc file at runtime from many different locations.
|
51
52
|
#
|
52
|
-
# To implement this behaviour,
|
53
|
-
# class, +#load_yardoc_from_SOURCE
|
54
|
-
# cases, "SOURCE" represents the source
|
55
|
-
# the library object. The
|
53
|
+
# To implement this behaviour, 3 methods can be added to the +LibraryVersion+
|
54
|
+
# class, +#load_yardoc_from_SOURCE+, +#yardoc_file_for_SOURCE+, and
|
55
|
+
# +#source_path_for_SOURCE+. In all cases, "SOURCE" represents the source
|
56
|
+
# type used in {#source} when creating the library object. The
|
57
|
+
# +#yardoc_file_for_SOURCE+ and +#source_path_for_SOURCE+ methods are called upon
|
56
58
|
# creation and should return the location where the source code for the library
|
57
59
|
# lives. The load method is called from {#prepare!} if there is no yardoc file
|
58
60
|
# and should set {#yardoc_file}. Below is a full example for
|
59
61
|
# implementing a custom library source, +:http+, which reads packaged .yardoc
|
60
62
|
# databases from zipped archives off of an HTTP server.
|
61
63
|
#
|
64
|
+
# Note that only +#load_yardoc_from_SOURCE+ is required. The other two
|
65
|
+
# methods are optional and can be set manually (via {#source_path=} and
|
66
|
+
# {#yardoc_file=}) on the object at any time.
|
67
|
+
#
|
62
68
|
# @example Implementing a Custom Library Source
|
63
69
|
# # Adds the source type "http" for .yardoc files zipped on HTTP servers
|
64
70
|
# class LibraryVersion
|
65
71
|
# def load_yardoc_from_http
|
66
|
-
# return if yardoc_file # we have the library
|
67
|
-
#
|
68
|
-
# # otherwise download it in a thread and return immediately
|
69
72
|
# Thread.new do
|
70
73
|
# # zip/unzip method implementations are not shown
|
71
74
|
# download_zip_file("http://mysite.com/yardocs/#{self}.zip")
|
72
75
|
# unzip_file_to("/path/to/yardocs/#{self}")
|
73
|
-
# self.yardoc_file = "/path/to/yardocs/#{self}/.yardoc"
|
74
|
-
# self.source_path = self.yardoc_file
|
75
76
|
# end
|
76
77
|
#
|
77
78
|
# # tell the server it's not ready yet (but it might be next time)
|
78
79
|
# raise LibraryNotPreparedError
|
79
80
|
# end
|
80
81
|
#
|
81
|
-
#
|
82
|
-
#
|
82
|
+
# def yardoc_file_for_http
|
83
|
+
# "/path/to/yardocs/#{self}/.yardoc"
|
84
|
+
# end
|
85
|
+
#
|
86
|
+
# def source_path_for_http
|
87
|
+
# File.dirname(yardoc_file)
|
88
|
+
# end
|
83
89
|
# end
|
84
90
|
#
|
85
91
|
# # Creating a library of this source type:
|
@@ -96,7 +102,11 @@ module YARD
|
|
96
102
|
# information from.
|
97
103
|
# @return [nil] if no yardoc file exists yet. In this case, {#prepare!} will
|
98
104
|
# be called on this library to build the yardoc file.
|
99
|
-
|
105
|
+
# @note To implement a custom yardoc file getter, implement
|
106
|
+
def yardoc_file
|
107
|
+
@yardoc_file ||= load_yardoc_file
|
108
|
+
end
|
109
|
+
attr_writer :yardoc_file
|
100
110
|
|
101
111
|
# @return [Symbol] the source type representing where the yardoc should be
|
102
112
|
# loaded from. Defaults are +:disk+ and +:gem+, though custom sources
|
@@ -109,7 +119,10 @@ module YARD
|
|
109
119
|
# value is filled by calling +#source_path_for_SOURCE+ on this class.
|
110
120
|
# @return [nil] if there is no source code
|
111
121
|
# @see LibraryVersion LibraryVersion documentation for "Implementing a Custom Library Source"
|
112
|
-
|
122
|
+
def source_path
|
123
|
+
@source_path ||= load_source_path
|
124
|
+
end
|
125
|
+
attr_writer :source_path
|
113
126
|
|
114
127
|
# @param [String] name the name of the library
|
115
128
|
# @param [String] version the specific (usually, but not always, numeric) library
|
@@ -123,7 +136,6 @@ module YARD
|
|
123
136
|
self.yardoc_file = yardoc
|
124
137
|
self.version = version
|
125
138
|
self.source = source
|
126
|
-
self.source_path = load_source_path
|
127
139
|
end
|
128
140
|
|
129
141
|
# @param [Boolean] url_format if true, returns the string in a URI-compatible
|
@@ -131,7 +143,7 @@ module YARD
|
|
131
143
|
# readable format.
|
132
144
|
# @return [String] the string representation of the library.
|
133
145
|
def to_s(url_format = true)
|
134
|
-
version ? "#{name}#{url_format ? '/' : '-'}#{version}" :
|
146
|
+
version ? "#{name}#{url_format ? '/' : '-'}#{version}" : name.to_s
|
135
147
|
end
|
136
148
|
|
137
149
|
# @return [Fixnum] used for Hash mapping.
|
@@ -178,7 +190,7 @@ module YARD
|
|
178
190
|
# @return [nil] if there is no installed gem for the library
|
179
191
|
def gemspec
|
180
192
|
ver = version ? "= #{version}" : ">= 0"
|
181
|
-
|
193
|
+
YARD::GemIndex.find_all_by_name(name, ver).last
|
182
194
|
end
|
183
195
|
|
184
196
|
protected
|
@@ -212,17 +224,15 @@ module YARD
|
|
212
224
|
# @raise [LibraryNotPreparedError] if the gem does not have an existing
|
213
225
|
# yardoc file.
|
214
226
|
def load_yardoc_from_gem
|
215
|
-
require 'rubygems'
|
216
|
-
ver = version ? "= #{version}" : ">= 0"
|
217
|
-
self.yardoc_file = Registry.yardoc_file_for_gem(name, ver)
|
218
227
|
return if ready?
|
228
|
+
ver = version ? "= #{version}" : ">= 0"
|
219
229
|
|
220
230
|
@@chdir_mutex.synchronize do
|
221
231
|
Thread.new do
|
222
232
|
# Build gem docs on demand
|
223
233
|
log.debug "Building gem docs for #{to_s(false)}"
|
224
234
|
CLI::Gems.run(name, ver)
|
225
|
-
|
235
|
+
log.debug "Done building gem docs for #{to_s(false)}"
|
226
236
|
end
|
227
237
|
end
|
228
238
|
|
@@ -239,6 +249,13 @@ module YARD
|
|
239
249
|
gemspec.full_gem_path if gemspec
|
240
250
|
end
|
241
251
|
|
252
|
+
# @return [String] the yardoc file for a gem source
|
253
|
+
def yardoc_file_for_gem
|
254
|
+
require 'rubygems'
|
255
|
+
ver = version ? "= #{version}" : ">= 0"
|
256
|
+
Registry.yardoc_file_for_gem(name, ver)
|
257
|
+
end
|
258
|
+
|
242
259
|
private
|
243
260
|
|
244
261
|
def load_source_path
|
@@ -246,10 +263,15 @@ module YARD
|
|
246
263
|
send(meth) if respond_to?(meth, true)
|
247
264
|
end
|
248
265
|
|
266
|
+
def load_yardoc_file
|
267
|
+
meth = "yardoc_file_for_#{source}"
|
268
|
+
send(meth) if respond_to?(meth, true)
|
269
|
+
end
|
270
|
+
|
249
271
|
def serializer
|
250
272
|
return if yardoc_file.nil?
|
251
|
-
|
273
|
+
Serializers::YardocSerializer.new(yardoc_file)
|
252
274
|
end
|
253
275
|
end
|
254
276
|
end
|
255
|
-
end
|
277
|
+
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
require 'rack'
|
2
3
|
require 'webrick/httputils'
|
3
4
|
|
@@ -84,5 +85,5 @@ end
|
|
84
85
|
class Rack::Request
|
85
86
|
attr_accessor :version_supplied
|
86
87
|
alias query params
|
87
|
-
def xhr?; (env['HTTP_X_REQUESTED_WITH'] || "").
|
88
|
+
def xhr?; (env['HTTP_X_REQUESTED_WITH'] || "").casecmp("xmlhttprequest") == 0 end
|
88
89
|
end
|
data/lib/yard/server/router.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module YARD
|
2
3
|
module Server
|
3
4
|
# A router class implements the logic used to recognize a request for a specific
|
@@ -52,11 +53,8 @@ module YARD
|
|
52
53
|
# @return [Array(Numeric,Hash,Array)] the Rack-style server response data
|
53
54
|
def call(request)
|
54
55
|
self.request = request
|
55
|
-
|
56
|
-
|
57
|
-
else
|
58
|
-
RootRequestCommand.new(adapter.options).call(request)
|
59
|
-
end
|
56
|
+
result = check_static_cache || route
|
57
|
+
result ? result : RootRequestCommand.new(adapter.options).call(request)
|
60
58
|
end
|
61
59
|
|
62
60
|
# @group Route Prefixes
|
@@ -80,10 +78,13 @@ module YARD
|
|
80
78
|
# will be nil if no matching library was found.
|
81
79
|
def parse_library_from_path(paths)
|
82
80
|
return [adapter.libraries.values.first.first, paths] if adapter.options[:single_library]
|
83
|
-
library
|
84
|
-
|
81
|
+
library = nil
|
82
|
+
paths = paths.dup
|
83
|
+
libs = adapter.libraries[paths.first]
|
84
|
+
if libs
|
85
85
|
paths.shift
|
86
|
-
|
86
|
+
library = libs.find {|l| l.version == paths.first }
|
87
|
+
if library
|
87
88
|
request.version_supplied = true if request
|
88
89
|
paths.shift
|
89
90
|
else # use the last lib in the list
|
@@ -105,17 +106,17 @@ module YARD
|
|
105
106
|
path = path.gsub(%r{//+}, '/').gsub(%r{^/|/$}, '')
|
106
107
|
return route_index if path.empty? || path == docs_prefix
|
107
108
|
case path
|
108
|
-
when
|
109
|
+
when %r{^(#{docs_prefix}|#{list_prefix}|#{search_prefix}|#{static_prefix})(/.*|$)}
|
109
110
|
prefix = $1
|
110
111
|
paths = $2.gsub(%r{^/|/$}, '').split('/')
|
111
112
|
library, paths = *parse_library_from_path(paths)
|
112
113
|
return unless library
|
113
114
|
return case prefix
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
115
|
+
when docs_prefix; route_docs(library, paths)
|
116
|
+
when list_prefix; route_list(library, paths)
|
117
|
+
when search_prefix; route_search(library, paths)
|
118
|
+
when static_prefix; route_static(library, paths)
|
119
|
+
end
|
119
120
|
end
|
120
121
|
nil
|
121
122
|
end
|