deg-yard 0.8.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.travis.yml +39 -0
- data/.yardopts +25 -0
- data/.yardopts_guide +19 -0
- data/.yardopts_i18n +22 -0
- data/Gemfile +35 -0
- data/LEGAL +66 -0
- data/LICENSE +22 -0
- data/README.md +609 -0
- data/Rakefile +66 -0
- data/benchmarks/builtins_vs_eval.rb +23 -0
- data/benchmarks/concat_vs_join.rb +12 -0
- data/benchmarks/erb_vs_erubis.rb +53 -0
- data/benchmarks/format_args.rb +46 -0
- data/benchmarks/generation.rb +37 -0
- data/benchmarks/marshal_vs_dbm.rb +63 -0
- data/benchmarks/parsing.rb +46 -0
- data/benchmarks/pathname_vs_string.rb +50 -0
- data/benchmarks/rdoc_vs_yardoc.rb +10 -0
- data/benchmarks/registry_store_types.rb +48 -0
- data/benchmarks/ri_vs_yri.rb +18 -0
- data/benchmarks/ripper_parser.rb +12 -0
- data/benchmarks/splat_vs_flatten.rb +12 -0
- data/benchmarks/template_erb.rb +22 -0
- data/benchmarks/template_format.rb +6 -0
- data/benchmarks/template_profile.rb +17 -0
- data/benchmarks/yri_cache.rb +19 -0
- data/bin/yard +12 -0
- data/bin/yardoc +12 -0
- data/bin/yri +12 -0
- data/docs/CodeObjects.md +115 -0
- data/docs/GettingStarted.md +592 -0
- data/docs/Handlers.md +152 -0
- data/docs/Overview.md +61 -0
- data/docs/Parser.md +191 -0
- data/docs/Tags.md +282 -0
- data/docs/TagsArch.md +123 -0
- data/docs/Templates.md +496 -0
- data/docs/WhatsNew.md +1244 -0
- data/docs/images/code-objects-class-diagram.png +0 -0
- data/docs/images/handlers-class-diagram.png +0 -0
- data/docs/images/overview-class-diagram.png +0 -0
- data/docs/images/parser-class-diagram.png +0 -0
- data/docs/images/tags-class-diagram.png +0 -0
- data/docs/templates/default/fulldoc/html/full_list_tag.erb +7 -0
- data/docs/templates/default/fulldoc/html/setup.rb +6 -0
- data/docs/templates/default/layout/html/setup.rb +8 -0
- data/docs/templates/default/layout/html/tag_list.erb +11 -0
- data/docs/templates/default/yard_tags/html/list.erb +18 -0
- data/docs/templates/default/yard_tags/html/setup.rb +27 -0
- data/docs/templates/plugin.rb +65 -0
- data/lib/rubygems_plugin.rb +4 -0
- data/lib/yard/autoload.rb +290 -0
- data/lib/yard/cli/command.rb +84 -0
- data/lib/yard/cli/command_parser.rb +92 -0
- data/lib/yard/cli/config.rb +136 -0
- data/lib/yard/cli/diff.rb +270 -0
- data/lib/yard/cli/display.rb +68 -0
- data/lib/yard/cli/gems.rb +83 -0
- data/lib/yard/cli/graph.rb +126 -0
- data/lib/yard/cli/help.rb +18 -0
- data/lib/yard/cli/i18n.rb +69 -0
- data/lib/yard/cli/list.rb +22 -0
- data/lib/yard/cli/markup_types.rb +33 -0
- data/lib/yard/cli/server.rb +253 -0
- data/lib/yard/cli/stats.rb +213 -0
- data/lib/yard/cli/yardoc.rb +752 -0
- data/lib/yard/cli/yardopts_command.rb +109 -0
- data/lib/yard/cli/yri.rb +214 -0
- data/lib/yard/code_objects/base.rb +585 -0
- data/lib/yard/code_objects/class_object.rb +143 -0
- data/lib/yard/code_objects/class_variable_object.rb +8 -0
- data/lib/yard/code_objects/constant_object.rb +13 -0
- data/lib/yard/code_objects/extended_method_object.rb +23 -0
- data/lib/yard/code_objects/extra_file_object.rb +128 -0
- data/lib/yard/code_objects/macro_object.rb +172 -0
- data/lib/yard/code_objects/method_object.rb +191 -0
- data/lib/yard/code_objects/module_object.rb +18 -0
- data/lib/yard/code_objects/namespace_object.rb +200 -0
- data/lib/yard/code_objects/proxy.rb +258 -0
- data/lib/yard/code_objects/root_object.rb +17 -0
- data/lib/yard/config.rb +269 -0
- data/lib/yard/core_ext/array.rb +15 -0
- data/lib/yard/core_ext/file.rb +65 -0
- data/lib/yard/core_ext/hash.rb +15 -0
- data/lib/yard/core_ext/insertion.rb +60 -0
- data/lib/yard/core_ext/module.rb +19 -0
- data/lib/yard/core_ext/string.rb +67 -0
- data/lib/yard/core_ext/symbol_hash.rb +73 -0
- data/lib/yard/docstring.rb +362 -0
- data/lib/yard/docstring_parser.rb +321 -0
- data/lib/yard/globals.rb +18 -0
- data/lib/yard/handlers/base.rb +597 -0
- data/lib/yard/handlers/c/alias_handler.rb +15 -0
- data/lib/yard/handlers/c/attribute_handler.rb +13 -0
- data/lib/yard/handlers/c/base.rb +110 -0
- data/lib/yard/handlers/c/class_handler.rb +26 -0
- data/lib/yard/handlers/c/constant_handler.rb +12 -0
- data/lib/yard/handlers/c/handler_methods.rb +166 -0
- data/lib/yard/handlers/c/init_handler.rb +18 -0
- data/lib/yard/handlers/c/method_handler.rb +35 -0
- data/lib/yard/handlers/c/mixin_handler.rb +13 -0
- data/lib/yard/handlers/c/module_handler.rb +16 -0
- data/lib/yard/handlers/c/override_comment_handler.rb +30 -0
- data/lib/yard/handlers/c/path_handler.rb +10 -0
- data/lib/yard/handlers/c/struct_handler.rb +12 -0
- data/lib/yard/handlers/c/symbol_handler.rb +7 -0
- data/lib/yard/handlers/processor.rb +201 -0
- data/lib/yard/handlers/ruby/alias_handler.rb +41 -0
- data/lib/yard/handlers/ruby/attribute_handler.rb +82 -0
- data/lib/yard/handlers/ruby/base.rb +164 -0
- data/lib/yard/handlers/ruby/class_condition_handler.rb +86 -0
- data/lib/yard/handlers/ruby/class_handler.rb +121 -0
- data/lib/yard/handlers/ruby/class_variable_handler.rb +16 -0
- data/lib/yard/handlers/ruby/comment_handler.rb +9 -0
- data/lib/yard/handlers/ruby/constant_handler.rb +45 -0
- data/lib/yard/handlers/ruby/dsl_handler.rb +14 -0
- data/lib/yard/handlers/ruby/dsl_handler_methods.rb +77 -0
- data/lib/yard/handlers/ruby/exception_handler.rb +26 -0
- data/lib/yard/handlers/ruby/extend_handler.rb +21 -0
- data/lib/yard/handlers/ruby/legacy/alias_handler.rb +34 -0
- data/lib/yard/handlers/ruby/legacy/attribute_handler.rb +60 -0
- data/lib/yard/handlers/ruby/legacy/base.rb +250 -0
- data/lib/yard/handlers/ruby/legacy/class_condition_handler.rb +83 -0
- data/lib/yard/handlers/ruby/legacy/class_handler.rb +111 -0
- data/lib/yard/handlers/ruby/legacy/class_variable_handler.rb +14 -0
- data/lib/yard/handlers/ruby/legacy/comment_handler.rb +9 -0
- data/lib/yard/handlers/ruby/legacy/constant_handler.rb +28 -0
- data/lib/yard/handlers/ruby/legacy/dsl_handler.rb +16 -0
- data/lib/yard/handlers/ruby/legacy/exception_handler.rb +12 -0
- data/lib/yard/handlers/ruby/legacy/extend_handler.rb +20 -0
- data/lib/yard/handlers/ruby/legacy/method_handler.rb +85 -0
- data/lib/yard/handlers/ruby/legacy/mixin_handler.rb +39 -0
- data/lib/yard/handlers/ruby/legacy/module_function_handler.rb +18 -0
- data/lib/yard/handlers/ruby/legacy/module_handler.rb +11 -0
- data/lib/yard/handlers/ruby/legacy/private_constant_handler.rb +21 -0
- data/lib/yard/handlers/ruby/legacy/visibility_handler.rb +16 -0
- data/lib/yard/handlers/ruby/legacy/yield_handler.rb +28 -0
- data/lib/yard/handlers/ruby/method_condition_handler.rb +8 -0
- data/lib/yard/handlers/ruby/method_handler.rb +92 -0
- data/lib/yard/handlers/ruby/mixin_handler.rb +36 -0
- data/lib/yard/handlers/ruby/module_function_handler.rb +26 -0
- data/lib/yard/handlers/ruby/module_handler.rb +11 -0
- data/lib/yard/handlers/ruby/private_constant_handler.rb +36 -0
- data/lib/yard/handlers/ruby/struct_handler_methods.rb +141 -0
- data/lib/yard/handlers/ruby/visibility_handler.rb +24 -0
- data/lib/yard/handlers/ruby/yield_handler.rb +30 -0
- data/lib/yard/i18n/locale.rb +74 -0
- data/lib/yard/i18n/message.rb +56 -0
- data/lib/yard/i18n/messages.rb +55 -0
- data/lib/yard/i18n/pot_generator.rb +280 -0
- data/lib/yard/i18n/text.rb +173 -0
- data/lib/yard/logging.rb +190 -0
- data/lib/yard/options.rb +216 -0
- data/lib/yard/parser/base.rb +56 -0
- data/lib/yard/parser/c/c_parser.rb +231 -0
- data/lib/yard/parser/c/comment_parser.rb +131 -0
- data/lib/yard/parser/c/statement.rb +63 -0
- data/lib/yard/parser/ruby/ast_node.rb +496 -0
- data/lib/yard/parser/ruby/legacy/ruby_lex.rb +1378 -0
- data/lib/yard/parser/ruby/legacy/ruby_parser.rb +31 -0
- data/lib/yard/parser/ruby/legacy/statement.rb +65 -0
- data/lib/yard/parser/ruby/legacy/statement_list.rb +384 -0
- data/lib/yard/parser/ruby/legacy/token_list.rb +71 -0
- data/lib/yard/parser/ruby/ruby_parser.rb +625 -0
- data/lib/yard/parser/source_parser.rb +517 -0
- data/lib/yard/rake/yardoc_task.rb +74 -0
- data/lib/yard/registry.rb +438 -0
- data/lib/yard/registry_store.rb +319 -0
- data/lib/yard/rubygems/backports/LICENSE.txt +57 -0
- data/lib/yard/rubygems/backports/MIT.txt +20 -0
- data/lib/yard/rubygems/backports/gem.rb +9 -0
- data/lib/yard/rubygems/backports/source_index.rb +370 -0
- data/lib/yard/rubygems/backports.rb +8 -0
- data/lib/yard/rubygems/doc_manager.rb +88 -0
- data/lib/yard/rubygems/specification.rb +41 -0
- data/lib/yard/serializers/base.rb +80 -0
- data/lib/yard/serializers/file_system_serializer.rb +90 -0
- data/lib/yard/serializers/process_serializer.rb +24 -0
- data/lib/yard/serializers/stdout_serializer.rb +32 -0
- data/lib/yard/serializers/yardoc_serializer.rb +124 -0
- data/lib/yard/server/adapter.rb +100 -0
- data/lib/yard/server/commands/base.rb +192 -0
- data/lib/yard/server/commands/display_file_command.rb +24 -0
- data/lib/yard/server/commands/display_object_command.rb +58 -0
- data/lib/yard/server/commands/frames_command.rb +15 -0
- data/lib/yard/server/commands/library_command.rb +148 -0
- data/lib/yard/server/commands/library_index_command.rb +24 -0
- data/lib/yard/server/commands/list_command.rb +24 -0
- data/lib/yard/server/commands/search_command.rb +78 -0
- data/lib/yard/server/commands/static_file_command.rb +57 -0
- data/lib/yard/server/doc_server_helper.rb +76 -0
- data/lib/yard/server/doc_server_serializer.rb +33 -0
- data/lib/yard/server/library_version.rb +227 -0
- data/lib/yard/server/rack_adapter.rb +88 -0
- data/lib/yard/server/router.rb +176 -0
- data/lib/yard/server/static_caching.rb +45 -0
- data/lib/yard/server/templates/default/fulldoc/html/css/custom.css +78 -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 +12 -0
- data/lib/yard/server/templates/default/layout/html/breadcrumb.erb +46 -0
- data/lib/yard/server/templates/default/layout/html/script_setup.erb +8 -0
- data/lib/yard/server/templates/default/layout/html/setup.rb +7 -0
- data/lib/yard/server/templates/default/method_details/html/permalink.erb +4 -0
- data/lib/yard/server/templates/default/method_details/html/setup.rb +4 -0
- data/lib/yard/server/templates/doc_server/library_list/html/contents.erb +13 -0
- data/lib/yard/server/templates/doc_server/library_list/html/headers.erb +26 -0
- data/lib/yard/server/templates/doc_server/library_list/html/library_list.erb +12 -0
- data/lib/yard/server/templates/doc_server/library_list/html/setup.rb +3 -0
- data/lib/yard/server/templates/doc_server/library_list/html/title.erb +2 -0
- data/lib/yard/server/templates/doc_server/processing/html/processing.erb +51 -0
- data/lib/yard/server/templates/doc_server/processing/html/setup.rb +3 -0
- data/lib/yard/server/templates/doc_server/search/html/search.erb +18 -0
- data/lib/yard/server/templates/doc_server/search/html/setup.rb +8 -0
- data/lib/yard/server/webrick_adapter.rb +43 -0
- data/lib/yard/server.rb +11 -0
- data/lib/yard/tags/default_factory.rb +176 -0
- data/lib/yard/tags/default_tag.rb +12 -0
- data/lib/yard/tags/directives.rb +599 -0
- data/lib/yard/tags/library.rb +630 -0
- data/lib/yard/tags/option_tag.rb +12 -0
- data/lib/yard/tags/overload_tag.rb +66 -0
- data/lib/yard/tags/ref_tag.rb +7 -0
- data/lib/yard/tags/ref_tag_list.rb +27 -0
- data/lib/yard/tags/tag.rb +57 -0
- data/lib/yard/tags/tag_format_error.rb +6 -0
- data/lib/yard/templates/engine.rb +185 -0
- data/lib/yard/templates/erb_cache.rb +22 -0
- data/lib/yard/templates/helpers/base_helper.rb +212 -0
- data/lib/yard/templates/helpers/filter_helper.rb +26 -0
- data/lib/yard/templates/helpers/html_helper.rb +599 -0
- data/lib/yard/templates/helpers/html_syntax_highlight_helper.rb +59 -0
- data/lib/yard/templates/helpers/markup/rdoc_markdown.rb +22 -0
- data/lib/yard/templates/helpers/markup/rdoc_markup.rb +106 -0
- data/lib/yard/templates/helpers/markup_helper.rb +169 -0
- data/lib/yard/templates/helpers/method_helper.rb +74 -0
- data/lib/yard/templates/helpers/module_helper.rb +19 -0
- data/lib/yard/templates/helpers/text_helper.rb +95 -0
- data/lib/yard/templates/helpers/uml_helper.rb +46 -0
- data/lib/yard/templates/section.rb +106 -0
- data/lib/yard/templates/template.rb +407 -0
- data/lib/yard/templates/template_options.rb +88 -0
- data/lib/yard/verifier.rb +148 -0
- data/lib/yard/version.rb +3 -0
- data/lib/yard.rb +71 -0
- data/po/ja.po +31118 -0
- data/spec/cli/command_parser_spec.rb +43 -0
- data/spec/cli/command_spec.rb +36 -0
- data/spec/cli/config_spec.rb +92 -0
- data/spec/cli/diff_spec.rb +260 -0
- data/spec/cli/display_spec.rb +30 -0
- data/spec/cli/gems_spec.rb +81 -0
- data/spec/cli/graph_spec.rb +17 -0
- data/spec/cli/help_spec.rb +22 -0
- data/spec/cli/i18n_spec.rb +111 -0
- data/spec/cli/list_spec.rb +8 -0
- data/spec/cli/markup_types_spec.rb +22 -0
- data/spec/cli/server_spec.rb +327 -0
- data/spec/cli/stats_spec.rb +90 -0
- data/spec/cli/yardoc_spec.rb +804 -0
- data/spec/cli/yri_spec.rb +99 -0
- data/spec/code_objects/base_spec.rb +438 -0
- data/spec/code_objects/class_object_spec.rb +225 -0
- data/spec/code_objects/code_object_list_spec.rb +33 -0
- data/spec/code_objects/constants_spec.rb +82 -0
- data/spec/code_objects/extra_file_object_spec.rb +147 -0
- data/spec/code_objects/macro_object_spec.rb +148 -0
- data/spec/code_objects/method_object_spec.rb +175 -0
- data/spec/code_objects/module_object_spec.rb +141 -0
- data/spec/code_objects/namespace_object_spec.rb +170 -0
- data/spec/code_objects/proxy_spec.rb +140 -0
- data/spec/code_objects/spec_helper.rb +3 -0
- data/spec/config_spec.rb +176 -0
- data/spec/core_ext/array_spec.rb +14 -0
- data/spec/core_ext/file_spec.rb +68 -0
- data/spec/core_ext/hash_spec.rb +14 -0
- data/spec/core_ext/insertion_spec.rb +37 -0
- data/spec/core_ext/module_spec.rb +15 -0
- data/spec/core_ext/string_spec.rb +42 -0
- data/spec/core_ext/symbol_hash_spec.rb +86 -0
- data/spec/docstring_parser_spec.rb +228 -0
- data/spec/docstring_spec.rb +335 -0
- data/spec/handlers/alias_handler_spec.rb +80 -0
- data/spec/handlers/attribute_handler_spec.rb +94 -0
- data/spec/handlers/base_spec.rb +206 -0
- data/spec/handlers/c/alias_handler_spec.rb +33 -0
- data/spec/handlers/c/attribute_handler_spec.rb +40 -0
- data/spec/handlers/c/class_handler_spec.rb +63 -0
- data/spec/handlers/c/constant_handler_spec.rb +68 -0
- data/spec/handlers/c/init_handler_spec.rb +47 -0
- data/spec/handlers/c/method_handler_spec.rb +229 -0
- data/spec/handlers/c/mixin_handler_spec.rb +27 -0
- data/spec/handlers/c/module_handler_spec.rb +38 -0
- data/spec/handlers/c/override_comment_handler_spec.rb +46 -0
- data/spec/handlers/c/path_handler_spec.rb +35 -0
- data/spec/handlers/c/spec_helper.rb +13 -0
- data/spec/handlers/c/struct_handler_spec.rb +15 -0
- data/spec/handlers/class_condition_handler_spec.rb +67 -0
- data/spec/handlers/class_handler_spec.rb +246 -0
- data/spec/handlers/class_variable_handler_spec.rb +11 -0
- data/spec/handlers/constant_handler_spec.rb +64 -0
- data/spec/handlers/dsl_handler_spec.rb +197 -0
- data/spec/handlers/examples/alias_handler_001.rb.txt +44 -0
- data/spec/handlers/examples/attribute_handler_001.rb.txt +32 -0
- data/spec/handlers/examples/class_condition_handler_001.rb.txt +69 -0
- data/spec/handlers/examples/class_handler_001.rb.txt +120 -0
- data/spec/handlers/examples/class_variable_handler_001.rb.txt +10 -0
- data/spec/handlers/examples/constant_handler_001.rb.txt +25 -0
- data/spec/handlers/examples/dsl_handler_001.rb.txt +125 -0
- data/spec/handlers/examples/exception_handler_001.rb.txt +59 -0
- data/spec/handlers/examples/extend_handler_001.rb.txt +16 -0
- data/spec/handlers/examples/method_condition_handler_001.rb.txt +10 -0
- data/spec/handlers/examples/method_handler_001.rb.txt +126 -0
- data/spec/handlers/examples/mixin_handler_001.rb.txt +37 -0
- data/spec/handlers/examples/module_handler_001.rb.txt +29 -0
- data/spec/handlers/examples/private_constant_handler_001.rb.txt +8 -0
- data/spec/handlers/examples/process_handler_001.rb.txt +11 -0
- data/spec/handlers/examples/visibility_handler_001.rb.txt +32 -0
- data/spec/handlers/examples/yield_handler_001.rb.txt +54 -0
- data/spec/handlers/exception_handler_spec.rb +48 -0
- data/spec/handlers/extend_handler_spec.rb +23 -0
- data/spec/handlers/legacy_base_spec.rb +128 -0
- data/spec/handlers/method_condition_handler_spec.rb +14 -0
- data/spec/handlers/method_handler_spec.rb +184 -0
- data/spec/handlers/mixin_handler_spec.rb +55 -0
- data/spec/handlers/module_function_handler_spec.rb +105 -0
- data/spec/handlers/module_handler_spec.rb +34 -0
- data/spec/handlers/private_constant_handler_spec.rb +24 -0
- data/spec/handlers/processor_spec.rb +34 -0
- data/spec/handlers/ruby/base_spec.rb +94 -0
- data/spec/handlers/ruby/legacy/base_spec.rb +82 -0
- data/spec/handlers/spec_helper.rb +33 -0
- data/spec/handlers/visibility_handler_spec.rb +39 -0
- data/spec/handlers/yield_handler_spec.rb +51 -0
- data/spec/i18n/locale_spec.rb +68 -0
- data/spec/i18n/message_spec.rb +52 -0
- data/spec/i18n/messages_spec.rb +67 -0
- data/spec/i18n/pot_generator_spec.rb +262 -0
- data/spec/i18n/text_spec.rb +180 -0
- data/spec/logging_spec.rb +35 -0
- data/spec/options_spec.rb +171 -0
- data/spec/parser/base_spec.rb +24 -0
- data/spec/parser/c_parser_spec.rb +171 -0
- data/spec/parser/examples/array.c.txt +3887 -0
- data/spec/parser/examples/example1.rb.txt +8 -0
- data/spec/parser/examples/extrafile.c.txt +8 -0
- data/spec/parser/examples/multifile.c.txt +22 -0
- data/spec/parser/examples/override.c.txt +424 -0
- data/spec/parser/examples/parse_in_order_001.rb.txt +2 -0
- data/spec/parser/examples/parse_in_order_002.rb.txt +2 -0
- data/spec/parser/examples/tag_handler_001.rb.txt +8 -0
- data/spec/parser/ruby/ast_node_spec.rb +33 -0
- data/spec/parser/ruby/legacy/statement_list_spec.rb +299 -0
- data/spec/parser/ruby/legacy/token_list_spec.rb +77 -0
- data/spec/parser/ruby/ruby_parser_spec.rb +334 -0
- data/spec/parser/source_parser_spec.rb +717 -0
- data/spec/parser/tag_parsing_spec.rb +18 -0
- data/spec/rake/yardoc_task_spec.rb +101 -0
- data/spec/registry_spec.rb +393 -0
- data/spec/registry_store_spec.rb +315 -0
- data/spec/rubygems/doc_manager_spec.rb +112 -0
- data/spec/serializers/data/serialized_yardoc/checksums +1 -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/Foo.dat +0 -0
- data/spec/serializers/data/serialized_yardoc/objects/root.dat +0 -0
- data/spec/serializers/data/serialized_yardoc/proxy_types +2 -0
- data/spec/serializers/file_system_serializer_spec.rb +124 -0
- data/spec/serializers/spec_helper.rb +2 -0
- data/spec/serializers/yardoc_serializer_spec.rb +46 -0
- data/spec/server/adapter_spec.rb +38 -0
- data/spec/server/commands/base_spec.rb +87 -0
- data/spec/server/commands/library_command_spec.rb +39 -0
- data/spec/server/commands/static_file_command_spec.rb +84 -0
- data/spec/server/doc_server_helper_spec.rb +53 -0
- data/spec/server/doc_server_serializer_spec.rb +45 -0
- data/spec/server/rack_adapter_spec.rb +20 -0
- data/spec/server/router_spec.rb +122 -0
- data/spec/server/spec_helper.rb +17 -0
- data/spec/server/static_caching_spec.rb +39 -0
- data/spec/server/webrick_servlet_spec.rb +20 -0
- data/spec/server_spec.rb +10 -0
- data/spec/spec_helper.rb +128 -0
- data/spec/tags/default_factory_spec.rb +152 -0
- data/spec/tags/default_tag_spec.rb +11 -0
- data/spec/tags/directives_spec.rb +453 -0
- data/spec/tags/library_spec.rb +34 -0
- data/spec/tags/overload_tag_spec.rb +53 -0
- data/spec/tags/ref_tag_list_spec.rb +53 -0
- data/spec/templates/class_spec.rb +44 -0
- data/spec/templates/constant_spec.rb +40 -0
- data/spec/templates/engine_spec.rb +121 -0
- data/spec/templates/examples/class001.html +280 -0
- data/spec/templates/examples/class001.txt +36 -0
- data/spec/templates/examples/class002.html +35 -0
- data/spec/templates/examples/constant001.txt +25 -0
- data/spec/templates/examples/constant002.txt +7 -0
- data/spec/templates/examples/constant003.txt +11 -0
- data/spec/templates/examples/method001.html +130 -0
- data/spec/templates/examples/method001.txt +35 -0
- data/spec/templates/examples/method002.html +86 -0
- data/spec/templates/examples/method002.txt +20 -0
- data/spec/templates/examples/method003.html +159 -0
- data/spec/templates/examples/method003.txt +45 -0
- data/spec/templates/examples/method004.html +44 -0
- data/spec/templates/examples/method004.txt +10 -0
- data/spec/templates/examples/method005.html +99 -0
- data/spec/templates/examples/method005.txt +33 -0
- data/spec/templates/examples/module001.dot +33 -0
- data/spec/templates/examples/module001.html +825 -0
- data/spec/templates/examples/module001.txt +33 -0
- data/spec/templates/examples/module002.html +318 -0
- data/spec/templates/examples/module003.html +185 -0
- data/spec/templates/examples/module004.html +387 -0
- data/spec/templates/examples/tag001.txt +82 -0
- data/spec/templates/helpers/base_helper_spec.rb +175 -0
- data/spec/templates/helpers/html_helper_spec.rb +612 -0
- data/spec/templates/helpers/html_syntax_highlight_helper_spec.rb +48 -0
- data/spec/templates/helpers/markup/rdoc_markup_spec.rb +93 -0
- data/spec/templates/helpers/markup_helper_spec.rb +135 -0
- data/spec/templates/helpers/method_helper_spec.rb +82 -0
- data/spec/templates/helpers/shared_signature_examples.rb +123 -0
- data/spec/templates/helpers/text_helper_spec.rb +44 -0
- data/spec/templates/method_spec.rb +102 -0
- data/spec/templates/module_spec.rb +181 -0
- data/spec/templates/onefile_spec.rb +64 -0
- data/spec/templates/section_spec.rb +146 -0
- data/spec/templates/spec_helper.rb +73 -0
- data/spec/templates/tag_spec.rb +51 -0
- data/spec/templates/template_spec.rb +409 -0
- data/spec/verifier_spec.rb +106 -0
- data/templates/default/class/dot/setup.rb +6 -0
- data/templates/default/class/dot/superklass.erb +3 -0
- data/templates/default/class/html/constructor_details.erb +8 -0
- data/templates/default/class/html/setup.rb +1 -0
- data/templates/default/class/html/subclasses.erb +4 -0
- data/templates/default/class/setup.rb +36 -0
- data/templates/default/class/text/setup.rb +11 -0
- data/templates/default/class/text/subclasses.erb +5 -0
- data/templates/default/constant/text/header.erb +11 -0
- data/templates/default/constant/text/setup.rb +3 -0
- data/templates/default/docstring/html/abstract.erb +4 -0
- data/templates/default/docstring/html/deprecated.erb +1 -0
- data/templates/default/docstring/html/index.erb +5 -0
- data/templates/default/docstring/html/note.erb +6 -0
- data/templates/default/docstring/html/private.erb +4 -0
- data/templates/default/docstring/html/returns_void.erb +1 -0
- data/templates/default/docstring/html/text.erb +1 -0
- data/templates/default/docstring/html/todo.erb +6 -0
- data/templates/default/docstring/setup.rb +51 -0
- data/templates/default/docstring/text/abstract.erb +2 -0
- data/templates/default/docstring/text/deprecated.erb +2 -0
- data/templates/default/docstring/text/index.erb +2 -0
- data/templates/default/docstring/text/note.erb +4 -0
- data/templates/default/docstring/text/private.erb +2 -0
- data/templates/default/docstring/text/returns_void.erb +1 -0
- data/templates/default/docstring/text/text.erb +1 -0
- data/templates/default/docstring/text/todo.erb +4 -0
- data/templates/default/fulldoc/html/css/common.css +1 -0
- data/templates/default/fulldoc/html/css/full_list.css +57 -0
- data/templates/default/fulldoc/html/css/style.css +338 -0
- data/templates/default/fulldoc/html/frames.erb +28 -0
- data/templates/default/fulldoc/html/full_list.erb +40 -0
- data/templates/default/fulldoc/html/full_list_class.erb +2 -0
- data/templates/default/fulldoc/html/full_list_file.erb +5 -0
- data/templates/default/fulldoc/html/full_list_method.erb +8 -0
- data/templates/default/fulldoc/html/js/app.js +214 -0
- data/templates/default/fulldoc/html/js/full_list.js +178 -0
- data/templates/default/fulldoc/html/js/jquery.js +4 -0
- data/templates/default/fulldoc/html/setup.rb +199 -0
- data/templates/default/layout/dot/header.erb +6 -0
- data/templates/default/layout/dot/setup.rb +14 -0
- data/templates/default/layout/html/breadcrumb.erb +13 -0
- data/templates/default/layout/html/files.erb +11 -0
- data/templates/default/layout/html/footer.erb +5 -0
- data/templates/default/layout/html/headers.erb +14 -0
- data/templates/default/layout/html/index.erb +2 -0
- data/templates/default/layout/html/layout.erb +20 -0
- data/templates/default/layout/html/listing.erb +4 -0
- data/templates/default/layout/html/objects.erb +32 -0
- data/templates/default/layout/html/script_setup.erb +5 -0
- data/templates/default/layout/html/search.erb +8 -0
- data/templates/default/layout/html/setup.rb +71 -0
- data/templates/default/method/html/header.erb +16 -0
- data/templates/default/method/setup.rb +3 -0
- data/templates/default/method/text/header.erb +1 -0
- data/templates/default/method_details/html/header.erb +3 -0
- data/templates/default/method_details/html/method_signature.erb +25 -0
- data/templates/default/method_details/html/source.erb +10 -0
- data/templates/default/method_details/setup.rb +10 -0
- data/templates/default/method_details/text/header.erb +10 -0
- data/templates/default/method_details/text/method_signature.erb +12 -0
- data/templates/default/method_details/text/setup.rb +10 -0
- data/templates/default/module/dot/child.erb +1 -0
- data/templates/default/module/dot/dependencies.erb +3 -0
- data/templates/default/module/dot/header.erb +6 -0
- data/templates/default/module/dot/info.erb +14 -0
- data/templates/default/module/dot/setup.rb +14 -0
- data/templates/default/module/html/attribute_details.erb +10 -0
- data/templates/default/module/html/attribute_summary.erb +8 -0
- data/templates/default/module/html/box_info.erb +37 -0
- data/templates/default/module/html/children.erb +8 -0
- data/templates/default/module/html/constant_summary.erb +13 -0
- data/templates/default/module/html/defines.erb +3 -0
- data/templates/default/module/html/header.erb +5 -0
- data/templates/default/module/html/inherited_attributes.erb +14 -0
- data/templates/default/module/html/inherited_constants.erb +8 -0
- data/templates/default/module/html/inherited_methods.erb +19 -0
- data/templates/default/module/html/item_summary.erb +40 -0
- data/templates/default/module/html/method_details_list.erb +9 -0
- data/templates/default/module/html/method_summary.erb +14 -0
- data/templates/default/module/html/methodmissing.erb +12 -0
- data/templates/default/module/html/pre_docstring.erb +1 -0
- data/templates/default/module/setup.rb +164 -0
- data/templates/default/module/text/children.erb +10 -0
- data/templates/default/module/text/class_meths_list.erb +8 -0
- data/templates/default/module/text/extends.erb +8 -0
- data/templates/default/module/text/header.erb +7 -0
- data/templates/default/module/text/includes.erb +8 -0
- data/templates/default/module/text/instance_meths_list.erb +8 -0
- data/templates/default/module/text/setup.rb +12 -0
- data/templates/default/onefile/html/files.erb +5 -0
- data/templates/default/onefile/html/headers.erb +6 -0
- data/templates/default/onefile/html/layout.erb +17 -0
- data/templates/default/onefile/html/readme.erb +3 -0
- data/templates/default/onefile/html/setup.rb +61 -0
- data/templates/default/root/dot/child.erb +3 -0
- data/templates/default/root/dot/setup.rb +5 -0
- data/templates/default/root/html/setup.rb +1 -0
- data/templates/default/tags/html/example.erb +11 -0
- data/templates/default/tags/html/index.erb +3 -0
- data/templates/default/tags/html/option.erb +24 -0
- data/templates/default/tags/html/overload.erb +14 -0
- data/templates/default/tags/html/see.erb +8 -0
- data/templates/default/tags/html/tag.erb +20 -0
- data/templates/default/tags/setup.rb +55 -0
- data/templates/default/tags/text/example.erb +12 -0
- data/templates/default/tags/text/index.erb +1 -0
- data/templates/default/tags/text/option.erb +20 -0
- data/templates/default/tags/text/overload.erb +19 -0
- data/templates/default/tags/text/see.erb +11 -0
- data/templates/default/tags/text/tag.erb +13 -0
- 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 +108 -0
- data/templates/guide/fulldoc/html/js/app.js +33 -0
- data/templates/guide/fulldoc/html/setup.rb +73 -0
- data/templates/guide/layout/html/layout.erb +81 -0
- data/templates/guide/layout/html/setup.rb +28 -0
- data/templates/guide/method/html/header.erb +18 -0
- data/templates/guide/method/html/setup.rb +21 -0
- data/templates/guide/module/html/header.erb +7 -0
- data/templates/guide/module/html/method_list.erb +5 -0
- data/templates/guide/module/html/setup.rb +26 -0
- data/templates/guide/onefile/html/files.erb +4 -0
- data/templates/guide/onefile/html/setup.rb +5 -0
- data/templates/guide/onefile/html/toc.erb +3 -0
- data/templates/guide/tags/html/setup.rb +8 -0
- metadata +689 -0
|
@@ -0,0 +1,335 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper'
|
|
2
|
+
|
|
3
|
+
describe YARD::Docstring do
|
|
4
|
+
before { YARD::Registry.clear }
|
|
5
|
+
|
|
6
|
+
describe '#initialize' do
|
|
7
|
+
it "should handle docstrings with empty newlines" do
|
|
8
|
+
Docstring.new("\n\n").should == ""
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
describe '#+' do
|
|
13
|
+
it "should add another Docstring" do
|
|
14
|
+
d = Docstring.new("FOO") + Docstring.new("BAR")
|
|
15
|
+
d.should == "FOO\nBAR"
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
it "should copy over tags" do
|
|
19
|
+
d1 = Docstring.new("FOO\n@api private\n")
|
|
20
|
+
d2 = Docstring.new("BAR\n@param foo descr")
|
|
21
|
+
d = (d1 + d2)
|
|
22
|
+
d.should have_tag(:api)
|
|
23
|
+
d.should have_tag(:param)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
it "should add a String" do
|
|
27
|
+
d = Docstring.new("FOO") + "BAR"
|
|
28
|
+
d.should == "FOOBAR"
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
describe '#line' do
|
|
33
|
+
it "should return nil if #line_range is not set" do
|
|
34
|
+
Docstring.new('foo').line.should be_nil
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
it "should return line_range.first if #line_range is set" do
|
|
38
|
+
doc = Docstring.new('foo')
|
|
39
|
+
doc.line_range = (1..10)
|
|
40
|
+
doc.line.should == doc.line_range.first
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
describe '#summary' do
|
|
45
|
+
it "should handle empty docstrings" do
|
|
46
|
+
o1 = Docstring.new
|
|
47
|
+
o1.summary.should == ""
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
it "should handle multiple calls" do
|
|
51
|
+
o1 = Docstring.new("Hello. world")
|
|
52
|
+
5.times { o1.summary.should == "Hello." }
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
it "should strip HTML before summarizing" do
|
|
56
|
+
doc = Docstring.new("<p>Hello <b>world</b></p>.")
|
|
57
|
+
doc.summary.should == 'Hello world.'
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
it "should strip newlines in first paragraph before summarizing" do
|
|
61
|
+
doc = Docstring.new("Foo\n<code>==</code> bar.")
|
|
62
|
+
doc.summary.should == 'Foo == bar.'
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
it "should return the first sentence" do
|
|
66
|
+
o = Docstring.new("DOCSTRING. Another sentence")
|
|
67
|
+
o.summary.should == "DOCSTRING."
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
it "should return the first paragraph" do
|
|
71
|
+
o = Docstring.new("DOCSTRING, and other stuff\n\nAnother sentence.")
|
|
72
|
+
o.summary.should == "DOCSTRING, and other stuff."
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
it "should return proper summary when docstring is changed" do
|
|
76
|
+
o = Docstring.new "DOCSTRING, and other stuff\n\nAnother sentence."
|
|
77
|
+
o.summary.should == "DOCSTRING, and other stuff."
|
|
78
|
+
o = Docstring.new "DOCSTRING."
|
|
79
|
+
o.summary.should == "DOCSTRING."
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
it "should not double the ending period" do
|
|
83
|
+
o = Docstring.new("Returns a list of tags specified by +name+ or all tags if +name+ is not specified.\n\nTest")
|
|
84
|
+
o.summary.should == "Returns a list of tags specified by +name+ or all tags if +name+ is not specified."
|
|
85
|
+
|
|
86
|
+
doc = Docstring.new(<<-eof)
|
|
87
|
+
|
|
88
|
+
Returns a list of tags specified by +name+ or all tags if +name+ is not specified.
|
|
89
|
+
|
|
90
|
+
@param name the tag name to return data for, or nil for all tags
|
|
91
|
+
@return [Array<Tags::Tag>] the list of tags by the specified tag name
|
|
92
|
+
eof
|
|
93
|
+
doc.summary.should == "Returns a list of tags specified by +name+ or all tags if +name+ is not specified."
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
it "should not attach period if entire summary is include" do
|
|
97
|
+
YARD.parse_string "# docstring\ndef foo; end"
|
|
98
|
+
Docstring.new("{include:#foo}").summary.should == '{include:#foo}'
|
|
99
|
+
Registry.clear
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
it "should handle references embedded in summary" do
|
|
103
|
+
Docstring.new("Aliasing {Test.test}. Done.").summary.should == "Aliasing {Test.test}."
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
it "should only end first sentence when outside parentheses" do
|
|
107
|
+
Docstring.new("Hello (the best.) world. Foo bar.").summary.should == "Hello (the best.) world."
|
|
108
|
+
Docstring.new("A[b.]c.").summary.should == "A[b.]c."
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
it "should only see '.' as period if whitespace (or eof) follows" do
|
|
112
|
+
Docstring.new("hello 1.5 times.").summary.should == "hello 1.5 times."
|
|
113
|
+
Docstring.new("hello... me").summary.should == "hello..."
|
|
114
|
+
Docstring.new("hello.").summary.should == "hello."
|
|
115
|
+
end
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
describe '#ref_tags' do
|
|
119
|
+
it "should parse reference tag into ref_tags" do
|
|
120
|
+
doc = Docstring.new("@return (see Foo#bar)")
|
|
121
|
+
doc.ref_tags.size.should == 1
|
|
122
|
+
doc.ref_tags.first.owner.should == P("Foo#bar")
|
|
123
|
+
doc.ref_tags.first.tag_name.should == "return"
|
|
124
|
+
doc.ref_tags.first.name.should be_nil
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
it "should parse named reference tag into ref_tags" do
|
|
128
|
+
doc = Docstring.new("@param blah \n (see Foo#bar )")
|
|
129
|
+
doc.ref_tags.size.should == 1
|
|
130
|
+
doc.ref_tags.first.owner.should == P("Foo#bar")
|
|
131
|
+
doc.ref_tags.first.tag_name.should == "param"
|
|
132
|
+
doc.ref_tags.first.name.should == "blah"
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
it "should fail to parse named reference tag into ref_tags" do
|
|
136
|
+
doc = Docstring.new("@param blah THIS_BREAKS_REFTAG (see Foo#bar)")
|
|
137
|
+
doc.ref_tags.size.should == 0
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
it "should return all valid reference tags along with #tags" do
|
|
141
|
+
o = CodeObjects::MethodObject.new(:root, 'Foo#bar')
|
|
142
|
+
o.docstring.add_tag Tags::Tag.new('return', 'testing')
|
|
143
|
+
doc = Docstring.new("@return (see Foo#bar)")
|
|
144
|
+
tags = doc.tags
|
|
145
|
+
tags.size.should == 1
|
|
146
|
+
tags.first.text.should == 'testing'
|
|
147
|
+
tags.first.should be_kind_of(Tags::RefTag)
|
|
148
|
+
tags.first.owner.should == o
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
it "should return all valid named reference tags along with #tags(name)" do
|
|
152
|
+
o = CodeObjects::MethodObject.new(:root, 'Foo#bar')
|
|
153
|
+
o.docstring.add_tag Tags::Tag.new('param', 'testing', nil, '*args')
|
|
154
|
+
o.docstring.add_tag Tags::Tag.new('param', 'NOTtesting', nil, 'notargs')
|
|
155
|
+
doc = Docstring.new("@param *args (see Foo#bar)")
|
|
156
|
+
tags = doc.tags('param')
|
|
157
|
+
tags.size.should == 1
|
|
158
|
+
tags.first.text.should == 'testing'
|
|
159
|
+
tags.first.should be_kind_of(Tags::RefTag)
|
|
160
|
+
tags.first.owner.should == o
|
|
161
|
+
end
|
|
162
|
+
|
|
163
|
+
it "should ignore invalid reference tags" do
|
|
164
|
+
doc = Docstring.new("@param *args (see INVALID::TAG#tag)")
|
|
165
|
+
tags = doc.tags('param')
|
|
166
|
+
tags.size.should == 0
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
it "resolves references to methods in the same class with #methname" do
|
|
170
|
+
klass = CodeObjects::ClassObject.new(:root, "Foo")
|
|
171
|
+
o = CodeObjects::MethodObject.new(klass, "bar")
|
|
172
|
+
ref = CodeObjects::MethodObject.new(klass, "baz")
|
|
173
|
+
o.docstring.add_tag Tags::Tag.new('param', 'testing', nil, 'arg1')
|
|
174
|
+
ref.docstring = "@param (see #bar)"
|
|
175
|
+
|
|
176
|
+
tags = ref.docstring.tags("param")
|
|
177
|
+
tags.size.should == 1
|
|
178
|
+
tags.first.text.should == "testing"
|
|
179
|
+
tags.first.should be_kind_of(Tags::RefTag)
|
|
180
|
+
tags.first.owner.should == o
|
|
181
|
+
end
|
|
182
|
+
end
|
|
183
|
+
|
|
184
|
+
describe '#empty?/#blank?' do
|
|
185
|
+
before(:all) do
|
|
186
|
+
Tags::Library.define_tag "Invisible", :invisible_tag
|
|
187
|
+
end
|
|
188
|
+
|
|
189
|
+
it "should be blank and empty if it has no content and no tags" do
|
|
190
|
+
Docstring.new.should be_blank
|
|
191
|
+
Docstring.new.should be_empty
|
|
192
|
+
end
|
|
193
|
+
|
|
194
|
+
it "shouldn't be empty or blank if it has content" do
|
|
195
|
+
d = Docstring.new("foo bar")
|
|
196
|
+
d.should_not be_empty
|
|
197
|
+
d.should_not be_blank
|
|
198
|
+
end
|
|
199
|
+
|
|
200
|
+
it "should be empty but not blank if it has tags" do
|
|
201
|
+
d = Docstring.new("@param foo")
|
|
202
|
+
d.should be_empty
|
|
203
|
+
d.should_not be_blank
|
|
204
|
+
end
|
|
205
|
+
|
|
206
|
+
it "should be empty but not blank if it has ref tags" do
|
|
207
|
+
o = CodeObjects::MethodObject.new(:root, 'Foo#bar')
|
|
208
|
+
o.docstring.add_tag Tags::Tag.new('return', 'testing')
|
|
209
|
+
d = Docstring.new("@return (see Foo#bar)")
|
|
210
|
+
d.should be_empty
|
|
211
|
+
d.should_not be_blank
|
|
212
|
+
end
|
|
213
|
+
|
|
214
|
+
it "should be blank if it has no visible tags" do
|
|
215
|
+
d = Docstring.new("@invisible_tag value")
|
|
216
|
+
d.should be_blank
|
|
217
|
+
end
|
|
218
|
+
|
|
219
|
+
it "should not be blank if it has invisible tags and only_visible_tags = false" do
|
|
220
|
+
d = Docstring.new("@invisible_tag value")
|
|
221
|
+
d.add_tag Tags::Tag.new('invisible_tag', nil, nil)
|
|
222
|
+
d.blank?(false).should == false
|
|
223
|
+
end
|
|
224
|
+
end
|
|
225
|
+
|
|
226
|
+
describe '#delete_tags' do
|
|
227
|
+
it "should delete tags by a given tag name" do
|
|
228
|
+
doc = Docstring.new("@param name x\n@param name2 y\n@return foo")
|
|
229
|
+
doc.delete_tags(:param)
|
|
230
|
+
doc.tags.size.should == 1
|
|
231
|
+
end
|
|
232
|
+
end
|
|
233
|
+
|
|
234
|
+
describe '#delete_tag_if' do
|
|
235
|
+
it "should delete tags for a given block" do
|
|
236
|
+
doc = Docstring.new("@param name x\n@param name2 y\n@return foo")
|
|
237
|
+
doc.delete_tag_if {|t| t.name == 'name2' }
|
|
238
|
+
doc.tags.size.should == 2
|
|
239
|
+
end
|
|
240
|
+
end
|
|
241
|
+
|
|
242
|
+
describe '#to_raw' do
|
|
243
|
+
it "should return a clean representation of tags" do
|
|
244
|
+
doc = Docstring.new("Hello world\n@return [String, X] foobar\n@param name<Array> the name\nBYE!")
|
|
245
|
+
doc.to_raw.should == "Hello world\nBYE!\n@param [Array] name\n the name\n@return [String, X] foobar"
|
|
246
|
+
end
|
|
247
|
+
|
|
248
|
+
it "should handle tags with newlines and indentation" do
|
|
249
|
+
doc = Docstring.new("@example TITLE\n the \n example\n @foo\n@param [X] name\n the name")
|
|
250
|
+
doc.to_raw.should == "@example TITLE\n the \n example\n @foo\n@param [X] name\n the name"
|
|
251
|
+
end
|
|
252
|
+
|
|
253
|
+
it "should handle deleted tags" do
|
|
254
|
+
doc = Docstring.new("@example TITLE\n the \n example\n @foo\n@param [X] name\n the name")
|
|
255
|
+
doc.delete_tags(:param)
|
|
256
|
+
doc.to_raw.should == "@example TITLE\n the \n example\n @foo"
|
|
257
|
+
end
|
|
258
|
+
|
|
259
|
+
it "should handle added tags" do
|
|
260
|
+
doc = Docstring.new("@example TITLE\n the \n example\n @foo")
|
|
261
|
+
doc.add_tag(Tags::Tag.new('foo', 'foo'))
|
|
262
|
+
doc.to_raw.should == "@example TITLE\n the \n example\n @foo\n@foo foo"
|
|
263
|
+
end
|
|
264
|
+
|
|
265
|
+
it "should be equal to .all if not modified" do
|
|
266
|
+
doc = Docstring.new("123\n@param")
|
|
267
|
+
doc.to_raw.should == doc.all
|
|
268
|
+
end
|
|
269
|
+
|
|
270
|
+
# @bug gh-563
|
|
271
|
+
it "should handle full @option tags" do
|
|
272
|
+
doc = Docstring.new("@option foo [String] bar (nil) baz")
|
|
273
|
+
doc.to_raw.should == "@option foo [String] bar (nil) baz"
|
|
274
|
+
end
|
|
275
|
+
|
|
276
|
+
# @bug gh-563
|
|
277
|
+
it "should handle simple @option tags" do
|
|
278
|
+
doc = Docstring.new("@option foo :key bar")
|
|
279
|
+
doc.to_raw.should == "@option foo :key bar"
|
|
280
|
+
end
|
|
281
|
+
end
|
|
282
|
+
|
|
283
|
+
describe '#dup' do
|
|
284
|
+
it "should duplicate docstring text" do
|
|
285
|
+
doc = Docstring.new("foo")
|
|
286
|
+
doc.dup.should == doc
|
|
287
|
+
doc.dup.all.should == doc
|
|
288
|
+
end
|
|
289
|
+
|
|
290
|
+
it "should duplicate tags to new list" do
|
|
291
|
+
doc = Docstring.new("@param x\n@return y")
|
|
292
|
+
doc2 = doc.dup
|
|
293
|
+
doc2.delete_tags(:param)
|
|
294
|
+
doc.tags.size.should == 2
|
|
295
|
+
doc2.tags.size.should == 1
|
|
296
|
+
end
|
|
297
|
+
|
|
298
|
+
it "should preserve summary" do
|
|
299
|
+
doc = Docstring.new("foo. bar")
|
|
300
|
+
doc.dup.summary.should == doc.summary
|
|
301
|
+
end
|
|
302
|
+
|
|
303
|
+
it "should preserve hash_flag" do
|
|
304
|
+
doc = Docstring.new
|
|
305
|
+
doc.hash_flag = 'foo'
|
|
306
|
+
doc.dup.hash_flag.should == doc.hash_flag
|
|
307
|
+
end
|
|
308
|
+
|
|
309
|
+
it "should preserve line_range" do
|
|
310
|
+
doc = Docstring.new
|
|
311
|
+
doc.line_range = (1..2)
|
|
312
|
+
doc.dup.line_range.should == doc.line_range
|
|
313
|
+
end
|
|
314
|
+
end
|
|
315
|
+
|
|
316
|
+
describe 'reference docstrings' do
|
|
317
|
+
it 'allows for construction of docstring with ref object' do
|
|
318
|
+
YARD.parse_string <<-eof
|
|
319
|
+
class A
|
|
320
|
+
# Docstring
|
|
321
|
+
# @return [Boolean]
|
|
322
|
+
def a; end
|
|
323
|
+
# (see #a)
|
|
324
|
+
def b; end
|
|
325
|
+
end
|
|
326
|
+
eof
|
|
327
|
+
|
|
328
|
+
object = YARD::Registry.at('A#b')
|
|
329
|
+
object.docstring.should == 'Docstring'
|
|
330
|
+
object.tags.map {|x| x.tag_name }.should == ['return']
|
|
331
|
+
|
|
332
|
+
YARD::Registry.clear
|
|
333
|
+
end
|
|
334
|
+
end
|
|
335
|
+
end
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper'
|
|
2
|
+
|
|
3
|
+
describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}AliasHandler" do
|
|
4
|
+
before(:all) { parse_file :alias_handler_001, __FILE__ }
|
|
5
|
+
|
|
6
|
+
it "should throw alias into namespace object list" do
|
|
7
|
+
P(:A).aliases[P("A#b")].should == :a
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
['c', 'd?', '[]', '[]=', '-@', '%', '*'].each do |a|
|
|
11
|
+
it "should handle the Ruby 'alias' keyword syntax for method ##{a}" do
|
|
12
|
+
P('A#' + a).should be_instance_of(CodeObjects::MethodObject)
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
it "should handle keywords as the alias name" do
|
|
17
|
+
P('A#for').should be_instance_of(CodeObjects::MethodObject)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
it "should allow ConstantNames to be specified as aliases" do
|
|
21
|
+
P('A#ConstantName').should be_instance_of(CodeObjects::MethodObject)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
it "should create a new method object for the alias" do
|
|
25
|
+
P("A#b").should be_instance_of(CodeObjects::MethodObject)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
it "should pull the method into the current class if it's from another one" do
|
|
29
|
+
P(:B).aliases[P("B#q")].should == :x
|
|
30
|
+
P(:B).aliases[P("B#r?")].should == :x
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
it "should gracefully fail to pull a method in if the original method cannot be found" do
|
|
34
|
+
P(:B).aliases[P("B#s")].should == :to_s
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
it "should allow complex Ruby expressions after the alias parameters" do
|
|
38
|
+
P(:B).aliases[P("B#t")].should == :inspect
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
it "should show up in #is_alias? for method" do
|
|
42
|
+
P("B#t").is_alias?.should == true
|
|
43
|
+
P('B#r?').is_alias?.should == true
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
it "should allow operators and keywords to be specified as symbols" do
|
|
47
|
+
P('B#<<').should be_instance_of(CodeObjects::MethodObject)
|
|
48
|
+
P('B#for').should be_instance_of(CodeObjects::MethodObject)
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
it "should handle keywords in alias names" do
|
|
52
|
+
P('B#do').is_alias?.should == true
|
|
53
|
+
P('B#x2').is_alias?.should == true
|
|
54
|
+
P(:B).aliases[P('B#do')].should == :x
|
|
55
|
+
P(:B).aliases[P('B#x2')].should == :do
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
it "should handle quoted symbols" do
|
|
59
|
+
foo = Registry.at('A#foo')
|
|
60
|
+
foo.should_not be_nil
|
|
61
|
+
foo.should be_is_alias
|
|
62
|
+
Registry.at('A').aliases[foo].should == :a
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
it "should prepend aliases object's docstring to comments" do
|
|
66
|
+
Registry.at('D#a').tag(:return).types.should == ['Numeric']
|
|
67
|
+
Registry.at('D#b').tag(:return).types.should == ['String']
|
|
68
|
+
Registry.at('D#b').docstring.should == "Foo bar"
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
it "should raise an UndocumentableError if only one parameter is passed" do
|
|
72
|
+
undoc_error "alias_method :q"
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
it "should raise an UndocumentableError if the parameter is not a Symbol or String" do
|
|
76
|
+
undoc_error "alias_method CONST, Something"
|
|
77
|
+
undoc_error "alias_method variable, ClassName"
|
|
78
|
+
undoc_error "alias_method variable, other_variable"
|
|
79
|
+
end
|
|
80
|
+
end
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper'
|
|
2
|
+
|
|
3
|
+
describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}AttributeHandler" do
|
|
4
|
+
before(:all) { parse_file :attribute_handler_001, __FILE__ }
|
|
5
|
+
|
|
6
|
+
def read_write(namespace, name, read, write, scope = :instance)
|
|
7
|
+
rname, wname = namespace.to_s+"#"+name.to_s, namespace.to_s+"#"+name.to_s+"="
|
|
8
|
+
if read
|
|
9
|
+
Registry.at(rname).should be_instance_of(CodeObjects::MethodObject)
|
|
10
|
+
else
|
|
11
|
+
Registry.at(rname).should == nil
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
if write
|
|
15
|
+
Registry.at(wname).should be_kind_of(CodeObjects::MethodObject)
|
|
16
|
+
else
|
|
17
|
+
Registry.at(wname).should == nil
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
attrs = Registry.at(namespace).attributes[scope][name]
|
|
21
|
+
attrs[:read].should == (read ? Registry.at(rname) : nil)
|
|
22
|
+
attrs[:write].should == (write ? Registry.at(wname) : nil)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
it "should parse attributes inside modules too" do
|
|
26
|
+
Registry.at("A#x=").should_not == nil
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
it "should parse 'attr'" do
|
|
30
|
+
read_write(:B, :a, true, true)
|
|
31
|
+
read_write(:B, :a2, true, false)
|
|
32
|
+
read_write(:B, "a3", true, false)
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
it "should parse 'attr_reader'" do
|
|
36
|
+
read_write(:B, :b, true, false)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
it "should parse 'attr_writer'" do
|
|
40
|
+
read_write(:B, :e, false, true)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
it "should parse 'attr_accessor'" do
|
|
44
|
+
read_write(:B, :f, true, true)
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
it "should parse a list of attributes" do
|
|
48
|
+
read_write(:B, :b, true, false)
|
|
49
|
+
read_write(:B, :c, true, false)
|
|
50
|
+
read_write(:B, :d, true, false)
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
it "should have a default docstring if one is not supplied" do
|
|
54
|
+
Registry.at("B#f=").docstring.should_not be_empty
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
it "should set the correct docstring if one is supplied" do
|
|
58
|
+
Registry.at("B#b").docstring.should == "Docstring"
|
|
59
|
+
Registry.at("B#c").docstring.should == "Docstring"
|
|
60
|
+
Registry.at("B#d").docstring.should == "Docstring"
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
it "should be able to differentiate between class and instance attributes" do
|
|
64
|
+
P('B').class_attributes[:z][:read].scope.should == :class
|
|
65
|
+
P('B').instance_attributes[:z][:read].scope.should == :instance
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
it "should respond true in method's #is_attribute?" do
|
|
69
|
+
P('B#a').is_attribute?.should == true
|
|
70
|
+
P('B#a=').is_attribute?.should == true
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
it "should not return true for #is_explicit? in created methods" do
|
|
74
|
+
Registry.at(:B).meths.each do |meth|
|
|
75
|
+
meth.is_explicit?.should == false
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
it "should handle attr call with no arguments" do
|
|
80
|
+
lambda { StubbedSourceParser.parse_string "attr" }.should_not raise_error
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
it "should add existing reader method as part of attr_writer combo" do
|
|
84
|
+
Registry.at('C#foo=').attr_info[:read].should == Registry.at('C#foo')
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
it "should add existing writer method as part of attr_reader combo" do
|
|
88
|
+
Registry.at('C#foo').attr_info[:write].should == Registry.at('C#foo=')
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
it "should maintain visibility for attr_reader" do
|
|
92
|
+
Registry.at('D#parser').visibility.should == :protected
|
|
93
|
+
end
|
|
94
|
+
end
|