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::CodeObjects
|
2
3
|
# Represents an instance method of a module that was mixed into the class
|
3
4
|
# scope of another namespace.
|
@@ -20,4 +21,4 @@ module YARD::CodeObjects
|
|
20
21
|
# @see MethodObject
|
21
22
|
def method_missing(sym, *args, &block) @del.__send__(sym, *args, &block) end
|
22
23
|
end
|
23
|
-
end
|
24
|
+
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
require 'ostruct'
|
2
3
|
|
3
4
|
module YARD
|
@@ -68,11 +69,7 @@ module YARD
|
|
68
69
|
# @return [nil] if the +data+ has no macro tag or if the macro is
|
69
70
|
# not new and no macro by the macro name is found.
|
70
71
|
def find_or_create(macro_name, data, method_object = nil)
|
71
|
-
|
72
|
-
macro
|
73
|
-
else
|
74
|
-
create(macro_name, data, method_object)
|
75
|
-
end
|
72
|
+
find(name) || create(macro_name, data, method_object)
|
76
73
|
end
|
77
74
|
alias create_docstring find_or_create
|
78
75
|
|
@@ -93,10 +90,13 @@ module YARD
|
|
93
90
|
# interpolating the block data as a variable.
|
94
91
|
# @return [String] the expanded macro data
|
95
92
|
# @param [String] macro_data the macro data to expand (taken from {#macro_data})
|
96
|
-
def expand(macro_data, call_params = [], full_source = '', block_source = '')
|
93
|
+
def expand(macro_data, call_params = [], full_source = '', block_source = '') # rubocop:disable Lint/UnusedMethodArgument
|
97
94
|
macro_data = macro_data.all if macro_data.is_a?(Docstring)
|
98
95
|
macro_data.gsub(MACRO_MATCH) do
|
99
|
-
escape
|
96
|
+
escape = $1
|
97
|
+
first = $2 || $5
|
98
|
+
last = $4
|
99
|
+
rng = $3 ? true : false
|
100
100
|
next $&[1..-1] if escape
|
101
101
|
if first == '*'
|
102
102
|
last ? $& : full_source
|
@@ -117,7 +117,7 @@ module YARD
|
|
117
117
|
# @param [Docstring] docstring the docstring to create a macro out of
|
118
118
|
# @!macro macro.expand
|
119
119
|
# @see find_or_create
|
120
|
-
def apply(docstring, call_params = [], full_source = '', block_source = '',
|
120
|
+
def apply(docstring, call_params = [], full_source = '', block_source = '', _method_object = nil) # rubocop:disable Lint/UnusedMethodArgument
|
121
121
|
docstring = docstring.all if Docstring === docstring
|
122
122
|
parser = Docstring.parser
|
123
123
|
handler = OpenStruct.new
|
@@ -133,7 +133,7 @@ module YARD
|
|
133
133
|
#
|
134
134
|
# @param [MacroObject] macro the macro object
|
135
135
|
# @!macro macro.expand
|
136
|
-
def apply_macro(macro, docstring, call_params = [], full_source = '', block_source = '')
|
136
|
+
def apply_macro(macro, docstring, call_params = [], full_source = '', block_source = '') # rubocop:disable Lint/UnusedMethodArgument
|
137
137
|
apply(docstring, call_params, full_source, block_source)
|
138
138
|
end
|
139
139
|
end
|
@@ -169,4 +169,4 @@ module YARD
|
|
169
169
|
end
|
170
170
|
end
|
171
171
|
end
|
172
|
-
end
|
172
|
+
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module YARD::CodeObjects
|
2
3
|
register_separator CSEP, :method
|
3
4
|
register_separator ISEP, :method
|
@@ -69,9 +70,7 @@ module YARD::CodeObjects
|
|
69
70
|
YARD::Registry.delete(self)
|
70
71
|
@path = nil
|
71
72
|
@scope = v.to_sym
|
72
|
-
if @scope == :module
|
73
|
-
@scope = :class
|
74
|
-
end
|
73
|
+
@scope = :class if @scope == :module
|
75
74
|
YARD::Registry.register(self) if reregister
|
76
75
|
end
|
77
76
|
|
@@ -99,27 +98,34 @@ module YARD::CodeObjects
|
|
99
98
|
# @return [Boolean] whether the method is a writer attribute
|
100
99
|
# @since 0.5.3
|
101
100
|
def writer?
|
102
|
-
|
101
|
+
info = attr_info
|
102
|
+
info && info[:write] == self ? true : false
|
103
103
|
end
|
104
104
|
|
105
105
|
# @return [Boolean] whether the method is a reader attribute
|
106
106
|
# @since 0.5.3
|
107
107
|
def reader?
|
108
|
-
|
108
|
+
info = attr_info
|
109
|
+
info && info[:read] == self ? true : false
|
109
110
|
end
|
110
111
|
|
111
112
|
# Tests if the object is defined as an attribute in the namespace
|
112
113
|
# @return [Boolean] whether the object is an attribute
|
113
114
|
def is_attribute?
|
114
|
-
|
115
|
-
info
|
115
|
+
info = attr_info
|
116
|
+
if info
|
117
|
+
read_or_write = name.to_s =~ /=$/ ? :write : :read
|
118
|
+
info[read_or_write] ? true : false
|
119
|
+
else
|
120
|
+
false
|
121
|
+
end
|
116
122
|
end
|
117
123
|
|
118
124
|
# Tests if the object is defined as an alias of another method
|
119
125
|
# @return [Boolean] whether the object is an alias
|
120
126
|
def is_alias?
|
121
127
|
return false unless namespace.is_a?(NamespaceObject)
|
122
|
-
namespace.aliases.
|
128
|
+
namespace.aliases.key? self
|
123
129
|
end
|
124
130
|
|
125
131
|
# Tests boolean {#explicit} value.
|
@@ -153,11 +159,7 @@ module YARD::CodeObjects
|
|
153
159
|
# (they should still have a separator as a prefix).
|
154
160
|
# @return [String] the path of a method
|
155
161
|
def path
|
156
|
-
@path ||=
|
157
|
-
sep + super
|
158
|
-
else
|
159
|
-
super
|
160
|
-
end
|
162
|
+
@path ||= !namespace || namespace.path == "" ? sep + super : super
|
161
163
|
end
|
162
164
|
|
163
165
|
# Returns the name of the object.
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module YARD::CodeObjects
|
2
3
|
register_separator NSEP, :namespace
|
3
4
|
default_separator NSEP
|
@@ -6,10 +7,6 @@ module YARD::CodeObjects
|
|
6
7
|
# The two main Ruby objects that can act as namespaces are modules
|
7
8
|
# ({ModuleObject}) and classes ({ClassObject}).
|
8
9
|
class NamespaceObject < Base
|
9
|
-
attr_writer :constants, :cvars, :mixins, :child, :meths
|
10
|
-
attr_writer :class_attributes, :instance_attributes
|
11
|
-
attr_writer :included_constants, :included_meths
|
12
|
-
|
13
10
|
# @return [Array<String>] a list of ordered group names inside the namespace
|
14
11
|
# @since 0.6.0
|
15
12
|
attr_accessor :groups
|
@@ -93,7 +90,7 @@ module YARD::CodeObjects
|
|
93
90
|
opts = SymbolHash[opts]
|
94
91
|
children.find do |obj|
|
95
92
|
opts.each do |meth, value|
|
96
|
-
break false
|
93
|
+
break false unless value.is_a?(Array) ? value.include?(obj[meth]) : obj[meth] == value
|
97
94
|
end
|
98
95
|
end
|
99
96
|
end
|
@@ -1,8 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module YARD
|
2
3
|
module CodeObjects
|
3
4
|
# A special type of +NoMethodError+ when raised from a {Proxy}
|
4
5
|
class ProxyMethodError < NoMethodError; end
|
5
6
|
|
7
|
+
# @private
|
8
|
+
PROXY_MATCH = /(?:#{NSEPQ}|#{ISEPQ}|#{CSEPQ})([^#{Regexp.quote(
|
9
|
+
(NSEP + ISEP + CSEP).split('').uniq.join
|
10
|
+
)}]+)$/
|
11
|
+
|
6
12
|
# The Proxy class is a way to lazily resolve code objects in
|
7
13
|
# cases where the object may not yet exist. A proxy simply stores
|
8
14
|
# an unresolved path until a method is called on the object, at which
|
@@ -19,7 +25,7 @@ module YARD
|
|
19
25
|
def self.===(other) other.is_a?(self) end
|
20
26
|
|
21
27
|
attr_reader :namespace
|
22
|
-
|
28
|
+
alias parent namespace
|
23
29
|
|
24
30
|
# Creates a new Proxy
|
25
31
|
#
|
@@ -33,13 +39,16 @@ module YARD
|
|
33
39
|
name = name[2..-1]
|
34
40
|
end
|
35
41
|
|
36
|
-
if name =~
|
37
|
-
@orignamespace
|
42
|
+
if name =~ PROXY_MATCH
|
43
|
+
@orignamespace = namespace
|
44
|
+
@origname = name
|
38
45
|
@imethod = true if name.include? ISEP
|
39
46
|
namespace = Proxy.new(namespace, $`) unless $`.empty?
|
40
47
|
name = $1
|
41
48
|
else
|
42
|
-
@orignamespace
|
49
|
+
@orignamespace = nil
|
50
|
+
@origname = nil
|
51
|
+
@imethod = nil
|
43
52
|
end
|
44
53
|
|
45
54
|
@name = name.to_sym
|
@@ -54,7 +63,7 @@ module YARD
|
|
54
63
|
@namespace = Proxy.new(@namespace.namespace, @namespace.value)
|
55
64
|
end
|
56
65
|
|
57
|
-
unless @namespace.is_a?(NamespaceObject)
|
66
|
+
unless @namespace.is_a?(NamespaceObject) || @namespace.is_a?(Proxy)
|
58
67
|
raise ArgumentError, "Invalid namespace object: #{namespace}"
|
59
68
|
end
|
60
69
|
|
@@ -69,17 +78,13 @@ module YARD
|
|
69
78
|
|
70
79
|
# (see Base#name)
|
71
80
|
def name(prefix = false)
|
72
|
-
prefix ?
|
81
|
+
prefix ? "#{@imethod && ISEP}#{@name}" : @name
|
73
82
|
end
|
74
83
|
|
75
84
|
# Returns a text representation of the Proxy
|
76
85
|
# @return [String] the object's #inspect method or P(OBJECTPATH)
|
77
86
|
def inspect
|
78
|
-
|
79
|
-
obj.inspect
|
80
|
-
else
|
81
|
-
"P(#{path})"
|
82
|
-
end
|
87
|
+
to_obj ? to_obj.inspect : "P(#{path})"
|
83
88
|
end
|
84
89
|
|
85
90
|
# If the proxy resolves to an object, returns its path, otherwise
|
@@ -88,11 +93,7 @@ module YARD
|
|
88
93
|
# @return [String] the assumed path of the proxy (or the real path
|
89
94
|
# of the resolved object)
|
90
95
|
def path
|
91
|
-
|
92
|
-
obj.path
|
93
|
-
else
|
94
|
-
proxy_path
|
95
|
-
end
|
96
|
+
to_obj ? to_obj.path : proxy_path
|
96
97
|
end
|
97
98
|
alias to_s path
|
98
99
|
alias to_str path
|
@@ -100,20 +101,12 @@ module YARD
|
|
100
101
|
|
101
102
|
# @return [Boolean]
|
102
103
|
def is_a?(klass)
|
103
|
-
|
104
|
-
obj.is_a?(klass)
|
105
|
-
else
|
106
|
-
self.class <= klass
|
107
|
-
end
|
104
|
+
to_obj ? to_obj.is_a?(klass) : self.class <= klass
|
108
105
|
end
|
109
106
|
|
110
107
|
# @return [Boolean]
|
111
108
|
def ===(other)
|
112
|
-
|
113
|
-
obj === other
|
114
|
-
else
|
115
|
-
self.class <= other.class
|
116
|
-
end
|
109
|
+
to_obj ? to_obj === other : self.class <= other.class
|
117
110
|
end
|
118
111
|
|
119
112
|
# @return [Boolean]
|
@@ -142,11 +135,7 @@ module YARD
|
|
142
135
|
# resolved. Otherwise returns +Proxy+.
|
143
136
|
# @return [Class] the resolved object's class or +Proxy+
|
144
137
|
def class
|
145
|
-
|
146
|
-
obj.class
|
147
|
-
else
|
148
|
-
Proxy
|
149
|
-
end
|
138
|
+
to_obj ? to_obj.class : Proxy
|
150
139
|
end
|
151
140
|
|
152
141
|
# Returns the type of the proxy. If it cannot be resolved at the
|
@@ -155,11 +144,7 @@ module YARD
|
|
155
144
|
# @return [Symbol] the Proxy's type
|
156
145
|
# @see #type=
|
157
146
|
def type
|
158
|
-
|
159
|
-
obj.type
|
160
|
-
else
|
161
|
-
@type || :proxy
|
162
|
-
end
|
147
|
+
to_obj ? to_obj.type : @type || :proxy
|
163
148
|
end
|
164
149
|
|
165
150
|
# Allows a parser to infer the type of the proxy by its path.
|
@@ -179,29 +164,25 @@ module YARD
|
|
179
164
|
|
180
165
|
# @return [Boolean]
|
181
166
|
def respond_to?(meth, include_private = false)
|
182
|
-
|
183
|
-
obj.respond_to?(meth, include_private)
|
184
|
-
else
|
185
|
-
super
|
186
|
-
end
|
167
|
+
to_obj ? to_obj.respond_to?(meth, include_private) : super
|
187
168
|
end
|
188
169
|
|
189
170
|
# Dispatches the method to the resolved object.
|
190
171
|
#
|
191
172
|
# @raise [ProxyMethodError] if the proxy cannot find the real object
|
192
173
|
def method_missing(meth, *args, &block)
|
193
|
-
if
|
194
|
-
|
174
|
+
if to_obj
|
175
|
+
to_obj.__send__(meth, *args, &block)
|
195
176
|
else
|
196
|
-
log.warn "Load Order / Name Resolution Problem on #{path}
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
177
|
+
log.warn "Load Order / Name Resolution Problem on #{path}:\n" \
|
178
|
+
"-\n" \
|
179
|
+
"Something is trying to call #{meth} on object #{path} before it has been recognized.\n" \
|
180
|
+
"This error usually means that you need to modify the order in which you parse files\n" \
|
181
|
+
"so that #{path} is parsed before methods or other objects attempt to access it.\n" \
|
182
|
+
"-\n" \
|
183
|
+
"YARD will recover from this error and continue to parse but you *may* have problems\n" \
|
184
|
+
"with your generated documentation. You should probably fix this.\n" \
|
185
|
+
"-\n"
|
205
186
|
begin
|
206
187
|
super
|
207
188
|
rescue NoMethodError
|
@@ -225,7 +206,8 @@ module YARD
|
|
225
206
|
# @return [Base, nil] the registered code object or nil
|
226
207
|
def to_obj
|
227
208
|
return @obj if @obj
|
228
|
-
|
209
|
+
@obj = Registry.resolve(@namespace, (@imethod ? ISEP : '') + @name.to_s, false, false, @type)
|
210
|
+
if @obj
|
229
211
|
if @origname && @origname.include?("::") && !@obj.path.include?(@origname)
|
230
212
|
# the object's path should include the original proxy namespace,
|
231
213
|
# otherwise it's (probably) not the right object.
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module YARD
|
2
3
|
module CodeObjects
|
3
4
|
# Represents the root namespace object (the invisible Ruby module that
|
@@ -7,6 +8,7 @@ module YARD
|
|
7
8
|
def inspect; @inspect ||= "#<yardoc root>" end
|
8
9
|
def root?; true end
|
9
10
|
def title; 'Top Level Namespace' end
|
11
|
+
|
10
12
|
def equal?(other)
|
11
13
|
other == :root ? true : super(other)
|
12
14
|
end
|
@@ -14,4 +16,4 @@ module YARD
|
|
14
16
|
def hash; :root.hash end
|
15
17
|
end
|
16
18
|
end
|
17
|
-
end
|
19
|
+
end
|
data/lib/yard/config.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module YARD
|
2
3
|
# This class maintains all system-wide configuration for YARD and handles
|
3
4
|
# the loading of plugins. To access options call {options}, and to load
|
@@ -164,20 +165,18 @@ module YARD
|
|
164
165
|
load_plugin_failed(name, e)
|
165
166
|
end
|
166
167
|
|
167
|
-
private
|
168
|
-
|
169
168
|
# Load gem plugins if :load_plugins is true
|
170
169
|
def self.load_gem_plugins
|
171
170
|
return true unless options[:load_plugins]
|
172
171
|
require 'rubygems'
|
173
172
|
result = true
|
174
|
-
|
173
|
+
YARD::GemIndex.find_all_by_name('').each do |gem|
|
175
174
|
begin
|
176
175
|
next true unless gem.name =~ YARD_PLUGIN_PREFIX
|
177
176
|
load_plugin(gem.name)
|
178
177
|
rescue Gem::LoadError => e
|
179
178
|
tmp = load_plugin_failed(gem.name, e)
|
180
|
-
result = tmp
|
179
|
+
result = tmp unless tmp
|
181
180
|
end
|
182
181
|
end
|
183
182
|
result
|
@@ -196,7 +195,7 @@ module YARD
|
|
196
195
|
with_yardopts do
|
197
196
|
arguments.each_with_index do |arg, i|
|
198
197
|
next unless arg == '--plugin'
|
199
|
-
load_plugin(arguments[i+1])
|
198
|
+
load_plugin(arguments[i + 1])
|
200
199
|
end
|
201
200
|
end
|
202
201
|
end
|
@@ -204,7 +203,7 @@ module YARD
|
|
204
203
|
# Check for command-line safe_mode switch in {arguments}
|
205
204
|
def self.load_commandline_safemode
|
206
205
|
with_yardopts do
|
207
|
-
arguments.each_with_index do |arg,
|
206
|
+
arguments.each_with_index do |arg, _i|
|
208
207
|
options[:safe_mode] = true if arg == '--safe'
|
209
208
|
end
|
210
209
|
end
|
@@ -213,7 +212,7 @@ module YARD
|
|
213
212
|
# Print a warning if the plugin failed to load
|
214
213
|
# @return [false]
|
215
214
|
def self.load_plugin_failed(name, exception)
|
216
|
-
log.
|
215
|
+
log.error "Error loading plugin '#{name}'"
|
217
216
|
log.backtrace(exception) if $DEBUG
|
218
217
|
false
|
219
218
|
end
|
@@ -247,13 +246,13 @@ module YARD
|
|
247
246
|
# @param [String] name the plugin name
|
248
247
|
# @return [String] the sanitized and normalized plugin name.
|
249
248
|
def self.translate_plugin_name(name)
|
250
|
-
name = name.
|
249
|
+
name = name.delete('/') # Security sanitization
|
251
250
|
name = "yard-" + name unless name =~ YARD_PLUGIN_PREFIX
|
252
251
|
name
|
253
252
|
end
|
254
253
|
|
255
254
|
# Temporarily loads .yardopts file into @yardopts
|
256
|
-
def self.with_yardopts
|
255
|
+
def self.with_yardopts
|
257
256
|
yfile = CLI::Yardoc::DEFAULT_YARDOPTS_FILE
|
258
257
|
@yardopts = File.file?(yfile) ? File.read_binary(yfile).shell_split : []
|
259
258
|
result = yield
|