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,55 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper'
|
|
2
|
+
|
|
3
|
+
describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}MixinHandler" do
|
|
4
|
+
before(:all) { parse_file :mixin_handler_001, __FILE__ }
|
|
5
|
+
|
|
6
|
+
it "should handle includes from classes or modules" do
|
|
7
|
+
Registry.at(:X).instance_mixins.should include(P(:A))
|
|
8
|
+
Registry.at(:Y).instance_mixins.should include(P(:A))
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
it "should handle includes in class << self" do
|
|
12
|
+
Registry.at(:Y).class_mixins.should include(P(:A))
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it "should handle includes for modules that don't yet exist" do
|
|
16
|
+
Registry.at(:X).instance_mixins.should include(P(nil, :NOTEXIST))
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
it "should set the type of non-existing modules to :module" do
|
|
20
|
+
o = Registry.at(:X).instance_mixins.find {|o| o.name == :NOTEXIST }
|
|
21
|
+
o.type.should == :module
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
it "should handle includes with multiple parameters" do
|
|
25
|
+
Registry.at(:X).should_not be_nil
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
it "should handle complex include statements" do
|
|
29
|
+
P(:Y).instance_mixins.should include(P('B::C'))
|
|
30
|
+
P(:Y).instance_mixins.should include(P(:B))
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
it "should treat a mixed in Constant by taking its value as the real object name" do
|
|
34
|
+
P(:Y).instance_mixins.should include(Registry.at('B::D'))
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
it "should add includes in the correct order when include is given multiple arguments" do
|
|
38
|
+
P(:Z).instance_mixins.should == [P(:A), P(:B)]
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
it "should avoid including self for unresolved mixins of the same name" do
|
|
42
|
+
P("ABC::DEF::FOO").mixins.should == [P("ABC::FOO")]
|
|
43
|
+
P("ABC::DEF::BAR").mixins.should == [P("ABC::BAR")]
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
it "should raise undocumentable error if argument is variable" do
|
|
47
|
+
undoc_error "module X; include invalid; end"
|
|
48
|
+
Registry.at('X').mixins.should == []
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
it "should parse all other arguments before erroring out on undocumentable error" do
|
|
52
|
+
undoc_error "module X; include invalid, Y; end"
|
|
53
|
+
Registry.at('X').mixins.should == [P('Y')]
|
|
54
|
+
end
|
|
55
|
+
end
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper'
|
|
2
|
+
|
|
3
|
+
describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}VisibilityHandler" do
|
|
4
|
+
after { Registry.clear }
|
|
5
|
+
|
|
6
|
+
def assert_module_function(namespace, name)
|
|
7
|
+
klass = Registry.at("#{namespace}.#{name}")
|
|
8
|
+
instance = Registry.at("#{namespace}##{name}")
|
|
9
|
+
klass.should_not be_nil
|
|
10
|
+
instance.should_not be_nil
|
|
11
|
+
klass.should be_module_function
|
|
12
|
+
instance.should_not be_module_function
|
|
13
|
+
klass.visibility.should == :public
|
|
14
|
+
instance.visibility.should == :private
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
it "should be able to create a module function with parameters" do
|
|
18
|
+
YARD.parse_string <<-eof
|
|
19
|
+
module Foo
|
|
20
|
+
def bar; end
|
|
21
|
+
def baz; end
|
|
22
|
+
|
|
23
|
+
module_function :bar, :baz
|
|
24
|
+
end
|
|
25
|
+
eof
|
|
26
|
+
assert_module_function('Foo', 'bar')
|
|
27
|
+
assert_module_function('Foo', 'baz')
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
it "should be able to set scope for duration of block without params" do
|
|
31
|
+
YARD.parse_string <<-eof
|
|
32
|
+
module Foo
|
|
33
|
+
def qux; end
|
|
34
|
+
|
|
35
|
+
module_function
|
|
36
|
+
|
|
37
|
+
def bar; end
|
|
38
|
+
def baz; end
|
|
39
|
+
end
|
|
40
|
+
eof
|
|
41
|
+
Registry.at('Foo.qux').should be_nil
|
|
42
|
+
assert_module_function('Foo', 'bar')
|
|
43
|
+
assert_module_function('Foo', 'baz')
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
# @bug gh-563
|
|
47
|
+
it "should copy tags to module function properly" do
|
|
48
|
+
YARD.parse_string <<-eof
|
|
49
|
+
module Foo
|
|
50
|
+
# @param [String] foo bar
|
|
51
|
+
# @option foo [String] bar (nil) baz
|
|
52
|
+
# @return [void]
|
|
53
|
+
def bar(foo); end
|
|
54
|
+
module_function :bar
|
|
55
|
+
end
|
|
56
|
+
eof
|
|
57
|
+
assert_module_function('Foo', 'bar')
|
|
58
|
+
o = Registry.at('Foo.bar')
|
|
59
|
+
o.tag(:param).types.should == ['String']
|
|
60
|
+
o.tag(:param).name.should == 'foo'
|
|
61
|
+
o.tag(:param).text.should == 'bar'
|
|
62
|
+
o.tag(:option).name.should == 'foo'
|
|
63
|
+
o.tag(:option).pair.types.should == ['String']
|
|
64
|
+
o.tag(:option).pair.defaults.should == ['nil']
|
|
65
|
+
o.tag(:option).pair.text.should == 'baz'
|
|
66
|
+
o.tag(:return).types.should == ['void']
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
it "should handle all method names in parameters" do
|
|
70
|
+
YARD.parse_string <<-eof
|
|
71
|
+
module Foo
|
|
72
|
+
def -(t); end
|
|
73
|
+
def ==(other); end
|
|
74
|
+
def a?; end
|
|
75
|
+
module_function :-, '==', :a?
|
|
76
|
+
end
|
|
77
|
+
eof
|
|
78
|
+
assert_module_function('Foo', '-')
|
|
79
|
+
assert_module_function('Foo', '==')
|
|
80
|
+
assert_module_function('Foo', 'a?')
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
it "should only accept strings and symbols" do
|
|
84
|
+
YARD.parse_string <<-eof
|
|
85
|
+
module Foo
|
|
86
|
+
module_function name
|
|
87
|
+
module_function *argument
|
|
88
|
+
module_function *(method_call)
|
|
89
|
+
end
|
|
90
|
+
eof
|
|
91
|
+
Registry.at('Foo#name').should be_nil
|
|
92
|
+
Registry.at('Foo#argument').should be_nil
|
|
93
|
+
Registry.at('Foo#method_call').should be_nil
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
it "should handle constants passed in as symbols" do
|
|
97
|
+
YARD.parse_string <<-eof
|
|
98
|
+
module Foo
|
|
99
|
+
def Foo; end
|
|
100
|
+
module_function :Foo
|
|
101
|
+
end
|
|
102
|
+
eof
|
|
103
|
+
assert_module_function('Foo', 'Foo')
|
|
104
|
+
end
|
|
105
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper'
|
|
2
|
+
|
|
3
|
+
describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}ModuleHandler" do
|
|
4
|
+
before(:all) { parse_file :module_handler_001, __FILE__ }
|
|
5
|
+
|
|
6
|
+
it "should parse a module block" do
|
|
7
|
+
Registry.at(:ModName).should_not == nil
|
|
8
|
+
Registry.at("ModName::OtherModName").should_not == nil
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
it "should attach docstring" do
|
|
12
|
+
Registry.at("ModName::OtherModName").docstring.should == "Docstring"
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it "should handle any formatting" do
|
|
16
|
+
Registry.at(:StressTest).should_not == nil
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
it "should handle complex module names" do
|
|
20
|
+
Registry.at("A::B").should_not == nil
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
it "should handle modules in the form ::ModName" do
|
|
24
|
+
Registry.at("Kernel").should_not be_nil
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
it "should list mixins in proper order" do
|
|
28
|
+
Registry.at('D').mixins.should == [P(:C), P(:B), P(:A)]
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
it "should create proper module when constant is in namespace" do
|
|
32
|
+
Registry.at('Q::FOO::A').should_not be_nil
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper'
|
|
2
|
+
|
|
3
|
+
describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}PrivateConstantHandler" do
|
|
4
|
+
before(:all) { parse_file :private_constant_handler_001, __FILE__ }
|
|
5
|
+
|
|
6
|
+
it "should handle private_constant statement" do
|
|
7
|
+
Registry.at('A::Foo').visibility.should == :private
|
|
8
|
+
Registry.at('A::B').visibility.should == :private
|
|
9
|
+
Registry.at('A::C').visibility.should == :private
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
it "should make all other constants public" do
|
|
13
|
+
Registry.at('A::D').visibility.should == :public
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
it "should fail if parameter is not String, Symbol or Constant" do
|
|
17
|
+
undoc_error 'class Foo; private_constant x; end'
|
|
18
|
+
undoc_error 'class Foo; X = 1; private_constant X.new("hi"); end'
|
|
19
|
+
end unless LEGACY_PARSER
|
|
20
|
+
|
|
21
|
+
it "should fail if constant can't be recognized" do
|
|
22
|
+
undoc_error 'class Foo2; private_constant :X end'
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper'
|
|
2
|
+
|
|
3
|
+
describe YARD::Handlers::Processor do
|
|
4
|
+
before do
|
|
5
|
+
@proc = Handlers::Processor.new(OpenStruct.new(:parser_type => :ruby))
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
it "should start with public visibility" do
|
|
9
|
+
@proc.visibility.should == :public
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
it "should start in instance scope" do
|
|
13
|
+
@proc.scope.should == :instance
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
it "should start in root namespace" do
|
|
17
|
+
@proc.namespace.should == Registry.root
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
it "should have a globals structure" do
|
|
21
|
+
@proc.globals.should be_a(OpenStruct)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
it 'should ignore HandlerAborted exceptions (but print debug info)' do
|
|
25
|
+
class AbortHandlerProcessor < YARD::Handlers::Ruby::Base
|
|
26
|
+
process { abort! }
|
|
27
|
+
end
|
|
28
|
+
stmt = OpenStruct.new(:line => 1, :show => 'SOURCE')
|
|
29
|
+
@proc.stub!(:find_handlers).and_return([AbortHandlerProcessor])
|
|
30
|
+
log.should_receive(:debug).with(/AbortHandlerProcessor cancelled from/)
|
|
31
|
+
log.should_receive(:debug).with("\tin file '(stdin)':1:\n\nSOURCE\n")
|
|
32
|
+
@proc.process([stmt])
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
|
2
|
+
|
|
3
|
+
describe YARD::Handlers::Ruby::Base, '#valid_handler?' do
|
|
4
|
+
include YARD::Parser::Ruby; YARD::Parser::Ruby::AstNode
|
|
5
|
+
|
|
6
|
+
before do
|
|
7
|
+
Handlers::Ruby::Base.stub!(:inherited)
|
|
8
|
+
@processor = Handlers::Processor.new(OpenStruct.new(:parser_type => :ruby))
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
after(:all) do
|
|
12
|
+
Handlers::Base.clear_subclasses
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def valid(handler, stmt)
|
|
16
|
+
@processor.find_handlers(stmt).should include(handler)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def invalid(handler, stmt)
|
|
20
|
+
@processor.find_handlers(stmt).should_not include(handler)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
it "should only handle Handlers inherited from Ruby::Base class" do
|
|
24
|
+
class IgnoredHandler < Handlers::Base
|
|
25
|
+
handles :list
|
|
26
|
+
end
|
|
27
|
+
class NotIgnoredHandler < Handlers::Ruby::Base
|
|
28
|
+
handles :list
|
|
29
|
+
end
|
|
30
|
+
Handlers::Base.stub!(:subclasses).and_return [IgnoredHandler, NotIgnoredHandler]
|
|
31
|
+
@processor.find_handlers(s()).should == [NotIgnoredHandler]
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
it "should handle string input (matches AstNode#source)" do
|
|
35
|
+
class StringHandler < Handlers::Ruby::Base
|
|
36
|
+
handles "x"
|
|
37
|
+
end
|
|
38
|
+
Handlers::Base.stub!(:subclasses).and_return [StringHandler]
|
|
39
|
+
ast = Parser::Ruby::RubyParser.parse("if x == 2 then true end").ast
|
|
40
|
+
valid StringHandler, ast[0][0][0]
|
|
41
|
+
invalid StringHandler, ast[0][1]
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
it "should handle symbol input (matches AstNode#type)" do
|
|
45
|
+
class SymbolHandler < Handlers::Ruby::Base
|
|
46
|
+
handles :myNodeType
|
|
47
|
+
end
|
|
48
|
+
Handlers::Base.stub!(:subclasses).and_return [SymbolHandler]
|
|
49
|
+
valid SymbolHandler, s(:myNodeType, s(1, 2, 3))
|
|
50
|
+
invalid SymbolHandler, s(:NOTmyNodeType, s(1, 2, 3))
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
it "should handle regex input (matches AstNode#source)" do
|
|
54
|
+
class RegexHandler < Handlers::Ruby::Base
|
|
55
|
+
handles %r{^if x ==}
|
|
56
|
+
end
|
|
57
|
+
Handlers::Base.stub!(:subclasses).and_return [RegexHandler]
|
|
58
|
+
ast = Parser::Ruby::RubyParser.parse("if x == 2 then true end").ast
|
|
59
|
+
valid RegexHandler, ast
|
|
60
|
+
invalid RegexHandler, ast[0][1]
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
it "should handle AstNode input (matches AST literally)" do
|
|
64
|
+
class ASTHandler < Handlers::Ruby::Base
|
|
65
|
+
handles s(:vcall, s(:ident, "hello_world"))
|
|
66
|
+
end
|
|
67
|
+
Handlers::Base.stub!(:subclasses).and_return [ASTHandler]
|
|
68
|
+
valid ASTHandler, s(:vcall, s(:ident, "hello_world"))
|
|
69
|
+
invalid ASTHandler, s(:vcall, s(:ident, "NOTHELLOWORLD"))
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
it "should handle #method_call(:methname) on a valid AST" do
|
|
73
|
+
class MethCallHandler < Handlers::Ruby::Base
|
|
74
|
+
handles method_call(:meth)
|
|
75
|
+
end
|
|
76
|
+
Handlers::Base.stub!(:subclasses).and_return [MethCallHandler]
|
|
77
|
+
ast = Parser::Ruby::RubyParser.parse(<<-"eof").ast
|
|
78
|
+
meth # 0
|
|
79
|
+
meth() # 1
|
|
80
|
+
meth(1,2,3) # 2
|
|
81
|
+
meth 1,2,3 # 3
|
|
82
|
+
NotMeth.meth # 4
|
|
83
|
+
NotMeth.meth { } # 5
|
|
84
|
+
NotMeth.meth do end # 6
|
|
85
|
+
NotMeth.meth 1, 2, 3 # 7
|
|
86
|
+
NotMeth.meth(1, 2, 3) # 8
|
|
87
|
+
NotMeth # 9
|
|
88
|
+
eof
|
|
89
|
+
(0..8).each do |i|
|
|
90
|
+
valid MethCallHandler, ast[i]
|
|
91
|
+
end
|
|
92
|
+
invalid MethCallHandler, ast[9]
|
|
93
|
+
end
|
|
94
|
+
end if HAVE_RIPPER
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper'
|
|
2
|
+
|
|
3
|
+
include Parser::Ruby::Legacy
|
|
4
|
+
|
|
5
|
+
describe YARD::Handlers::Ruby::Legacy::Base, "#handles and inheritance" do
|
|
6
|
+
before do
|
|
7
|
+
Handlers::Ruby::Legacy::Base.stub!(:inherited)
|
|
8
|
+
Handlers::Ruby::Legacy::MixinHandler.stub!(:inherited) # fixes a Ruby1.9 issue
|
|
9
|
+
@processor = Handlers::Processor.new(OpenStruct.new(:parser_type => :ruby18))
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
after(:all) do
|
|
13
|
+
Handlers::Base.clear_subclasses
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def stmt(string)
|
|
17
|
+
Statement.new(TokenList.new(string))
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
it "should only handle Handlers inherited from Ruby::Legacy::Base class" do
|
|
21
|
+
class IgnoredHandler < Handlers::Base
|
|
22
|
+
handles "hello"
|
|
23
|
+
end
|
|
24
|
+
class NotIgnoredHandlerLegacy < Handlers::Ruby::Legacy::Base
|
|
25
|
+
handles "hello"
|
|
26
|
+
end
|
|
27
|
+
Handlers::Base.stub!(:subclasses).and_return [IgnoredHandler, NotIgnoredHandlerLegacy]
|
|
28
|
+
@processor.find_handlers(stmt("hello world")).should == [NotIgnoredHandlerLegacy]
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
it "should handle a string input" do
|
|
32
|
+
class TestStringHandler < Handlers::Ruby::Legacy::Base
|
|
33
|
+
handles "hello"
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
TestStringHandler.handles?(stmt("hello world")).should be_true
|
|
37
|
+
TestStringHandler.handles?(stmt("nothello world")).should be_false
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
it "should handle regex input" do
|
|
41
|
+
class TestRegexHandler < Handlers::Ruby::Legacy::Base
|
|
42
|
+
handles /^nothello$/
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
TestRegexHandler.handles?(stmt("nothello")).should be_true
|
|
46
|
+
TestRegexHandler.handles?(stmt("not hello hello")).should be_false
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
it "should handle token input" do
|
|
50
|
+
class TestTokenHandler < Handlers::Ruby::Legacy::Base
|
|
51
|
+
handles TkMODULE
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
TestTokenHandler.handles?(stmt("module")).should be_true
|
|
55
|
+
TestTokenHandler.handles?(stmt("if")).should be_false
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
it "should parse a do/end or { } block with #parse_block" do
|
|
59
|
+
class MyBlockHandler < Handlers::Ruby::Legacy::Base
|
|
60
|
+
handles /\AmyMethod\b/
|
|
61
|
+
def process
|
|
62
|
+
parse_block(:owner => "test")
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
class MyBlockInnerHandler < Handlers::Ruby::Legacy::Base
|
|
67
|
+
handles "inner"
|
|
68
|
+
def self.reset; @@reached = false end
|
|
69
|
+
def self.reached?; @@reached ||= false end
|
|
70
|
+
def process; @@reached = true end
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
Handlers::Base.stub!(:subclasses).and_return [MyBlockHandler, MyBlockInnerHandler]
|
|
74
|
+
Parser::SourceParser.parser_type = :ruby18
|
|
75
|
+
Parser::SourceParser.parse_string "myMethod do inner end"
|
|
76
|
+
MyBlockInnerHandler.should be_reached
|
|
77
|
+
MyBlockInnerHandler.reset
|
|
78
|
+
Parser::SourceParser.parse_string "myMethod { inner }"
|
|
79
|
+
MyBlockInnerHandler.should be_reached
|
|
80
|
+
Parser::SourceParser.parser_type = :ruby
|
|
81
|
+
end
|
|
82
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
require File.join(File.dirname(__FILE__), "..", "spec_helper")
|
|
2
|
+
require 'stringio'
|
|
3
|
+
|
|
4
|
+
include Handlers
|
|
5
|
+
|
|
6
|
+
def undoc_error(code)
|
|
7
|
+
lambda { StubbedSourceParser.parse_string(code) }.should raise_error(Parser::UndocumentableError)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def with_parser(parser_type, &block)
|
|
11
|
+
tmp = StubbedSourceParser.parser_type
|
|
12
|
+
StubbedSourceParser.parser_type = parser_type
|
|
13
|
+
yield
|
|
14
|
+
StubbedSourceParser.parser_type = tmp
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
class StubbedProcessor < Processor
|
|
18
|
+
def process(statements)
|
|
19
|
+
statements.each_with_index do |stmt, index|
|
|
20
|
+
find_handlers(stmt).each do |handler|
|
|
21
|
+
handler.new(self, stmt).process
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
class StubbedSourceParser < Parser::SourceParser
|
|
28
|
+
StubbedSourceParser.parser_type = :ruby
|
|
29
|
+
def post_process
|
|
30
|
+
post = StubbedProcessor.new(self)
|
|
31
|
+
post.process(@parser.enumerator)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper'
|
|
2
|
+
|
|
3
|
+
describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}VisibilityHandler" do
|
|
4
|
+
before(:all) { parse_file :visibility_handler_001, __FILE__ }
|
|
5
|
+
|
|
6
|
+
it "should be able to set visibility to public" do
|
|
7
|
+
Registry.at("Testing#pub").visibility.should == :public
|
|
8
|
+
Registry.at("Testing#pub2").visibility.should == :public
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
it "should be able to set visibility to private" do
|
|
12
|
+
Registry.at("Testing#priv").visibility.should == :private
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it "should be able to set visibility to protected" do
|
|
16
|
+
Registry.at("Testing#prot").visibility.should == :protected
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
it "should support parameters and only set visibility on those methods" do
|
|
20
|
+
Registry['Testing#notpriv'].visibility.should == :protected
|
|
21
|
+
Registry['Testing#notpriv2'].visibility.should == :protected
|
|
22
|
+
Registry['Testing#notpriv?'].visibility.should == :protected
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
it "should only accept strings and symbols" do
|
|
26
|
+
Registry.at('Testing#name').should be_nil
|
|
27
|
+
Registry.at('Testing#argument').should be_nil
|
|
28
|
+
Registry.at('Testing#method_call').should be_nil
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
it "should handle constants passed in as symbols" do
|
|
32
|
+
Registry.at('Testing#Foo').visibility.should == :private
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
it 'should not register classes with visibility' do
|
|
36
|
+
Registry.at('Testing::Bar').visibility.should == :public
|
|
37
|
+
Registry.at('Testing::Baz').visibility.should == :public
|
|
38
|
+
end
|
|
39
|
+
end
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper'
|
|
2
|
+
|
|
3
|
+
describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}YieldHandler" do
|
|
4
|
+
before(:all) { parse_file :yield_handler_001, __FILE__ }
|
|
5
|
+
|
|
6
|
+
it "should only parse yield blocks in methods" do
|
|
7
|
+
P(:Testing).tag(:yield).should be_nil
|
|
8
|
+
P(:Testing).tag(:yieldparam).should be_nil
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
it "should handle an empty yield statement" do
|
|
12
|
+
P('Testing#mymethod').tag(:yield).should be_nil
|
|
13
|
+
P('Testing#mymethod').tag(:yieldparam).should be_nil
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
it "should not document a yield statement in a method with either @yield or @yieldparam" do
|
|
17
|
+
P('Testing#mymethod2').tag(:yield).types.should == ['a', 'b']
|
|
18
|
+
P('Testing#mymethod2').tag(:yield).text.should == "Blah"
|
|
19
|
+
P('Testing#mymethod2').tags(:yieldparam).size.should == 2
|
|
20
|
+
|
|
21
|
+
P('Testing#mymethod3').tag(:yield).types.should == ['a', 'b']
|
|
22
|
+
P('Testing#mymethod3').tags(:yieldparam).size.should == 0
|
|
23
|
+
|
|
24
|
+
P('Testing#mymethod4').tag(:yieldparam).name.should == '_self'
|
|
25
|
+
P('Testing#mymethod4').tag(:yieldparam).text.should == 'BLAH'
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
it "should handle any arbitrary yield statement" do
|
|
29
|
+
P('Testing#mymethod5').tag(:yield).types.should == [':a', 'b', '_self', 'File.read(\'file\', \'w\')', 'CONSTANT']
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
it "should handle parentheses" do
|
|
33
|
+
P('Testing#mymethod6').tag(:yield).types.should == ['b', 'a']
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
it "should only document the first yield statement in a method (limitation of yield handler)" do
|
|
37
|
+
P('Testing#mymethod7').tag(:yield).types.should == ['a']
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
it "should handle `self` keyword and list object type as yieldparam for _self" do
|
|
41
|
+
P('Testing#mymethod8').tag(:yield).types.should == ['_self']
|
|
42
|
+
P('Testing#mymethod8').tag(:yieldparam).types.should == ['Testing']
|
|
43
|
+
P('Testing#mymethod8').tag(:yieldparam).text.should == "the object that the method was called on"
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
it "should handle `super` keyword and document it under _super" do
|
|
47
|
+
P('Testing#mymethod9').tag(:yield).types.should == ['_super']
|
|
48
|
+
P('Testing#mymethod9').tag(:yieldparam).types.should be_nil
|
|
49
|
+
P('Testing#mymethod9').tag(:yieldparam).text.should == "the result of the method from the superclass"
|
|
50
|
+
end
|
|
51
|
+
end
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
|
2
|
+
|
|
3
|
+
describe YARD::I18n::Locale do
|
|
4
|
+
def locale(name)
|
|
5
|
+
YARD::I18n::Locale.new(name)
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
before do
|
|
9
|
+
@locale = locale("fr")
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
describe "#name" do
|
|
13
|
+
it "should return name" do
|
|
14
|
+
locale("fr").name.should == "fr"
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
describe "#load" do
|
|
19
|
+
it "should return false for nonexistent PO" do
|
|
20
|
+
File.should_receive(:exist?).with('foo/fr.po').and_return(false)
|
|
21
|
+
@locale.load('foo').should == false
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
have_gettext_gem = true
|
|
25
|
+
begin
|
|
26
|
+
require "gettext/tools/poparser"
|
|
27
|
+
rescue LoadError
|
|
28
|
+
have_gettext_gem = false
|
|
29
|
+
end
|
|
30
|
+
it "should return true for existent PO", :if => have_gettext_gem do
|
|
31
|
+
data = <<-eop
|
|
32
|
+
msgid ""
|
|
33
|
+
msgstr ""
|
|
34
|
+
"Language: fr\n"
|
|
35
|
+
"MIME-Version: 1.0\n"
|
|
36
|
+
"Content-Type: text/plain; charset=UTF-8\n"
|
|
37
|
+
"Content-Transfer-Encoding: 8bit\n"
|
|
38
|
+
|
|
39
|
+
msgid "Hello"
|
|
40
|
+
msgstr "Bonjour"
|
|
41
|
+
eop
|
|
42
|
+
parser = GetText::PoParser.new
|
|
43
|
+
File.should_receive(:exist?).with('foo/fr.po').and_return(true)
|
|
44
|
+
GetText::PoParser.should_receive(:new).and_return(parser)
|
|
45
|
+
parser.should_receive(:parse_file) do |file, hash|
|
|
46
|
+
file.should == 'foo/fr.po'
|
|
47
|
+
parser.parse(data, hash)
|
|
48
|
+
end
|
|
49
|
+
@locale.load('foo').should == true
|
|
50
|
+
@locale.translate('Hello').should == "Bonjour"
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
describe "#translate" do
|
|
55
|
+
before do
|
|
56
|
+
messages = @locale.instance_variable_get(:@messages)
|
|
57
|
+
messages["Hello"] = "Bonjour"
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
it "should return translated string for existent string" do
|
|
61
|
+
@locale.translate("Hello") == "Bonjour"
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
it "should return original string for nonexistent string" do
|
|
65
|
+
@locale.translate("nonexistent") == "nonexistent"
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
|
2
|
+
|
|
3
|
+
describe YARD::I18n::Message do
|
|
4
|
+
def message(id)
|
|
5
|
+
YARD::I18n::Message.new(id)
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
before do
|
|
9
|
+
@message = message("Hello World!")
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
describe "#id" do
|
|
13
|
+
it "should return ID" do
|
|
14
|
+
message("Hello World!").id.should == "Hello World!"
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
describe "#add_location" do
|
|
19
|
+
it "should add some locations" do
|
|
20
|
+
@message.add_location("hello.rb", 10)
|
|
21
|
+
@message.add_location("message.rb", 5)
|
|
22
|
+
@message.locations.should == Set.new([["hello.rb", 10], ["message.rb", 5]])
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
describe "#add_comment" do
|
|
27
|
+
it "should add some comments" do
|
|
28
|
+
@message.add_comment("YARD.title")
|
|
29
|
+
@message.add_comment("Hello#message")
|
|
30
|
+
@message.comments.should == Set.new(["YARD.title", "Hello#message"])
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
describe "#==" do
|
|
35
|
+
it "should return true for same value messages" do
|
|
36
|
+
locations = [["hello.rb", 10], ["message.rb", 5]]
|
|
37
|
+
comments = ["YARD.title", "Hello#message"]
|
|
38
|
+
|
|
39
|
+
other_message = message(@message.id)
|
|
40
|
+
locations.each do |path, line|
|
|
41
|
+
@message.add_location(path, line)
|
|
42
|
+
other_message.add_location(path, line)
|
|
43
|
+
end
|
|
44
|
+
comments.each do |comment|
|
|
45
|
+
@message.add_comment(comment)
|
|
46
|
+
other_message.add_comment(comment)
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
@message.should == other_message
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|