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
data/lib/yard/cli/yardoc.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
require 'digest/sha1'
|
2
3
|
require 'fileutils'
|
3
4
|
|
@@ -44,8 +45,7 @@ module YARD
|
|
44
45
|
# @return [CodeObjects::ExtraFileObject] the file object being rendered.
|
45
46
|
# The +object+ key is not used so that a file may be rendered in the context
|
46
47
|
# of an object's namespace (for generating links).
|
47
|
-
|
48
|
-
def file=(v) @file = v end
|
48
|
+
attr_accessor :file
|
49
49
|
|
50
50
|
# @return [String] the current locale
|
51
51
|
attr_accessor :locale
|
@@ -220,7 +220,10 @@ module YARD
|
|
220
220
|
@has_markup = false
|
221
221
|
|
222
222
|
if defined?(::Encoding) && ::Encoding.respond_to?(:default_external=)
|
223
|
-
|
223
|
+
utf8 = ::Encoding.find('utf-8')
|
224
|
+
|
225
|
+
::Encoding.default_external = utf8 unless ::Encoding.default_external == utf8
|
226
|
+
::Encoding.default_internal = utf8 unless ::Encoding.default_internal == utf8
|
224
227
|
end
|
225
228
|
end
|
226
229
|
|
@@ -236,7 +239,7 @@ module YARD
|
|
236
239
|
# @return [void]
|
237
240
|
def run(*args)
|
238
241
|
log.show_progress = true
|
239
|
-
if args.
|
242
|
+
if args.empty? || !args.first.nil?
|
240
243
|
# fail early if arguments are not valid
|
241
244
|
return unless parse_arguments(*args)
|
242
245
|
end
|
@@ -283,8 +286,8 @@ module YARD
|
|
283
286
|
super(*args)
|
284
287
|
|
285
288
|
# Last minute modifications
|
286
|
-
self.files = Parser::SourceParser::DEFAULT_PATH_GLOB if
|
287
|
-
|
289
|
+
self.files = Parser::SourceParser::DEFAULT_PATH_GLOB if files.empty?
|
290
|
+
files.delete_if {|x| x =~ /\A\s*\Z/ } # remove empty ones
|
288
291
|
readme = Dir.glob('README{,*[^~]}').first
|
289
292
|
readme ||= Dir.glob(files.first).first if options.onefile
|
290
293
|
options.readme ||= CodeObjects::ExtraFileObject.new(readme) if readme
|
@@ -336,7 +339,7 @@ module YARD
|
|
336
339
|
Registry.load_all if use_cache
|
337
340
|
objects = run_verifier(all_objects).reject do |object|
|
338
341
|
serialized = !options.serializer || options.serializer.exists?(object)
|
339
|
-
if checksums && serialized && !object.files.any? {|f,
|
342
|
+
if checksums && serialized && !object.files.any? {|f, _line| changed_files.include?(f) }
|
340
343
|
true
|
341
344
|
else
|
342
345
|
log.debug "Re-generating object #{object.path}..."
|
@@ -351,7 +354,8 @@ module YARD
|
|
351
354
|
#
|
352
355
|
# @return (see YARD::Templates::Helpers::MarkupHelper#load_markup_provider)
|
353
356
|
def verify_markup_options
|
354
|
-
result
|
357
|
+
result = false
|
358
|
+
lvl = has_markup ? log.level : Logger::FATAL
|
355
359
|
obj = Struct.new(:options).new(options)
|
356
360
|
obj.extend(Templates::Helpers::MarkupHelper)
|
357
361
|
options.files.each do |file|
|
@@ -362,8 +366,8 @@ module YARD
|
|
362
366
|
options.markup = :rdoc unless has_markup
|
363
367
|
log.enter_level(lvl) { result = obj.load_markup_provider }
|
364
368
|
if !result && !has_markup
|
365
|
-
log.warn "Could not load default RDoc formatter, "
|
366
|
-
|
369
|
+
log.warn "Could not load default RDoc formatter, " \
|
370
|
+
"ignoring any markup (install RDoc to get default formatting)."
|
367
371
|
options.markup = :none
|
368
372
|
true
|
369
373
|
else
|
@@ -450,15 +454,13 @@ module YARD
|
|
450
454
|
no_api = true if apis.delete('')
|
451
455
|
exprs = []
|
452
456
|
|
453
|
-
|
454
|
-
exprs << "#{apis.uniq.inspect}.include?(@api.text)"
|
455
|
-
end
|
457
|
+
exprs << "#{apis.uniq.inspect}.include?(@api.text)" unless apis.empty?
|
456
458
|
|
457
|
-
|
459
|
+
unless hidden_apis.empty?
|
458
460
|
exprs << "!#{hidden_apis.uniq.inspect}.include?(@api.text)"
|
459
461
|
end
|
460
462
|
|
461
|
-
exprs = exprs.
|
463
|
+
exprs = !exprs.empty? ? [exprs.join(' && ')] : []
|
462
464
|
exprs << "!@api" if no_api
|
463
465
|
|
464
466
|
expr = exprs.join(' || ')
|
@@ -551,7 +553,7 @@ module YARD
|
|
551
553
|
end
|
552
554
|
|
553
555
|
opts.on('--exclude REGEXP', 'Ignores a file if it matches path match (regexp)') do |path|
|
554
|
-
|
556
|
+
excluded << path
|
555
557
|
end
|
556
558
|
end
|
557
559
|
|
@@ -564,7 +566,7 @@ module YARD
|
|
564
566
|
options.onefile = true
|
565
567
|
end
|
566
568
|
|
567
|
-
opts.on('--list', 'List objects to standard out (implies -n)') do |
|
569
|
+
opts.on('--list', 'List objects to standard out (implies -n)') do |_format|
|
568
570
|
self.generate = false
|
569
571
|
self.list = true
|
570
572
|
end
|
@@ -646,7 +648,7 @@ module YARD
|
|
646
648
|
|
647
649
|
opts.on('--asset FROM[:TO]', 'A file or directory to copy over to output ',
|
648
650
|
' directory after generating') do |asset|
|
649
|
-
re =
|
651
|
+
re = %r{^(?:\.\./|/)}
|
650
652
|
from, to = *asset.split(':').map {|f| File.cleanpath(f) }
|
651
653
|
to ||= from
|
652
654
|
if from =~ re || to =~ re
|
@@ -678,7 +680,8 @@ module YARD
|
|
678
680
|
' (default is system locale)') do |encoding|
|
679
681
|
begin
|
680
682
|
if defined?(Encoding) && Encoding.respond_to?(:default_external=)
|
681
|
-
Encoding.default_external
|
683
|
+
Encoding.default_external = encoding
|
684
|
+
Encoding.default_internal = encoding
|
682
685
|
end
|
683
686
|
rescue ArgumentError => e
|
684
687
|
raise OptionParser::InvalidOption, e
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
require 'optparse'
|
2
3
|
|
3
4
|
module YARD
|
@@ -82,8 +83,8 @@ module YARD
|
|
82
83
|
opts.parse(args)
|
83
84
|
rescue OptionParser::ParseError => err
|
84
85
|
idx = args.index(err.args.first)
|
85
|
-
args = args[(idx+1)..-1]
|
86
|
-
args.shift while args.first && args.first[0,1] != '-'
|
86
|
+
args = args[(idx + 1)..-1]
|
87
|
+
args.shift while args.first && args.first[0, 1] != '-'
|
87
88
|
retry
|
88
89
|
end
|
89
90
|
end
|
data/lib/yard/cli/yri.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
require 'rbconfig'
|
2
3
|
|
3
4
|
module YARD
|
@@ -57,12 +58,15 @@ module YARD
|
|
57
58
|
|
58
59
|
if @name.nil? || @name.strip.empty?
|
59
60
|
print_usage
|
60
|
-
exit(1)
|
61
|
-
|
61
|
+
return exit(1)
|
62
|
+
end
|
63
|
+
|
64
|
+
object = find_object(@name)
|
65
|
+
if object
|
62
66
|
print_object(object)
|
63
67
|
else
|
64
68
|
STDERR.puts "No documentation for `#{@name}'"
|
65
|
-
exit(1)
|
69
|
+
return exit(1)
|
66
70
|
end
|
67
71
|
end
|
68
72
|
|
@@ -112,18 +116,16 @@ module YARD
|
|
112
116
|
|
113
117
|
# Try to load it from in memory cache
|
114
118
|
log.debug "Searching for #{name} in memory"
|
115
|
-
|
116
|
-
|
117
|
-
end
|
119
|
+
obj = try_load_object(name, nil)
|
120
|
+
return obj if obj
|
118
121
|
|
119
122
|
log.debug "Searching for #{name} in search paths"
|
120
123
|
@search_paths.each do |path|
|
121
124
|
next unless File.exist?(path)
|
122
125
|
log.debug "Searching for #{name} in #{path}..."
|
123
126
|
Registry.load(path)
|
124
|
-
|
125
|
-
|
126
|
-
end
|
127
|
+
obj = try_load_object(name, path)
|
128
|
+
return obj if obj
|
127
129
|
end
|
128
130
|
nil
|
129
131
|
end
|
@@ -139,12 +141,9 @@ module YARD
|
|
139
141
|
# No caching is done if this is nil.
|
140
142
|
# @return [void]
|
141
143
|
def try_load_object(name, cache_path)
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
end
|
146
|
-
return obj
|
147
|
-
end
|
144
|
+
obj = Registry.at(name)
|
145
|
+
cache_object(name, cache_path) if obj && cache_path
|
146
|
+
obj
|
148
147
|
end
|
149
148
|
|
150
149
|
# Loads {CACHE_FILE}
|
@@ -162,26 +161,28 @@ module YARD
|
|
162
161
|
def add_gem_paths
|
163
162
|
require 'rubygems'
|
164
163
|
gem_paths = []
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
164
|
+
YARD::GemIndex.find_all_by_name('').each do |spec|
|
165
|
+
yfile = Registry.yardoc_file_for_gem(spec.name)
|
166
|
+
next if yfile.nil?
|
167
|
+
|
168
|
+
if spec.name =~ /^yard-doc-/
|
169
|
+
gem_paths.unshift(yfile)
|
170
|
+
else
|
171
|
+
gem_paths.push(yfile)
|
172
172
|
end
|
173
173
|
end
|
174
174
|
@search_paths += gem_paths
|
175
175
|
rescue LoadError
|
176
|
+
nil # noop
|
176
177
|
end
|
177
178
|
|
178
179
|
# Adds paths in {SEARCH_PATHS_FILE}
|
179
180
|
# @since 0.5.1
|
180
181
|
def add_default_paths
|
181
|
-
@search_paths.
|
182
|
+
@search_paths.concat(DEFAULT_SEARCH_PATHS)
|
182
183
|
return unless File.file?(SEARCH_PATHS_FILE)
|
183
|
-
paths = File.readlines(SEARCH_PATHS_FILE).map
|
184
|
-
@search_paths.
|
184
|
+
paths = File.readlines(SEARCH_PATHS_FILE).map(&:strip)
|
185
|
+
@search_paths.concat(paths)
|
185
186
|
end
|
186
187
|
|
187
188
|
# Parses commandline options.
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module YARD
|
2
3
|
module CodeObjects
|
3
4
|
# A list of code objects. This array acts like a set (no unique items)
|
@@ -24,7 +25,7 @@ module YARD
|
|
24
25
|
end
|
25
26
|
self
|
26
27
|
end
|
27
|
-
|
28
|
+
alias << push
|
28
29
|
end
|
29
30
|
|
30
31
|
extend NamespaceMapper
|
@@ -57,31 +58,40 @@ module YARD
|
|
57
58
|
NAMESPACEMATCH = /(?:(?:#{NSEPQ}\s*)?#{CONSTANTMATCH})+/
|
58
59
|
|
59
60
|
# Regular expression to match a method name
|
60
|
-
METHODNAMEMATCH =
|
61
|
+
METHODNAMEMATCH = %r{[a-zA-Z_]\w*[!?=]?|[-+~]\@|<<|>>|=~|===?|![=~]?|<=>|[<>]=?|\*\*|[-/+%^&*~`|]|\[\]=?}
|
61
62
|
|
62
63
|
# Regular expression to match a fully qualified method def (self.foo, Class.foo).
|
63
64
|
METHODMATCH = /(?:(?:#{NAMESPACEMATCH}|[a-z]\w*)\s*(?:#{CSEPQ}|#{NSEPQ})\s*)?#{METHODNAMEMATCH}/
|
64
65
|
|
65
66
|
# All builtin Ruby exception classes for inheritance tree.
|
66
|
-
BUILTIN_EXCEPTIONS = ["
|
67
|
-
"
|
68
|
-
"
|
69
|
-
"
|
70
|
-
"
|
67
|
+
BUILTIN_EXCEPTIONS = ["ArgumentError", "ClosedQueueError", "EncodingError",
|
68
|
+
"EOFError", "Exception", "FiberError", "FloatDomainError", "IndexError",
|
69
|
+
"Interrupt", "IOError", "KeyError", "LoadError", "LocalJumpError",
|
70
|
+
"NameError", "NoMemoryError", "NoMethodError", "NotImplementedError",
|
71
|
+
"RangeError", "RegexpError", "RuntimeError", "ScriptError", "SecurityError",
|
72
|
+
"SignalException", "StandardError", "StopIteration", "SyntaxError",
|
73
|
+
"SystemCallError", "SystemExit", "SystemStackError", "ThreadError",
|
74
|
+
"TypeError", "UncaughtThrowError", "ZeroDivisionError"]
|
75
|
+
|
71
76
|
# All builtin Ruby classes for inheritance tree.
|
72
77
|
# @note MatchingData is a 1.8.x legacy class
|
73
|
-
BUILTIN_CLASSES = ["
|
74
|
-
"
|
75
|
-
"
|
76
|
-
"Method", "
|
78
|
+
BUILTIN_CLASSES = ["Array", "Bignum", "Binding", "Class", "Complex",
|
79
|
+
"ConditionVariable", "Data", "Dir", "Encoding", "Enumerator", "FalseClass",
|
80
|
+
"Fiber", "File", "Fixnum", "Float", "Hash", "IO", "Integer", "MatchData",
|
81
|
+
"Method", "Module", "NilClass", "Numeric", "Object", "Proc", "Queue",
|
82
|
+
"Random", "Range", "Rational", "Regexp", "RubyVM", "SizedQueue", "String",
|
83
|
+
"Struct", "Symbol", "Thread", "ThreadGroup", "Time", "TracePoint",
|
84
|
+
"TrueClass", "UnboundMethod"] + BUILTIN_EXCEPTIONS
|
85
|
+
|
77
86
|
# All builtin Ruby modules for mixin handling.
|
78
|
-
BUILTIN_MODULES = ["
|
79
|
-
"
|
87
|
+
BUILTIN_MODULES = ["Comparable", "Enumerable", "Errno", "FileTest", "GC",
|
88
|
+
"Kernel", "Marshal", "Math", "ObjectSpace", "Precision", "Process", "Signal"]
|
89
|
+
|
80
90
|
# All builtin Ruby classes and modules.
|
81
91
|
BUILTIN_ALL = BUILTIN_CLASSES + BUILTIN_MODULES
|
82
92
|
|
83
93
|
# Hash of {BUILTIN_EXCEPTIONS} as keys and true as value (for O(1) lookups)
|
84
|
-
BUILTIN_EXCEPTIONS_HASH = BUILTIN_EXCEPTIONS.inject({}) {|h,n| h.update(n => true) }
|
94
|
+
BUILTIN_EXCEPTIONS_HASH = BUILTIN_EXCEPTIONS.inject({}) {|h, n| h.update(n => true) }
|
85
95
|
|
86
96
|
# +Base+ is the superclass of all code objects recognized by YARD. A code
|
87
97
|
# object is any entity in the Ruby language (class, method, module). A
|
@@ -182,7 +192,7 @@ module YARD
|
|
182
192
|
namespace = Proxy.new(namespace.namespace, namespace.value)
|
183
193
|
end
|
184
194
|
|
185
|
-
if name.to_s[0,2] == NSEP
|
195
|
+
if name.to_s[0, 2] == NSEP
|
186
196
|
name = name.to_s[2..-1]
|
187
197
|
namespace = Registry.root
|
188
198
|
end
|
@@ -221,9 +231,9 @@ module YARD
|
|
221
231
|
# @yield [self] a block to perform any extra initialization on the object
|
222
232
|
# @yieldparam [Base] self the newly initialized code object
|
223
233
|
# @return [Base] the newly created object
|
224
|
-
def initialize(namespace, name, *
|
234
|
+
def initialize(namespace, name, *)
|
225
235
|
if namespace && namespace != :root &&
|
226
|
-
|
236
|
+
!namespace.is_a?(NamespaceObject) && !namespace.is_a?(Proxy)
|
227
237
|
raise ArgumentError, "Invalid namespace object: #{namespace}"
|
228
238
|
end
|
229
239
|
|
@@ -262,7 +272,7 @@ module YARD
|
|
262
272
|
# @return [String] if prefix is true, prefix + the name as a String.
|
263
273
|
# This must be implemented by the subclass.
|
264
274
|
def name(prefix = false)
|
265
|
-
prefix ? @name.to_s : @name
|
275
|
+
prefix ? @name.to_s : (defined?(@name) && @name)
|
266
276
|
end
|
267
277
|
|
268
278
|
# Associates a file with a code object, optionally adding the line where it was defined.
|
@@ -408,11 +418,8 @@ module YARD
|
|
408
418
|
# into a docstring and meta tags.
|
409
419
|
def docstring=(comments)
|
410
420
|
@docstrings.clear
|
411
|
-
|
412
|
-
|
413
|
-
else
|
414
|
-
@docstring = Docstring.new(comments, self)
|
415
|
-
end
|
421
|
+
@docstring = Docstring === comments ?
|
422
|
+
comments : Docstring.new(comments, self)
|
416
423
|
end
|
417
424
|
|
418
425
|
# Default type is the lowercase class name without the "Object" suffix.
|
@@ -434,12 +441,12 @@ module YARD
|
|
434
441
|
# @see #sep
|
435
442
|
def path
|
436
443
|
@path ||= if parent && !parent.root?
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
444
|
+
[parent.path, name.to_s].join(sep)
|
445
|
+
else
|
446
|
+
name.to_s
|
447
|
+
end
|
441
448
|
end
|
442
|
-
|
449
|
+
alias to_s path
|
443
450
|
|
444
451
|
# @note
|
445
452
|
# Override this method if your object has a special title that does
|
@@ -465,11 +472,8 @@ module YARD
|
|
465
472
|
common = [path, other].join(" ").match(/^(\S*)\S*(?: \1\S*)*$/)[1]
|
466
473
|
common = path unless common =~ /(\.|::|#)$/
|
467
474
|
common = common.sub(/(\.|::|#)[^:#\.]*?$/, '') if same_parent
|
468
|
-
|
469
|
-
|
470
|
-
else
|
471
|
-
suffix = '(::|\.)'
|
472
|
-
end
|
475
|
+
suffix = %w(. :).include?(common[-1, 1]) || other[common.size, 1] == '#' ?
|
476
|
+
'' : '(::|\.)'
|
473
477
|
result = other.sub(/^#{Regexp.quote common}#{suffix}/, '')
|
474
478
|
result.empty? ? other : result
|
475
479
|
end
|
@@ -489,7 +493,7 @@ module YARD
|
|
489
493
|
# @see Templates::Engine#render
|
490
494
|
def format(options = {})
|
491
495
|
options = options.merge(:object => self)
|
492
|
-
options = options.merge(:type => type)
|
496
|
+
options = options.merge(:type => type) unless options[:type]
|
493
497
|
Templates::Engine.render(options)
|
494
498
|
end
|
495
499
|
|
@@ -520,8 +524,8 @@ module YARD
|
|
520
524
|
end
|
521
525
|
end
|
522
526
|
|
523
|
-
|
524
|
-
|
527
|
+
alias parent namespace
|
528
|
+
alias parent= namespace=
|
525
529
|
|
526
530
|
# Gets a tag from the {#docstring}
|
527
531
|
# @see Docstring#tag
|
@@ -577,7 +581,7 @@ module YARD
|
|
577
581
|
# @param [String] source the source code to format
|
578
582
|
# @return [String] formatted source
|
579
583
|
def format_source(source)
|
580
|
-
source.chomp
|
584
|
+
source = source.chomp
|
581
585
|
last = source.split(/\r?\n/).last
|
582
586
|
indent = last ? last[/^([ \t]*)/, 1].length : 0
|
583
587
|
source.gsub(/^[ \t]{#{indent}}/, '')
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module YARD::CodeObjects
|
2
3
|
register_separator NSEP, :class
|
3
4
|
|
@@ -32,7 +33,7 @@ module YARD::CodeObjects
|
|
32
33
|
#
|
33
34
|
# @return [Boolean] whether the object represents a Ruby exception
|
34
35
|
def is_exception?
|
35
|
-
inheritance_tree.reverse.any? {|o| BUILTIN_EXCEPTIONS_HASH.
|
36
|
+
inheritance_tree.reverse.any? {|o| BUILTIN_EXCEPTIONS_HASH.key? o.path }
|
36
37
|
end
|
37
38
|
|
38
39
|
# Returns the inheritance tree of the object including self.
|
@@ -136,7 +137,7 @@ module YARD::CodeObjects
|
|
136
137
|
end
|
137
138
|
|
138
139
|
if @superclass == self
|
139
|
-
msg = "superclass #{@superclass.inspect} cannot be the same as the declared class #{
|
140
|
+
msg = "superclass #{@superclass.inspect} cannot be the same as the declared class #{inspect}"
|
140
141
|
@superclass = P("::Object")
|
141
142
|
raise ArgumentError, msg
|
142
143
|
end
|