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,126 @@
|
|
|
1
|
+
class Foo
|
|
2
|
+
class << self
|
|
3
|
+
def inherited; end
|
|
4
|
+
def included; end
|
|
5
|
+
# docstring
|
|
6
|
+
def extended; end
|
|
7
|
+
def method_added; end
|
|
8
|
+
def method_removed; end
|
|
9
|
+
def method_undefined; end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
# A docstring but no return type
|
|
13
|
+
def initialize; end
|
|
14
|
+
|
|
15
|
+
def ==(other)
|
|
16
|
+
'hello'
|
|
17
|
+
end
|
|
18
|
+
def /(other) 'hi' end
|
|
19
|
+
|
|
20
|
+
attr_reader :method1
|
|
21
|
+
|
|
22
|
+
def method1
|
|
23
|
+
def dynamic; end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def self.method2; end
|
|
27
|
+
|
|
28
|
+
# Docstring
|
|
29
|
+
def String :: hello; "" end
|
|
30
|
+
|
|
31
|
+
def self.new() end
|
|
32
|
+
|
|
33
|
+
def [](key = 'default') puts key end
|
|
34
|
+
def []=(key, value) end
|
|
35
|
+
def
|
|
36
|
+
allowed?
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def ` param; end
|
|
40
|
+
def /(x = File.new('x', 'w'), y = 2) end
|
|
41
|
+
def |; end; def =~ ()
|
|
42
|
+
def -@; end;
|
|
43
|
+
end
|
|
44
|
+
def *(o) def +@; end
|
|
45
|
+
def ~@
|
|
46
|
+
end end
|
|
47
|
+
def &(o) end
|
|
48
|
+
def %(o) end
|
|
49
|
+
def ^(o) end
|
|
50
|
+
|
|
51
|
+
def optsmeth(x, opts = {}) end
|
|
52
|
+
def blockmeth(x, &block) end
|
|
53
|
+
|
|
54
|
+
# @param a [Fixnum]
|
|
55
|
+
# @overload def bar(a, b = 1)
|
|
56
|
+
# @param a [String]
|
|
57
|
+
# @return [String]
|
|
58
|
+
# @overload def baz(b, c)
|
|
59
|
+
# @return [Fixnum]
|
|
60
|
+
# @overload bang(d, e)
|
|
61
|
+
def foo(*args); end
|
|
62
|
+
|
|
63
|
+
# No return tag
|
|
64
|
+
def boolean?; end
|
|
65
|
+
|
|
66
|
+
# @return without type
|
|
67
|
+
def boolean2?; end
|
|
68
|
+
|
|
69
|
+
# @return [NotBoolean, nil]
|
|
70
|
+
def boolean3?; end
|
|
71
|
+
|
|
72
|
+
# @overload rainy?
|
|
73
|
+
# @return whether today is the rainy day.
|
|
74
|
+
def rainy?; end
|
|
75
|
+
|
|
76
|
+
attr_writer :attr_name
|
|
77
|
+
def attr_name; end
|
|
78
|
+
|
|
79
|
+
attr_reader :attr_name2
|
|
80
|
+
def attr_name2=; end
|
|
81
|
+
|
|
82
|
+
# @option opts :bar [String] It's bar!
|
|
83
|
+
def auto_opts(opts)
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
CONST = Foo
|
|
88
|
+
def CONST.meth_on_const; end
|
|
89
|
+
CONST2 = CONST
|
|
90
|
+
def CONST2.meth2_on_const; end
|
|
91
|
+
|
|
92
|
+
class D
|
|
93
|
+
alias b a
|
|
94
|
+
|
|
95
|
+
# foo bar
|
|
96
|
+
def a; end
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
class E
|
|
100
|
+
# @!macro prop
|
|
101
|
+
# @!method $1(value)
|
|
102
|
+
# $3
|
|
103
|
+
# @return [$2]
|
|
104
|
+
def self.property(name, ret_type, docstring)
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
property :foo, String, "create a foo"
|
|
108
|
+
|
|
109
|
+
# @!macro xyz
|
|
110
|
+
# @!method $1
|
|
111
|
+
def xyz; end
|
|
112
|
+
|
|
113
|
+
xyz :a
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
module F
|
|
117
|
+
class A
|
|
118
|
+
def foo; end
|
|
119
|
+
|
|
120
|
+
def end
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
# PASS
|
|
124
|
+
def bar; end
|
|
125
|
+
end
|
|
126
|
+
end
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
module A; end
|
|
2
|
+
module B;
|
|
3
|
+
module C; end
|
|
4
|
+
module D; end
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
QQQ = B::D
|
|
8
|
+
|
|
9
|
+
class X
|
|
10
|
+
include A
|
|
11
|
+
include B, B::C, NOTEXIST
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
module Y
|
|
15
|
+
include B::C, B if X == 2
|
|
16
|
+
include A
|
|
17
|
+
include QQQ
|
|
18
|
+
|
|
19
|
+
class << self; include A; end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
module Z
|
|
23
|
+
include A, B
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
module ABC
|
|
27
|
+
module FOO; end
|
|
28
|
+
module DEF
|
|
29
|
+
module FOO
|
|
30
|
+
include ABC::FOO
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
module BAR
|
|
34
|
+
include ABC::BAR
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
module ModName
|
|
2
|
+
private
|
|
3
|
+
|
|
4
|
+
# Docstring
|
|
5
|
+
module OtherModName
|
|
6
|
+
end
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
module StressTest; end
|
|
10
|
+
|
|
11
|
+
module A; end
|
|
12
|
+
|
|
13
|
+
module Q
|
|
14
|
+
module A::B
|
|
15
|
+
end
|
|
16
|
+
module FOO; end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
module ::Kernel
|
|
20
|
+
def x; end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
module A; end
|
|
24
|
+
module B; end
|
|
25
|
+
module C; end
|
|
26
|
+
class D; include A; include B; include C; end
|
|
27
|
+
|
|
28
|
+
Z = Q
|
|
29
|
+
module Z::FOO::A; end
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
class Testing
|
|
2
|
+
def pub; end
|
|
3
|
+
|
|
4
|
+
private
|
|
5
|
+
|
|
6
|
+
def priv; end
|
|
7
|
+
def notpriv; end
|
|
8
|
+
def notpriv2; end
|
|
9
|
+
def notpriv?; end
|
|
10
|
+
|
|
11
|
+
protected
|
|
12
|
+
|
|
13
|
+
def prot; end
|
|
14
|
+
|
|
15
|
+
public
|
|
16
|
+
|
|
17
|
+
def pub2; end
|
|
18
|
+
|
|
19
|
+
protected :notpriv, 'notpriv2', :notpriv?
|
|
20
|
+
|
|
21
|
+
private name
|
|
22
|
+
private *argument
|
|
23
|
+
private *(method_call)
|
|
24
|
+
|
|
25
|
+
def Foo; end
|
|
26
|
+
private :Foo
|
|
27
|
+
|
|
28
|
+
private
|
|
29
|
+
|
|
30
|
+
class Bar; end
|
|
31
|
+
module Baz; end
|
|
32
|
+
end
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
class Testing
|
|
2
|
+
# Ignore yields outside methods
|
|
3
|
+
yield x, y, z
|
|
4
|
+
|
|
5
|
+
# Should document this
|
|
6
|
+
def mymethod
|
|
7
|
+
yield
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
# Has yield and yieldparam documentation
|
|
11
|
+
# @yield [a, b] Blah
|
|
12
|
+
# @yieldparam a Blah
|
|
13
|
+
# @yieldparam b Blah
|
|
14
|
+
def mymethod2
|
|
15
|
+
yield(b, a) # Yield something else
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# Has yield documentation only
|
|
19
|
+
# @yield [a, b]
|
|
20
|
+
def mymethod3
|
|
21
|
+
yield self # Should not be changed
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# Has yieldparam documentation only
|
|
25
|
+
# @yieldparam _self BLAH
|
|
26
|
+
def mymethod4
|
|
27
|
+
yield self
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# Some weird possibilities..
|
|
31
|
+
# Document it all.
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def mymethod5
|
|
35
|
+
yield :a, b, self, File.read('file', 'w'), CONSTANT if x == 2
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def mymethod6
|
|
39
|
+
yield(b, a)
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def mymethod7
|
|
43
|
+
yield a
|
|
44
|
+
yield b
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def mymethod8
|
|
48
|
+
yield self
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def mymethod9
|
|
52
|
+
yield super
|
|
53
|
+
end
|
|
54
|
+
end
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper'
|
|
2
|
+
|
|
3
|
+
describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}ExceptionHandler" do
|
|
4
|
+
before(:all) { parse_file :exception_handler_001, __FILE__ }
|
|
5
|
+
|
|
6
|
+
it "should not document an exception outside of a method" do
|
|
7
|
+
P('Testing').has_tag?(:raise).should == false
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
it "should document a valid raise" do
|
|
11
|
+
P('Testing#mymethod').tag(:raise).types.should == ['ArgumentError']
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
it "should only document non-dynamic raises" do
|
|
15
|
+
P('Testing#mymethod2').tag(:raise).should be_nil
|
|
16
|
+
P('Testing#mymethod6').tag(:raise).should be_nil
|
|
17
|
+
P('Testing#mymethod7').tag(:raise).should be_nil
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
it "should treat ConstantName.new as a valid exception class" do
|
|
21
|
+
P('Testing#mymethod8').tag(:raise).types.should == ['ExceptionClass']
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
it "should not document a method with an existing @raise tag" do
|
|
25
|
+
P('Testing#mymethod3').tag(:raise).types.should == ['A']
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
it "should only document the first raise message of a method (limitation of exception handler)" do
|
|
29
|
+
P('Testing#mymethod4').tag(:raise).types.should == ['A']
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
it "should handle complex class names" do
|
|
33
|
+
P('Testing#mymethod5').tag(:raise).types.should == ['YARD::Parser::UndocumentableError']
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
it "should ignore any raise calls on a receiver" do
|
|
37
|
+
P('Testing#mymethod9').tag(:raise).should be_nil
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
it "should handle raise expressions that are method calls" do
|
|
41
|
+
P('Testing#mymethod10').tag(:raise).should be_nil
|
|
42
|
+
P('Testing#mymethod11').tag(:raise).should be_nil
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
it "should ignore empty raise call" do
|
|
46
|
+
P('Testing#mymethod12').tag(:raise).should be_nil
|
|
47
|
+
end
|
|
48
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper'
|
|
2
|
+
|
|
3
|
+
describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}ExtendHandler" do
|
|
4
|
+
before(:all) { parse_file :extend_handler_001, __FILE__ }
|
|
5
|
+
|
|
6
|
+
it "should include modules at class scope" do
|
|
7
|
+
Registry.at(:B).class_mixins.should == [P(:A)]
|
|
8
|
+
Registry.at(:B).instance_mixins.should be_empty
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
it "should handle a module extending itself" do
|
|
12
|
+
Registry.at(:C).class_mixins.should == [P(:C)]
|
|
13
|
+
Registry.at(:C).instance_mixins.should be_empty
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
it "should extend module with correct namespace" do
|
|
17
|
+
Registry.at('Q::R::S').class_mixins.first.path.should == 'A'
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
it "should not allow extending self if object is a class" do
|
|
21
|
+
undoc_error "class Foo; extend self; end"
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper'
|
|
2
|
+
|
|
3
|
+
include Parser::Ruby::Legacy
|
|
4
|
+
|
|
5
|
+
describe YARD::Handlers::Ruby::Legacy::Base, "#tokval" do
|
|
6
|
+
|
|
7
|
+
before { @handler = Handlers::Ruby::Legacy::Base.new(nil, nil) }
|
|
8
|
+
|
|
9
|
+
def tokval(code, *types)
|
|
10
|
+
@handler.send(:tokval, TokenList.new(code).first, *types)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
it "should return the String's value without quotes" do
|
|
14
|
+
tokval('"hello"').should == "hello"
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
it "should not allow interpolated strings with TkSTRING" do
|
|
18
|
+
tokval('"#{c}"', RubyToken::TkSTRING).should be_nil
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
it "should return a Symbol's value as a String (as if it was done via :name.to_sym)" do
|
|
22
|
+
tokval(':sym').should == :sym
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
it "should return nil for any non accepted type" do
|
|
26
|
+
tokval('identifier').should be_nil
|
|
27
|
+
tokval(':sym', RubyToken::TkId).should be_nil
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
it "should accept TkVal tokens by default" do
|
|
31
|
+
tokval('2.5').should == 2.5
|
|
32
|
+
tokval(':sym').should == :sym
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
it "should accept any ID type if TkId is set" do
|
|
36
|
+
tokval('variable', RubyToken::TkId).should == "variable"
|
|
37
|
+
tokval('CONSTANT', RubyToken::TkId).should == "CONSTANT"
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
it "should allow extra token types to be accepted" do
|
|
41
|
+
tokval('2.5', RubyToken::TkFLOAT).should == 2.5
|
|
42
|
+
tokval('2', RubyToken::TkFLOAT).should be_nil
|
|
43
|
+
tokval(':symbol', RubyToken::TkFLOAT).should be_nil
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
it "should allow :string for any string type" do
|
|
47
|
+
tokval('"hello"', :string).should == "hello"
|
|
48
|
+
tokval('"#{c}"', :string).should == '#{c}'
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
it "should not include interpolated strings when using :attr" do
|
|
52
|
+
tokval('"#{c}"', :attr).should be_nil
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
it "should allow any number type with :number" do
|
|
56
|
+
tokval('2.5', :number).should == 2.5
|
|
57
|
+
tokval('2', :number).should == 2
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
it "should should allow method names with :identifier" do
|
|
61
|
+
tokval('methodname?', :identifier).should == "methodname?"
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
#it "should obey documentation expectations" do docspec end
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
describe YARD::Handlers::Base, "#tokval_list" do
|
|
68
|
+
before { @handler = Handlers::Ruby::Legacy::Base.new(nil, nil) }
|
|
69
|
+
|
|
70
|
+
def tokval_list(code, *types)
|
|
71
|
+
@handler.send(:tokval_list, TokenList.new(code), *types)
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
it "should return the list of tokvalues" do
|
|
75
|
+
tokval_list(":a, :b, \"\#{c}\", 'd'", :attr).should == [:a, :b, 'd']
|
|
76
|
+
tokval_list(":a, :b, File.read(\"\#{c}\", ['w']), :d",
|
|
77
|
+
RubyToken::Token).should == [:a, :b, 'File.read("#{c}", [\'w\'])', :d]
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
it "should try to skip any invalid tokens" do
|
|
81
|
+
tokval_list(":a, :b, \"\#{c}\", :d", :attr).should == [:a, :b, :d]
|
|
82
|
+
tokval_list(":a, :b, File.read(\"\#{c}\", 'w', File.open { }), :d", :attr).should == [:a, :b, :d]
|
|
83
|
+
tokval_list("CONST1, identifier, File.read(\"\#{c}\", 'w', File.open { }), CONST2",
|
|
84
|
+
RubyToken::TkId).should == ['CONST1', 'identifier', 'CONST2']
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
it "should ignore a token if another invalid token is read before a comma" do
|
|
88
|
+
tokval_list(":a, :b XYZ, :c", RubyToken::TkSYMBOL).should == [:a, :c]
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
it "should stop on most keywords" do
|
|
92
|
+
tokval_list(':a rescue :x == 5', RubyToken::Token).should == [:a]
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
it "should handle ignore parentheses that begin the token list" do
|
|
96
|
+
tokval_list('(:a, :b, :c)', :attr).should == [:a, :b, :c]
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
it "should end when a closing parenthesis was found" do
|
|
100
|
+
tokval_list(':a, :b, :c), :d', :attr).should == [:a, :b, :c]
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
it "should ignore parentheses around items in a list" do
|
|
104
|
+
tokval_list(':a, (:b), :c, (:d TEST), :e, [:f], :g', :attr).should == [:a, :b, :c, :e, :g]
|
|
105
|
+
tokval_list(':a, (((:f)))', :attr).should == [:a, :f]
|
|
106
|
+
tokval_list(':a, ([:f]), :c)', RubyToken::Token).should == [:a, '[:f]', :c]
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
it "should not stop on a true/false/self keyword (cannot handle nil)" do
|
|
110
|
+
tokval_list(':a, true, :b, self, false, :c, nil, File, super, if, XYZ',
|
|
111
|
+
RubyToken::Token).should == [:a, true, :b, 'self', false, :c, 'File', 'super']
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
it "should ignore invalid commas" do
|
|
115
|
+
tokval_list(":a, :b, , :d").should == [:a, :b, :d]
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
it "should return an empty list if no matches were found" do
|
|
119
|
+
tokval_list('attr_accessor :x').should == []
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
it "should treat {} as a valid value" do
|
|
123
|
+
# FIXME: tokval_list destroys extra spaces surrounding the '=' in
|
|
124
|
+
# this situation. This is technically a design flaw of the
|
|
125
|
+
# tokval parser, but this is now the expected behaviour.
|
|
126
|
+
tokval_list("opts = {}", :all).should == ["opts={}"]
|
|
127
|
+
end
|
|
128
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper'
|
|
2
|
+
|
|
3
|
+
describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}MethodConditionHandler" do
|
|
4
|
+
before(:all) { parse_file :method_condition_handler_001, __FILE__ }
|
|
5
|
+
|
|
6
|
+
it "should not parse regular if blocks in methods" do
|
|
7
|
+
Registry.at('#b').should be_nil
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
it "should parse if/unless blocks in the form X if COND" do
|
|
11
|
+
Registry.at('#c').should_not be_nil
|
|
12
|
+
Registry.at('#d').should_not be_nil
|
|
13
|
+
end
|
|
14
|
+
end
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper'
|
|
2
|
+
|
|
3
|
+
describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}MethodHandler" do
|
|
4
|
+
before(:all) do
|
|
5
|
+
log.enter_level(Logger::ERROR) do
|
|
6
|
+
parse_file :method_handler_001, __FILE__
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
it "should add methods to parent's #meths list" do
|
|
11
|
+
P(:Foo).meths.should include(P("Foo#method1"))
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
it "should parse/add class methods (self.method2)" do
|
|
15
|
+
P(:Foo).meths.should include(P("Foo.method2"))
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
it "should parse/add class methods from other namespaces (String.hello)" do
|
|
19
|
+
P("String.hello").should be_instance_of(CodeObjects::MethodObject)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
[:[], :[]=, :allowed?, :/, :=~, :==, :`, :|, :*, :&, :%, :'^', :-@, :+@, :'~@'].each do |name|
|
|
23
|
+
it "should allow valid method #{name}" do
|
|
24
|
+
Registry.at("Foo##{name}").should_not be_nil
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
it "should allow self.methname" do
|
|
29
|
+
Registry.at("Foo.new").should_not be_nil
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
it "should mark dynamic methods as such" do
|
|
33
|
+
P('Foo#dynamic').dynamic?.should == true
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
it "should show that a method is explicitly defined (if it was originally defined implicitly by attribute)" do
|
|
37
|
+
P('Foo#method1').is_explicit?.should == true
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
it "should handle parameters" do
|
|
41
|
+
P('Foo#[]').parameters.should == [['key', "'default'"]]
|
|
42
|
+
P('Foo#/').parameters.should == [['x', "File.new('x', 'w')"], ['y', '2']]
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
it "should handle opts = {} as parameter" do
|
|
46
|
+
P('Foo#optsmeth').parameters.should == [['x', nil], ['opts', '{}']]
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
it "should handle &block as parameter" do
|
|
50
|
+
P('Foo#blockmeth').parameters.should == [['x', nil], ['&block', nil]]
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
it "should handle overloads" do
|
|
54
|
+
meth = P('Foo#foo')
|
|
55
|
+
|
|
56
|
+
o1 = meth.tags(:overload).first
|
|
57
|
+
o1.name.should == :bar
|
|
58
|
+
o1.parameters.should == [['a', nil], ['b', "1"]]
|
|
59
|
+
o1.tag(:return).type.should == "String"
|
|
60
|
+
|
|
61
|
+
o2 = meth.tags(:overload)[1]
|
|
62
|
+
o2.name.should == :baz
|
|
63
|
+
o2.parameters.should == [['b', nil], ['c', nil]]
|
|
64
|
+
o2.tag(:return).type.should == "Fixnum"
|
|
65
|
+
|
|
66
|
+
o3 = meth.tags(:overload)[2]
|
|
67
|
+
o3.name.should == :bang
|
|
68
|
+
o3.parameters.should == [['d', nil], ['e', nil]]
|
|
69
|
+
o3.docstring.should be_empty
|
|
70
|
+
o3.docstring.should be_blank
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
it "should set a return tag if not set on #initialize" do
|
|
74
|
+
meth = P('Foo#initialize')
|
|
75
|
+
|
|
76
|
+
meth.should have_tag(:return)
|
|
77
|
+
meth.tag(:return).types.should == ["Foo"]
|
|
78
|
+
meth.tag(:return).text.should == "a new instance of Foo"
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
%w(inherited included method_added method_removed method_undefined).each do |meth|
|
|
82
|
+
it "should set @private tag on #{meth} callback method if no docstring is set" do
|
|
83
|
+
P('Foo.' + meth).should have_tag(:private)
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
it "should not set @private tag on extended callback method since docstring is set" do
|
|
88
|
+
P('Foo.extended').should_not have_tag(:private)
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
it "should add @return [Boolean] tag to methods ending in ? without return types" do
|
|
92
|
+
meth = P('Foo#boolean?')
|
|
93
|
+
meth.should have_tag(:return)
|
|
94
|
+
meth.tag(:return).types.should == ['Boolean']
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
it "should add Boolean type to return tag without types" do
|
|
98
|
+
meth = P('Foo#boolean2?')
|
|
99
|
+
meth.should have_tag(:return)
|
|
100
|
+
meth.tag(:return).types.should == ['Boolean']
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
it "should not change return type for method ending in ? with return types set" do
|
|
104
|
+
meth = P('Foo#boolean3?')
|
|
105
|
+
meth.should have_tag(:return)
|
|
106
|
+
meth.tag(:return).types.should == ['NotBoolean', 'nil']
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
it "should not change return type for method ending in ? with return types set by @overload" do
|
|
110
|
+
meth = P('Foo#rainy?')
|
|
111
|
+
meth.should have_tag(:overload)
|
|
112
|
+
meth.tag(:overload).should have_tag(:return)
|
|
113
|
+
meth.should_not have_tag(:return)
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
it "should add method writer to existing attribute" do
|
|
117
|
+
Registry.at('Foo#attr_name').should be_reader
|
|
118
|
+
Registry.at('Foo#attr_name=').should be_writer
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
it "should add method reader to existing attribute" do
|
|
122
|
+
Registry.at('Foo#attr_name2').should be_reader
|
|
123
|
+
Registry.at('Foo#attr_name2=').should be_writer
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
it "should generate an options parameter if @option refers to an undocumented parameter" do
|
|
127
|
+
meth = P('Foo#auto_opts')
|
|
128
|
+
meth.should have_tag(:param)
|
|
129
|
+
meth.tag(:param).name.should == "opts"
|
|
130
|
+
meth.tag(:param).types.should == ["Hash"]
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
it "should raise an undocumentable error when a method is defined on an object instance" do
|
|
134
|
+
undoc_error "error = Foo; def error.at(foo) end"
|
|
135
|
+
Registry.at('error').should be_nil
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
it "should allow class method to be defined on constant reference object" do
|
|
139
|
+
Registry.at('Foo.meth_on_const').should_not be_nil
|
|
140
|
+
Registry.at('Foo.meth2_on_const').should_not be_nil
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
it "should copy alias information on method (re-)definition to new method" do
|
|
144
|
+
Registry.at('D').aliases.should be_empty
|
|
145
|
+
Registry.at('D#b').is_alias?.should == false
|
|
146
|
+
Registry.at('D#a').is_alias?.should == false
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
it "should add macros for class methods" do
|
|
150
|
+
macro = CodeObjects::MacroObject.find('prop')
|
|
151
|
+
macro.should_not be_nil
|
|
152
|
+
macro.macro_data.should == "@!method $1(value)\n$3\n@return [$2]"
|
|
153
|
+
macro.method_object.should == Registry.at('E.property')
|
|
154
|
+
macro.should be_attached
|
|
155
|
+
obj = Registry.at('E#foo')
|
|
156
|
+
obj.should_not be_nil
|
|
157
|
+
obj.docstring.should == 'create a foo'
|
|
158
|
+
obj.signature.should == 'def foo(value)'
|
|
159
|
+
obj.tag(:return).types.should == ['String']
|
|
160
|
+
end
|
|
161
|
+
|
|
162
|
+
it "should handle macros on any object" do
|
|
163
|
+
macro = CodeObjects::MacroObject.find('xyz')
|
|
164
|
+
macro.should_not be_nil
|
|
165
|
+
macro.macro_data.should == '@!method $1'
|
|
166
|
+
end
|
|
167
|
+
|
|
168
|
+
it "should skip macros on instance methods" do
|
|
169
|
+
Registry.at('E#a').should be_nil
|
|
170
|
+
end
|
|
171
|
+
|
|
172
|
+
it "should warn if the macro name is invalid" do
|
|
173
|
+
log.should_receive(:warn).with(/Invalid directive.*@!macro/)
|
|
174
|
+
YARD.parse_string "class Foo\n# @!macro\ndef self.foo; end\nend"
|
|
175
|
+
end
|
|
176
|
+
|
|
177
|
+
it "should handle 'def end' methods" do
|
|
178
|
+
obj = Registry.at('F::A#foo')
|
|
179
|
+
obj.should_not be_nil
|
|
180
|
+
obj = Registry.at('F::A#bar')
|
|
181
|
+
obj.should_not be_nil
|
|
182
|
+
obj.docstring.should == 'PASS'
|
|
183
|
+
end
|
|
184
|
+
end
|