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
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Backward compatability for gem specification lookup
|
4
|
+
# @see Gem::SourceIndex
|
5
|
+
module YARD
|
6
|
+
module GemIndex
|
7
|
+
module_function
|
8
|
+
|
9
|
+
def find_all_by_name(*args)
|
10
|
+
if defined?(Gem::Specification) && Gem::Specification.respond_to?(:find_all_by_name)
|
11
|
+
Gem::Specification.find_all_by_name(*args)
|
12
|
+
else
|
13
|
+
Gem.source_index.find_name(*args)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
data/lib/yard/globals.rb
CHANGED
@@ -1,11 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
# @group Global Convenience Methods
|
2
3
|
|
3
4
|
# Shortcut for creating a YARD::CodeObjects::Proxy via a path
|
4
5
|
#
|
5
6
|
# @see YARD::CodeObjects::Proxy
|
6
7
|
# @see YARD::Registry.resolve
|
7
|
-
def P(namespace, name = nil, type = nil)
|
8
|
-
|
8
|
+
def P(namespace, name = nil, type = nil) # rubocop:disable Style/MethodName
|
9
|
+
if name.nil?
|
10
|
+
name = namespace
|
11
|
+
namespace = nil
|
12
|
+
end
|
9
13
|
YARD::Registry.resolve(namespace, name, false, true, type)
|
10
14
|
end
|
11
15
|
|
data/lib/yard/handlers/base.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module YARD
|
2
3
|
module Handlers
|
3
4
|
# Raise this error when a handler should exit before completing.
|
@@ -189,7 +190,7 @@ module YARD
|
|
189
190
|
# statement.
|
190
191
|
#
|
191
192
|
def handles(*matches)
|
192
|
-
(@handlers ||= []).
|
193
|
+
(@handlers ||= []).concat(matches)
|
193
194
|
end
|
194
195
|
|
195
196
|
# This class is implemented by {Ruby::Base} and {Ruby::Legacy::Base}.
|
@@ -201,7 +202,7 @@ module YARD
|
|
201
202
|
# @param statement a statement object or node (depends on language type)
|
202
203
|
# @return [Boolean] whether or not this handler object should process
|
203
204
|
# the given statement
|
204
|
-
def handles?(statement)
|
205
|
+
def handles?(statement) # rubocop:disable Lint/UnusedMethodArgument
|
205
206
|
raise NotImplementedError, "override #handles? in a subclass"
|
206
207
|
end
|
207
208
|
|
@@ -222,7 +223,7 @@ module YARD
|
|
222
223
|
# @return [Boolean] whether the handler should only be processed inside
|
223
224
|
# a namespace.
|
224
225
|
def namespace_only?
|
225
|
-
|
226
|
+
@namespace_only ||= false
|
226
227
|
end
|
227
228
|
|
228
229
|
# Declares that a handler should only be called when inside a filename
|
@@ -300,7 +301,7 @@ module YARD
|
|
300
301
|
# Parses the semantic "block" contained in the statement node.
|
301
302
|
#
|
302
303
|
# @abstract Subclasses should call {Processor#process parser.process}
|
303
|
-
def parse_block(*
|
304
|
+
def parse_block(*)
|
304
305
|
raise NotImplementedError, "#{self} did not implement a #parse_block method for handling"
|
305
306
|
end
|
306
307
|
|
@@ -336,13 +337,13 @@ module YARD
|
|
336
337
|
undef globals, extra_state
|
337
338
|
|
338
339
|
def owner; parser.owner end
|
339
|
-
def owner=(v) parser.owner=
|
340
|
+
def owner=(v) parser.owner = v end
|
340
341
|
def namespace; parser.namespace end
|
341
|
-
def namespace=(v); parser.namespace=
|
342
|
+
def namespace=(v); parser.namespace = v end
|
342
343
|
def visibility; parser.visibility end
|
343
|
-
def visibility=(v); parser.visibility=
|
344
|
+
def visibility=(v); parser.visibility = v end
|
344
345
|
def scope; parser.scope end
|
345
|
-
def scope=(v); parser.scope=
|
346
|
+
def scope=(v); parser.scope = v end
|
346
347
|
def globals; parser.globals end
|
347
348
|
def extra_state; parser.extra_state end
|
348
349
|
|
@@ -358,7 +359,6 @@ module YARD
|
|
358
359
|
# Executes a given block with specific state values for {#owner},
|
359
360
|
# {#namespace} and {#scope}.
|
360
361
|
#
|
361
|
-
# @param [Proc] block the block to execute with specific state
|
362
362
|
# @option opts [CodeObjects::NamespaceObject] :namespace (value of #namespace)
|
363
363
|
# the namespace object that {#namespace} will be equal to for the
|
364
364
|
# duration of the block.
|
@@ -367,7 +367,7 @@ module YARD
|
|
367
367
|
# @option opts [CodeObjects::Base] :owner (value of #owner)
|
368
368
|
# the owner object (method) for the duration of the block
|
369
369
|
# @yield a block to execute with the given state values.
|
370
|
-
def push_state(opts = {}
|
370
|
+
def push_state(opts = {})
|
371
371
|
opts = {
|
372
372
|
:namespace => namespace,
|
373
373
|
:scope => :instance,
|
@@ -375,7 +375,10 @@ module YARD
|
|
375
375
|
:visibility => nil
|
376
376
|
}.update(opts)
|
377
377
|
|
378
|
-
ns
|
378
|
+
ns = namespace
|
379
|
+
vis = visibility
|
380
|
+
sc = scope
|
381
|
+
oo = owner
|
379
382
|
self.namespace = opts[:namespace]
|
380
383
|
self.visibility = opts[:visibility] || :public
|
381
384
|
self.scope = opts[:scope]
|
@@ -424,11 +427,10 @@ module YARD
|
|
424
427
|
# @return [void]
|
425
428
|
# @since 0.8.0
|
426
429
|
def register_ensure_loaded(object)
|
427
|
-
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
end
|
430
|
+
ensure_loaded!(object.namespace)
|
431
|
+
object.namespace.children << object
|
432
|
+
rescue NamespaceMissingError
|
433
|
+
nil # noop
|
432
434
|
end
|
433
435
|
|
434
436
|
# Registers the file/line of the declaration with the object
|
@@ -523,7 +525,7 @@ module YARD
|
|
523
525
|
return unless object.module_function?
|
524
526
|
modobj = MethodObject.new(object.namespace, object.name)
|
525
527
|
object.copy_to(modobj)
|
526
|
-
modobj.visibility = :private
|
528
|
+
modobj.visibility = :private # rubocop:disable Lint/UselessSetterCall
|
527
529
|
end
|
528
530
|
|
529
531
|
# Registers the object as dynamic if the object is defined inside
|
@@ -562,12 +564,9 @@ module YARD
|
|
562
564
|
|
563
565
|
retries = 0
|
564
566
|
while object.is_a?(Proxy)
|
565
|
-
if retries
|
566
|
-
|
567
|
-
|
568
|
-
else
|
569
|
-
raise NamespaceMissingError, object
|
570
|
-
end
|
567
|
+
raise NamespaceMissingError, object if retries > max_retries
|
568
|
+
log.debug "Missing object #{object} in file `#{parser.file}', moving it to the back of the line."
|
569
|
+
parser.parse_remaining_files
|
571
570
|
retries += 1
|
572
571
|
end
|
573
572
|
object
|
@@ -1,8 +1,9 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
class YARD::Handlers::C::AliasHandler < YARD::Handlers::C::Base
|
2
|
-
MATCH =
|
3
|
+
MATCH = /rb_define_alias
|
3
4
|
\s*\(\s*([\w\.]+),
|
4
5
|
\s*"([^"]+)",
|
5
|
-
\s*"([^"]+)"\s*\)
|
6
|
+
\s*"([^"]+)"\s*\)/xm
|
6
7
|
handles MATCH
|
7
8
|
statement_class BodyStatement
|
8
9
|
|
@@ -1,5 +1,6 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
class YARD::Handlers::C::AttributeHandler < YARD::Handlers::C::Base
|
2
|
-
MATCH =
|
3
|
+
MATCH = /rb_define_attr\s*\(\s*([\w\.]+),\s*"([^"]+)",\s*(0|1)\s*,\s*(0|1)\s*\)/
|
3
4
|
handles MATCH
|
4
5
|
|
5
6
|
process do
|
@@ -9,5 +10,4 @@ class YARD::Handlers::C::AttributeHandler < YARD::Handlers::C::Base
|
|
9
10
|
handle_attribute(var_name, name, read, write)
|
10
11
|
end
|
11
12
|
end
|
12
|
-
|
13
13
|
end
|
data/lib/yard/handlers/c/base.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module YARD
|
2
3
|
module Handlers
|
3
4
|
module C
|
@@ -10,11 +11,8 @@ module YARD
|
|
10
11
|
processor.globals.cruby_processed_files ||= {}
|
11
12
|
processor.globals.cruby_processed_files[processor.file] = true
|
12
13
|
|
13
|
-
|
14
|
-
|
15
|
-
else
|
16
|
-
src = statement.source
|
17
|
-
end
|
14
|
+
src = statement.respond_to?(:declaration) ?
|
15
|
+
statement.declaration : statement.source
|
18
16
|
|
19
17
|
handlers.any? do |a_handler|
|
20
18
|
statement_class >= statement.class &&
|
@@ -28,7 +26,11 @@ module YARD
|
|
28
26
|
end
|
29
27
|
|
30
28
|
def self.statement_class(type = nil)
|
31
|
-
|
29
|
+
if type
|
30
|
+
@statement_class = type
|
31
|
+
else
|
32
|
+
(defined?(@statement_class) && @statement_class) || Statement
|
33
|
+
end
|
32
34
|
end
|
33
35
|
|
34
36
|
# @group Registering objects
|
@@ -66,18 +68,16 @@ module YARD
|
|
66
68
|
end
|
67
69
|
|
68
70
|
def ensure_variable_defined!(var, max_retries = 1)
|
69
|
-
retries
|
71
|
+
retries = 0
|
72
|
+
object = nil
|
70
73
|
|
71
74
|
loop do
|
72
75
|
object = namespace_for_variable(var)
|
73
76
|
break unless object.is_a?(Proxy)
|
74
77
|
|
75
|
-
if retries
|
76
|
-
|
77
|
-
|
78
|
-
else
|
79
|
-
raise NamespaceMissingError, object
|
80
|
-
end
|
78
|
+
raise NamespaceMissingError, object if retries > max_retries
|
79
|
+
log.debug "Missing namespace variable #{var} in file `#{parser.file}', moving it to the back of the line."
|
80
|
+
parser.parse_remaining_files
|
81
81
|
retries += 1
|
82
82
|
end
|
83
83
|
|
@@ -1,6 +1,7 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
class YARD::Handlers::C::ConstantHandler < YARD::Handlers::C::Base
|
2
|
-
MATCH =
|
3
|
-
\s*\((?:\s*(\w+),)?\s*"(\w+)",\s*(.*?)\s*\)\s
|
3
|
+
MATCH = /\brb_define_((?:readonly_)?variable|(?:global_)?const)
|
4
|
+
\s*\((?:\s*(\w+),)?\s*"(\w+)",\s*(.*?)\s*\)\s*;/xm
|
4
5
|
handles MATCH
|
5
6
|
statement_class BodyStatement
|
6
7
|
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module YARD
|
2
3
|
module Handlers
|
3
4
|
module C
|
@@ -9,8 +10,8 @@ module YARD
|
|
9
10
|
parent = nil if parent == "0"
|
10
11
|
namespace = in_module ? ensure_variable_defined!(in_module) : Registry.root
|
11
12
|
if namespace.nil?
|
12
|
-
raise Parser::UndocumentableError,
|
13
|
-
"Cannot find definition for parent namespace."
|
13
|
+
raise Parser::UndocumentableError,
|
14
|
+
"class #{class_name}. Cannot find definition for parent namespace."
|
14
15
|
end
|
15
16
|
|
16
17
|
register ClassObject.new(namespace, class_name) do |obj|
|
@@ -31,8 +32,8 @@ module YARD
|
|
31
32
|
def handle_module(var_name, module_name, in_module = nil)
|
32
33
|
namespace = in_module ? ensure_variable_defined!(in_module) : Registry.root
|
33
34
|
if namespace.nil?
|
34
|
-
raise Parser::UndocumentableError,
|
35
|
-
"Cannot find definition for parent namespace."
|
35
|
+
raise Parser::UndocumentableError,
|
36
|
+
"module #{module_name}. Cannot find definition for parent namespace."
|
36
37
|
end
|
37
38
|
|
38
39
|
register ModuleObject.new(namespace, module_name) do |obj|
|
@@ -41,7 +42,7 @@ module YARD
|
|
41
42
|
end
|
42
43
|
end
|
43
44
|
|
44
|
-
def handle_method(scope, var_name, name, func_name,
|
45
|
+
def handle_method(scope, var_name, name, func_name, _source_file = nil)
|
45
46
|
visibility = :public
|
46
47
|
case scope
|
47
48
|
when "singleton_method"; scope = :class
|
@@ -84,7 +85,8 @@ module YARD
|
|
84
85
|
def handle_alias(var_name, new_name, old_name)
|
85
86
|
namespace = namespace_for_variable(var_name)
|
86
87
|
return if namespace.nil?
|
87
|
-
new_meth
|
88
|
+
new_meth = new_name.to_sym
|
89
|
+
old_meth = old_name.to_sym
|
88
90
|
old_obj = namespace.child(:name => old_meth, :scope => :instance)
|
89
91
|
new_obj = register MethodObject.new(namespace, new_meth, :instance) do |o|
|
90
92
|
register_visibility(o, visibility)
|
@@ -105,11 +107,8 @@ module YARD
|
|
105
107
|
|
106
108
|
def handle_constants(type, var_name, const_name, value)
|
107
109
|
return unless type =~ /^const$|^global_const$/
|
108
|
-
|
109
|
-
|
110
|
-
else
|
111
|
-
namespace = namespace_for_variable(var_name)
|
112
|
-
end
|
110
|
+
namespace = type == 'global_const' ?
|
111
|
+
:root : namespace_for_variable(var_name)
|
113
112
|
register ConstantObject.new(namespace, const_name) do |obj|
|
114
113
|
obj.source_type = :c
|
115
114
|
obj.value = value
|
@@ -129,7 +128,6 @@ module YARD
|
|
129
128
|
just_const_name = name.gsub(/\A.+::/, '')
|
130
129
|
if object.path == name || object.name.to_s == just_const_name
|
131
130
|
comment = override_comment.source
|
132
|
-
stmt = override_comment
|
133
131
|
break
|
134
132
|
end
|
135
133
|
end
|
@@ -153,13 +151,16 @@ module YARD
|
|
153
151
|
end
|
154
152
|
|
155
153
|
def find_method_body(object, symbol)
|
156
|
-
file
|
154
|
+
file = statement.file
|
155
|
+
in_file = false
|
157
156
|
if statement.comments && statement.comments.source =~ /\A\s*in (\S+)\Z/
|
158
|
-
file
|
157
|
+
file = $1
|
158
|
+
in_file = true
|
159
159
|
process_file(file, object)
|
160
160
|
end
|
161
161
|
|
162
|
-
|
162
|
+
src_stmt = symbols[symbol]
|
163
|
+
if src_stmt
|
163
164
|
register_file_info(object, src_stmt.file, src_stmt.line, true)
|
164
165
|
register_source(object, src_stmt)
|
165
166
|
record_parameters(object, symbol, src_stmt)
|
@@ -171,19 +172,17 @@ module YARD
|
|
171
172
|
|
172
173
|
# found source (possibly) but no docstring
|
173
174
|
# so look in overrides
|
174
|
-
override_comments.
|
175
|
+
return if override_comments.any? do |name, override_comment|
|
175
176
|
next unless override_comment.file == file
|
176
177
|
name = name.gsub(/::([^:\.#]+?)\Z/, '.\1')
|
177
178
|
|
178
|
-
|
179
|
-
|
180
|
-
else
|
181
|
-
object.name.to_s
|
182
|
-
end
|
183
|
-
|
179
|
+
# explicit namespace in override comment
|
180
|
+
path = (name =~ /\.|#/ ? object.path : object.name.to_s)
|
184
181
|
if path == name || path == name.sub(/new$/, 'initialize') || path == name.sub('.', '#')
|
185
182
|
register_docstring(object, override_comment.source, override_comment)
|
186
|
-
|
183
|
+
true
|
184
|
+
else
|
185
|
+
false
|
187
186
|
end
|
188
187
|
end
|
189
188
|
|
@@ -196,13 +195,13 @@ module YARD
|
|
196
195
|
def record_parameters(object, symbol, src)
|
197
196
|
# use regex to extract comma-delimited list of parameters from cfunc definition
|
198
197
|
if src.source =~ /VALUE\s+#{symbol}\(([^)]*)\)\s*\{/m
|
199
|
-
params = $~[1].split(/\s*,\s*/)
|
198
|
+
params = $~[1].split(/\s*,\s*/) # rubocop:disable Style/SpecialGlobalVars
|
200
199
|
# cfunc for a "varargs" method has params "int argc, VALUE *argv"
|
201
200
|
if params[0] =~ /int\s+argc/ && params[1] =~ /VALUE\s*\*\s*argv/
|
202
201
|
object.parameters = [['*args', nil]]
|
203
202
|
else
|
204
203
|
# the first cfunc argument is the 'self' argument, we don't need that
|
205
|
-
object.parameters = params.drop(1).map {
|
204
|
+
object.parameters = params.drop(1).map {|s| [s[/VALUE\s+(\S+)/, 1], nil] }
|
206
205
|
end
|
207
206
|
end
|
208
207
|
end
|
@@ -1,12 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
# Handles the Init_Libname() method
|
2
3
|
class YARD::Handlers::C::InitHandler < YARD::Handlers::C::Base
|
3
|
-
MATCH =
|
4
|
+
MATCH = /\A\s*(?:\S+\s+)*void\s+(?:[Ii]nit_)?(\w+)\s*/
|
4
5
|
handles MATCH
|
5
6
|
statement_class ToplevelStatement
|
6
7
|
|
7
8
|
process do
|
8
9
|
parse_block
|
9
|
-
|
10
|
+
decl = statement.declaration[MATCH, 1]
|
11
|
+
if decl
|
10
12
|
ns = namespace_for_variable(decl)
|
11
13
|
if ns.is_a?(YARD::CodeObjects::NamespaceObject) && ns.docstring.blank?
|
12
14
|
if statement.comments
|
@@ -1,5 +1,6 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
class YARD::Handlers::C::MethodHandler < YARD::Handlers::C::Base
|
2
|
-
MATCH1 =
|
3
|
+
MATCH1 = /rb_define_
|
3
4
|
(
|
4
5
|
singleton_method |
|
5
6
|
method |
|
@@ -9,17 +10,17 @@ class YARD::Handlers::C::MethodHandler < YARD::Handlers::C::Base
|
|
9
10
|
\s*\(\s*([\w\.]+)\s*,
|
10
11
|
\s*"([^"]+)"\s*,
|
11
12
|
\s*(?:RUBY_METHOD_FUNC\(|VALUEFUNC\(|\(\w+\))?(\w+)\)?\s*,
|
12
|
-
\s*(-?\w+)\s*\)
|
13
|
-
MATCH2 =
|
13
|
+
\s*(-?\w+)\s*\)/xm
|
14
|
+
MATCH2 = /rb_define_global_function\s*\(
|
14
15
|
\s*"([^"]+)",
|
15
16
|
\s*(?:RUBY_METHOD_FUNC\(|VALUEFUNC\(|\(\w+\))?(\w+)\)?,
|
16
|
-
\s*(-?\w+)\s*\)
|
17
|
+
\s*(-?\w+)\s*\)/xm
|
17
18
|
handles MATCH1
|
18
19
|
handles MATCH2
|
19
20
|
statement_class BodyStatement
|
20
21
|
|
21
22
|
process do
|
22
|
-
statement.source.scan(MATCH1) do |type, var_name, name, func_name,
|
23
|
+
statement.source.scan(MATCH1) do |type, var_name, name, func_name, _param_count|
|
23
24
|
break if var_name == "ruby_top_self"
|
24
25
|
break if var_name == "nstr"
|
25
26
|
break if var_name == "envtbl"
|
@@ -28,7 +29,7 @@ class YARD::Handlers::C::MethodHandler < YARD::Handlers::C::Base
|
|
28
29
|
handle_method(type, var_name, name, func_name)
|
29
30
|
end
|
30
31
|
|
31
|
-
statement.source.scan(MATCH2) do |name, func_name,
|
32
|
+
statement.source.scan(MATCH2) do |name, func_name, _param_count|
|
32
33
|
handle_method("method", "rb_mKernel", name, func_name)
|
33
34
|
end
|
34
35
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
class YARD::Handlers::C::MixinHandler < YARD::Handlers::C::Base
|
2
3
|
MATCH = /rb_include_module\s*\(\s*(\w+?),\s*(\w+?)\s*\)/
|
3
4
|
handles MATCH
|
@@ -8,7 +9,8 @@ class YARD::Handlers::C::MixinHandler < YARD::Handlers::C::Base
|
|
8
9
|
namespace = namespace_for_variable(klass_var)
|
9
10
|
ensure_loaded!(namespace)
|
10
11
|
|
11
|
-
|
12
|
+
var = namespace_for_variable(mixin_var)
|
13
|
+
if var
|
12
14
|
namespace.mixins(:instance) << var
|
13
15
|
else
|
14
16
|
raise YARD::Parser::UndocumentableError,
|