yard 0.9.16 → 0.9.17
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of yard might be problematic. Click here for more details.
- checksums.yaml +5 -5
- data/.yardopts +26 -26
- data/CHANGELOG.md +728 -728
- data/LEGAL +66 -66
- data/LICENSE +22 -22
- data/README.md +328 -328
- data/Rakefile +53 -47
- data/benchmarks/builtins_vs_eval.rb +24 -24
- data/benchmarks/concat_vs_join.rb +13 -13
- data/benchmarks/erb_vs_erubis.rb +54 -54
- data/benchmarks/format_args.rb +47 -47
- data/benchmarks/generation.rb +38 -38
- data/benchmarks/marshal_vs_dbm.rb +64 -64
- data/benchmarks/parsing.rb +46 -46
- data/benchmarks/pathname_vs_string.rb +50 -50
- data/benchmarks/rdoc_vs_yardoc.rb +11 -11
- data/benchmarks/registry_store_types.rb +49 -49
- data/benchmarks/ri_vs_yri.rb +19 -19
- data/benchmarks/ripper_parser.rb +13 -13
- data/benchmarks/splat_vs_flatten.rb +13 -13
- data/benchmarks/template_erb.rb +23 -23
- data/benchmarks/template_format.rb +7 -7
- data/benchmarks/template_profile.rb +18 -18
- data/benchmarks/yri_cache.rb +20 -20
- data/bin/yard +13 -13
- data/bin/yardoc +13 -13
- data/bin/yri +13 -13
- data/docs/CodeObjects.md +115 -115
- data/docs/GettingStarted.md +679 -679
- data/docs/Handlers.md +152 -152
- data/docs/Overview.md +61 -61
- data/docs/Parser.md +191 -191
- data/docs/Tags.md +283 -283
- data/docs/TagsArch.md +123 -123
- data/docs/Templates.md +496 -496
- data/docs/WhatsNew.md +1245 -1245
- data/docs/templates/default/fulldoc/html/full_list_tag.erb +8 -8
- data/docs/templates/default/fulldoc/html/setup.rb +6 -6
- data/docs/templates/default/layout/html/setup.rb +9 -9
- data/docs/templates/default/layout/html/tag_list.erb +11 -11
- data/docs/templates/default/yard_tags/html/list.erb +18 -18
- data/docs/templates/default/yard_tags/html/setup.rb +26 -26
- data/docs/templates/plugin.rb +70 -70
- data/lib/rubygems_plugin.rb +9 -9
- data/lib/yard.rb +69 -69
- data/lib/yard/autoload.rb +303 -303
- data/lib/yard/cli/command.rb +85 -85
- data/lib/yard/cli/command_parser.rb +93 -93
- data/lib/yard/cli/config.rb +198 -198
- data/lib/yard/cli/diff.rb +270 -270
- data/lib/yard/cli/display.rb +69 -69
- data/lib/yard/cli/gems.rb +84 -84
- data/lib/yard/cli/graph.rb +125 -125
- data/lib/yard/cli/help.rb +20 -20
- data/lib/yard/cli/i18n.rb +70 -70
- data/lib/yard/cli/list.rb +23 -23
- data/lib/yard/cli/markup_types.rb +32 -32
- data/lib/yard/cli/server.rb +257 -257
- data/lib/yard/cli/stats.rb +231 -231
- data/lib/yard/cli/yardoc.rb +788 -788
- data/lib/yard/cli/yardopts_command.rb +110 -110
- data/lib/yard/cli/yri.rb +215 -215
- data/lib/yard/code_objects/base.rb +615 -610
- data/lib/yard/code_objects/class_object.rb +146 -146
- data/lib/yard/code_objects/class_variable_object.rb +11 -11
- data/lib/yard/code_objects/constant_object.rb +16 -16
- data/lib/yard/code_objects/extended_method_object.rb +24 -24
- data/lib/yard/code_objects/extra_file_object.rb +131 -131
- data/lib/yard/code_objects/macro_object.rb +172 -172
- data/lib/yard/code_objects/method_object.rb +196 -196
- data/lib/yard/code_objects/module_object.rb +21 -21
- data/lib/yard/code_objects/namespace_mapper.rb +114 -114
- data/lib/yard/code_objects/namespace_object.rb +200 -200
- data/lib/yard/code_objects/proxy.rb +240 -240
- data/lib/yard/code_objects/root_object.rb +19 -19
- data/lib/yard/config.rb +270 -270
- data/lib/yard/core_ext/array.rb +16 -16
- data/lib/yard/core_ext/file.rb +69 -69
- data/lib/yard/core_ext/hash.rb +16 -16
- data/lib/yard/core_ext/insertion.rb +63 -63
- data/lib/yard/core_ext/module.rb +20 -20
- data/lib/yard/core_ext/string.rb +68 -68
- data/lib/yard/core_ext/symbol_hash.rb +75 -75
- data/lib/yard/docstring.rb +386 -378
- data/lib/yard/docstring_parser.rb +345 -345
- data/lib/yard/gem_index.rb +29 -29
- data/lib/yard/globals.rb +22 -22
- data/lib/yard/handlers/base.rb +595 -595
- data/lib/yard/handlers/c/alias_handler.rb +16 -16
- data/lib/yard/handlers/c/attribute_handler.rb +13 -13
- data/lib/yard/handlers/c/base.rb +129 -129
- data/lib/yard/handlers/c/class_handler.rb +27 -27
- data/lib/yard/handlers/c/constant_handler.rb +13 -13
- data/lib/yard/handlers/c/handler_methods.rb +211 -211
- data/lib/yard/handlers/c/init_handler.rb +20 -20
- data/lib/yard/handlers/c/method_handler.rb +45 -36
- data/lib/yard/handlers/c/mixin_handler.rb +21 -21
- data/lib/yard/handlers/c/module_handler.rb +17 -17
- data/lib/yard/handlers/c/override_comment_handler.rb +31 -31
- data/lib/yard/handlers/c/path_handler.rb +11 -11
- data/lib/yard/handlers/c/struct_handler.rb +13 -13
- data/lib/yard/handlers/c/symbol_handler.rb +8 -8
- data/lib/yard/handlers/processor.rb +200 -200
- data/lib/yard/handlers/ruby/alias_handler.rb +44 -44
- data/lib/yard/handlers/ruby/attribute_handler.rb +87 -87
- data/lib/yard/handlers/ruby/base.rb +165 -165
- data/lib/yard/handlers/ruby/class_condition_handler.rb +92 -92
- data/lib/yard/handlers/ruby/class_handler.rb +119 -119
- data/lib/yard/handlers/ruby/class_variable_handler.rb +17 -17
- data/lib/yard/handlers/ruby/comment_handler.rb +10 -10
- data/lib/yard/handlers/ruby/constant_handler.rb +59 -59
- data/lib/yard/handlers/ruby/decorator_handler_methods.rb +123 -123
- data/lib/yard/handlers/ruby/dsl_handler.rb +15 -15
- data/lib/yard/handlers/ruby/dsl_handler_methods.rb +96 -95
- data/lib/yard/handlers/ruby/exception_handler.rb +27 -27
- data/lib/yard/handlers/ruby/extend_handler.rb +22 -22
- data/lib/yard/handlers/ruby/legacy/alias_handler.rb +37 -37
- data/lib/yard/handlers/ruby/legacy/attribute_handler.rb +65 -65
- data/lib/yard/handlers/ruby/legacy/base.rb +245 -245
- data/lib/yard/handlers/ruby/legacy/class_condition_handler.rb +83 -83
- data/lib/yard/handlers/ruby/legacy/class_handler.rb +113 -113
- data/lib/yard/handlers/ruby/legacy/class_variable_handler.rb +15 -15
- data/lib/yard/handlers/ruby/legacy/comment_handler.rb +10 -10
- data/lib/yard/handlers/ruby/legacy/constant_handler.rb +29 -29
- data/lib/yard/handlers/ruby/legacy/dsl_handler.rb +17 -17
- data/lib/yard/handlers/ruby/legacy/exception_handler.rb +13 -13
- data/lib/yard/handlers/ruby/legacy/extend_handler.rb +21 -21
- data/lib/yard/handlers/ruby/legacy/method_handler.rb +90 -90
- data/lib/yard/handlers/ruby/legacy/mixin_handler.rb +39 -39
- data/lib/yard/handlers/ruby/legacy/module_function_handler.rb +19 -19
- data/lib/yard/handlers/ruby/legacy/module_handler.rb +12 -12
- data/lib/yard/handlers/ruby/legacy/private_class_method_handler.rb +22 -22
- data/lib/yard/handlers/ruby/legacy/private_constant_handler.rb +22 -22
- data/lib/yard/handlers/ruby/legacy/visibility_handler.rb +17 -17
- data/lib/yard/handlers/ruby/legacy/yield_handler.rb +29 -29
- data/lib/yard/handlers/ruby/method_condition_handler.rb +9 -9
- data/lib/yard/handlers/ruby/method_handler.rb +118 -118
- data/lib/yard/handlers/ruby/mixin_handler.rb +37 -37
- data/lib/yard/handlers/ruby/module_function_handler.rb +27 -27
- data/lib/yard/handlers/ruby/module_handler.rb +12 -12
- data/lib/yard/handlers/ruby/private_class_method_handler.rb +14 -14
- data/lib/yard/handlers/ruby/private_constant_handler.rb +43 -43
- data/lib/yard/handlers/ruby/public_class_method_handler.rb +14 -14
- data/lib/yard/handlers/ruby/struct_handler_methods.rb +143 -143
- data/lib/yard/handlers/ruby/visibility_handler.rb +22 -22
- data/lib/yard/handlers/ruby/yield_handler.rb +31 -31
- data/lib/yard/i18n/locale.rb +67 -67
- data/lib/yard/i18n/message.rb +57 -57
- data/lib/yard/i18n/messages.rb +56 -56
- data/lib/yard/i18n/po_parser.rb +61 -61
- data/lib/yard/i18n/pot_generator.rb +290 -290
- data/lib/yard/i18n/text.rb +173 -173
- data/lib/yard/logging.rb +205 -205
- data/lib/yard/options.rb +217 -217
- data/lib/yard/parser/base.rb +57 -57
- data/lib/yard/parser/c/c_parser.rb +235 -235
- data/lib/yard/parser/c/comment_parser.rb +134 -134
- data/lib/yard/parser/c/statement.rb +64 -64
- data/lib/yard/parser/ruby/ast_node.rb +540 -540
- data/lib/yard/parser/ruby/legacy/ruby_lex.rb +1354 -1354
- data/lib/yard/parser/ruby/legacy/ruby_parser.rb +32 -32
- data/lib/yard/parser/ruby/legacy/statement.rb +66 -66
- data/lib/yard/parser/ruby/legacy/statement_list.rb +394 -394
- data/lib/yard/parser/ruby/legacy/token_list.rb +74 -74
- data/lib/yard/parser/ruby/ruby_parser.rb +687 -687
- data/lib/yard/parser/ruby/token_resolver.rb +156 -156
- data/lib/yard/parser/source_parser.rb +526 -526
- data/lib/yard/rake/yardoc_task.rb +81 -81
- data/lib/yard/registry.rb +439 -439
- data/lib/yard/registry_resolver.rb +189 -189
- data/lib/yard/registry_store.rb +337 -337
- data/lib/yard/rubygems/backports.rb +10 -10
- data/lib/yard/rubygems/backports/LICENSE.txt +57 -57
- data/lib/yard/rubygems/backports/MIT.txt +20 -20
- data/lib/yard/rubygems/backports/gem.rb +10 -10
- data/lib/yard/rubygems/backports/source_index.rb +365 -365
- data/lib/yard/rubygems/doc_manager.rb +90 -90
- data/lib/yard/rubygems/hook.rb +197 -197
- data/lib/yard/rubygems/specification.rb +50 -50
- data/lib/yard/serializers/base.rb +83 -83
- data/lib/yard/serializers/file_system_serializer.rb +123 -123
- data/lib/yard/serializers/process_serializer.rb +24 -24
- data/lib/yard/serializers/stdout_serializer.rb +34 -34
- data/lib/yard/serializers/yardoc_serializer.rb +152 -152
- data/lib/yard/server.rb +13 -13
- data/lib/yard/server/adapter.rb +100 -100
- data/lib/yard/server/commands/base.rb +209 -209
- data/lib/yard/server/commands/display_file_command.rb +29 -29
- data/lib/yard/server/commands/display_object_command.rb +65 -65
- data/lib/yard/server/commands/frames_command.rb +16 -16
- data/lib/yard/server/commands/library_command.rb +187 -187
- data/lib/yard/server/commands/library_index_command.rb +28 -28
- data/lib/yard/server/commands/list_command.rb +25 -25
- data/lib/yard/server/commands/root_request_command.rb +15 -15
- data/lib/yard/server/commands/search_command.rb +79 -79
- data/lib/yard/server/commands/static_file_command.rb +23 -23
- data/lib/yard/server/commands/static_file_helpers.rb +62 -62
- data/lib/yard/server/doc_server_helper.rb +91 -91
- data/lib/yard/server/doc_server_serializer.rb +39 -39
- data/lib/yard/server/library_version.rb +277 -277
- data/lib/yard/server/rack_adapter.rb +89 -89
- data/lib/yard/server/router.rb +187 -187
- data/lib/yard/server/static_caching.rb +46 -46
- data/lib/yard/server/templates/default/fulldoc/html/css/custom.css +127 -127
- data/lib/yard/server/templates/default/fulldoc/html/js/autocomplete.js +11 -11
- data/lib/yard/server/templates/default/layout/html/breadcrumb.erb +37 -37
- data/lib/yard/server/templates/default/layout/html/script_setup.erb +7 -7
- data/lib/yard/server/templates/default/layout/html/setup.rb +8 -8
- data/lib/yard/server/templates/default/method_details/html/permalink.erb +4 -4
- data/lib/yard/server/templates/default/method_details/html/setup.rb +5 -5
- data/lib/yard/server/templates/doc_server/library_list/html/headers.erb +8 -8
- data/lib/yard/server/templates/doc_server/library_list/html/library_list.erb +14 -14
- data/lib/yard/server/templates/doc_server/library_list/html/listing.erb +13 -13
- data/lib/yard/server/templates/doc_server/library_list/html/setup.rb +6 -6
- data/lib/yard/server/templates/doc_server/library_list/html/title.erb +2 -2
- data/lib/yard/server/templates/doc_server/processing/html/processing.erb +52 -52
- data/lib/yard/server/templates/doc_server/processing/html/setup.rb +4 -4
- data/lib/yard/server/templates/doc_server/search/html/search.erb +18 -18
- data/lib/yard/server/templates/doc_server/search/html/setup.rb +9 -9
- data/lib/yard/server/webrick_adapter.rb +45 -45
- data/lib/yard/tags/default_factory.rb +191 -191
- data/lib/yard/tags/default_tag.rb +13 -13
- data/lib/yard/tags/directives.rb +616 -616
- data/lib/yard/tags/library.rb +633 -633
- data/lib/yard/tags/option_tag.rb +13 -13
- data/lib/yard/tags/overload_tag.rb +71 -71
- data/lib/yard/tags/ref_tag.rb +8 -8
- data/lib/yard/tags/ref_tag_list.rb +28 -28
- data/lib/yard/tags/tag.rb +71 -71
- data/lib/yard/tags/tag_format_error.rb +7 -7
- data/lib/yard/tags/types_explainer.rb +162 -162
- data/lib/yard/templates/engine.rb +186 -186
- data/lib/yard/templates/erb_cache.rb +23 -23
- data/lib/yard/templates/helpers/base_helper.rb +215 -215
- data/lib/yard/templates/helpers/filter_helper.rb +27 -27
- data/lib/yard/templates/helpers/html_helper.rb +646 -642
- data/lib/yard/templates/helpers/html_syntax_highlight_helper.rb +78 -78
- data/lib/yard/templates/helpers/markup/rdoc_markdown.rb +23 -23
- data/lib/yard/templates/helpers/markup/rdoc_markup.rb +109 -109
- data/lib/yard/templates/helpers/markup_helper.rb +172 -172
- data/lib/yard/templates/helpers/method_helper.rb +75 -75
- data/lib/yard/templates/helpers/module_helper.rb +21 -21
- data/lib/yard/templates/helpers/text_helper.rb +112 -112
- data/lib/yard/templates/helpers/uml_helper.rb +47 -47
- data/lib/yard/templates/section.rb +105 -105
- data/lib/yard/templates/template.rb +418 -418
- data/lib/yard/templates/template_options.rb +92 -92
- data/lib/yard/verifier.rb +151 -151
- data/lib/yard/version.rb +3 -1
- data/spec/cli/command_parser_spec.rb +43 -43
- data/spec/cli/command_spec.rb +36 -36
- data/spec/cli/config_spec.rb +148 -148
- data/spec/cli/diff_spec.rb +254 -254
- data/spec/cli/display_spec.rb +30 -30
- data/spec/cli/gems_spec.rb +81 -81
- data/spec/cli/graph_spec.rb +18 -18
- data/spec/cli/help_spec.rb +22 -22
- data/spec/cli/i18n_spec.rb +107 -107
- data/spec/cli/list_spec.rb +8 -8
- data/spec/cli/markup_types_spec.rb +22 -22
- data/spec/cli/server_spec.rb +324 -324
- data/spec/cli/stats_spec.rb +96 -96
- data/spec/cli/yard_on_yard_spec.rb +38 -38
- data/spec/cli/yardoc_spec.rb +862 -849
- data/spec/cli/yri_spec.rb +101 -101
- data/spec/code_objects/base_spec.rb +470 -460
- data/spec/code_objects/class_object_spec.rb +226 -226
- data/spec/code_objects/code_object_list_spec.rb +36 -36
- data/spec/code_objects/constants_spec.rb +116 -116
- data/spec/code_objects/extra_file_object_spec.rb +160 -160
- data/spec/code_objects/macro_object_spec.rb +150 -150
- data/spec/code_objects/method_object_spec.rb +184 -184
- data/spec/code_objects/module_object_spec.rb +142 -142
- data/spec/code_objects/namespace_object_spec.rb +171 -171
- data/spec/code_objects/proxy_spec.rb +141 -141
- data/spec/code_objects/spec_helper.rb +3 -3
- data/spec/config_spec.rb +171 -171
- data/spec/core_ext/array_spec.rb +13 -13
- data/spec/core_ext/file_spec.rb +72 -72
- data/spec/core_ext/hash_spec.rb +14 -14
- data/spec/core_ext/insertion_spec.rb +37 -37
- data/spec/core_ext/module_spec.rb +15 -15
- data/spec/core_ext/string_spec.rb +42 -42
- data/spec/core_ext/symbol_hash_spec.rb +89 -89
- data/spec/docstring_parser_spec.rb +280 -262
- data/spec/docstring_spec.rb +373 -364
- data/spec/examples.txt +1875 -1871
- data/spec/handlers/alias_handler_spec.rb +82 -82
- data/spec/handlers/attribute_handler_spec.rb +96 -96
- data/spec/handlers/base_spec.rb +216 -216
- data/spec/handlers/c/alias_handler_spec.rb +34 -34
- data/spec/handlers/c/attribute_handler_spec.rb +41 -41
- data/spec/handlers/c/class_handler_spec.rb +78 -78
- data/spec/handlers/c/constant_handler_spec.rb +71 -71
- data/spec/handlers/c/init_handler_spec.rb +48 -48
- data/spec/handlers/c/method_handler_spec.rb +325 -325
- data/spec/handlers/c/mixin_handler_spec.rb +44 -44
- data/spec/handlers/c/module_handler_spec.rb +71 -71
- data/spec/handlers/c/override_comment_handler_spec.rb +47 -47
- data/spec/handlers/c/path_handler_spec.rb +36 -36
- data/spec/handlers/c/spec_helper.rb +23 -23
- data/spec/handlers/c/struct_handler_spec.rb +16 -16
- data/spec/handlers/class_condition_handler_spec.rb +87 -87
- data/spec/handlers/class_handler_spec.rb +247 -247
- data/spec/handlers/class_method_handler_shared_examples.rb +133 -133
- data/spec/handlers/class_variable_handler_spec.rb +12 -12
- data/spec/handlers/constant_handler_spec.rb +112 -112
- data/spec/handlers/decorator_handler_methods_spec.rb +393 -393
- data/spec/handlers/dsl_handler_spec.rb +219 -219
- data/spec/handlers/examples/alias_handler_001.rb.txt +45 -45
- data/spec/handlers/examples/attribute_handler_001.rb.txt +31 -31
- data/spec/handlers/examples/class_condition_handler_001.rb.txt +68 -68
- data/spec/handlers/examples/class_handler_001.rb.txt +120 -120
- data/spec/handlers/examples/class_variable_handler_001.rb.txt +9 -9
- data/spec/handlers/examples/constant_handler_001.rb.txt +35 -35
- data/spec/handlers/examples/dsl_handler_001.rb.txt +154 -154
- data/spec/handlers/examples/exception_handler_001.rb.txt +58 -58
- data/spec/handlers/examples/extend_handler_001.rb.txt +15 -15
- data/spec/handlers/examples/method_condition_handler_001.rb.txt +9 -9
- data/spec/handlers/examples/method_handler_001.rb.txt +128 -128
- data/spec/handlers/examples/mixin_handler_001.rb.txt +37 -37
- data/spec/handlers/examples/module_handler_001.rb.txt +29 -29
- data/spec/handlers/examples/private_constant_handler_001.rb.txt +8 -8
- data/spec/handlers/examples/process_handler_001.rb.txt +11 -11
- data/spec/handlers/examples/visibility_handler_001.rb.txt +35 -35
- data/spec/handlers/examples/yield_handler_001.rb.txt +54 -54
- data/spec/handlers/exception_handler_spec.rb +49 -49
- data/spec/handlers/extend_handler_spec.rb +24 -24
- data/spec/handlers/legacy_base_spec.rb +128 -128
- data/spec/handlers/method_condition_handler_spec.rb +15 -15
- data/spec/handlers/method_handler_spec.rb +190 -190
- data/spec/handlers/mixin_handler_spec.rb +56 -56
- data/spec/handlers/module_function_handler_spec.rb +106 -106
- data/spec/handlers/module_handler_spec.rb +35 -35
- data/spec/handlers/private_class_method_handler_spec.rb +11 -11
- data/spec/handlers/private_constant_handler_spec.rb +25 -25
- data/spec/handlers/processor_spec.rb +35 -35
- data/spec/handlers/public_class_method_handler_spec.rb +11 -11
- data/spec/handlers/ruby/base_spec.rb +95 -95
- data/spec/handlers/ruby/legacy/base_spec.rb +84 -84
- data/spec/handlers/spec_helper.rb +33 -33
- data/spec/handlers/visibility_handler_spec.rb +44 -44
- data/spec/handlers/yield_handler_spec.rb +52 -52
- data/spec/i18n/locale_spec.rb +81 -81
- data/spec/i18n/message_spec.rb +52 -52
- data/spec/i18n/messages_spec.rb +67 -67
- data/spec/i18n/pot_generator_spec.rb +295 -295
- data/spec/i18n/text_spec.rb +184 -184
- data/spec/logging_spec.rb +44 -44
- data/spec/options_spec.rb +171 -171
- data/spec/parser/base_spec.rb +24 -24
- data/spec/parser/c_parser_spec.rb +236 -223
- data/spec/parser/examples/array.c.txt +6267 -6267
- data/spec/parser/examples/example1.rb.txt +7 -7
- data/spec/parser/examples/extrafile.c.txt +8 -8
- data/spec/parser/examples/file.c.txt +28 -0
- data/spec/parser/examples/multifile.c.txt +22 -22
- data/spec/parser/examples/namespace.cpp.txt +68 -68
- data/spec/parser/examples/override.c.txt +424 -424
- data/spec/parser/examples/parse_in_order_001.rb.txt +2 -2
- data/spec/parser/examples/parse_in_order_002.rb.txt +1 -1
- data/spec/parser/examples/tag_handler_001.rb.txt +7 -7
- data/spec/parser/ruby/ast_node_spec.rb +33 -33
- data/spec/parser/ruby/legacy/statement_list_spec.rb +299 -299
- data/spec/parser/ruby/legacy/token_list_spec.rb +79 -79
- data/spec/parser/ruby/ruby_parser_spec.rb +508 -508
- data/spec/parser/ruby/token_resolver_spec.rb +165 -165
- data/spec/parser/source_parser_spec.rb +727 -727
- data/spec/parser/tag_parsing_spec.rb +17 -17
- data/spec/rake/yardoc_task_spec.rb +118 -118
- data/spec/registry_spec.rb +463 -463
- data/spec/registry_store_spec.rb +316 -316
- data/spec/rubygems/doc_manager_spec.rb +112 -112
- data/spec/serializers/data/serialized_yardoc/checksums +1 -1
- data/spec/serializers/file_system_serializer_spec.rb +145 -145
- data/spec/serializers/spec_helper.rb +2 -2
- data/spec/serializers/yardoc_serializer_spec.rb +78 -78
- data/spec/server/adapter_spec.rb +39 -39
- data/spec/server/commands/base_spec.rb +91 -91
- data/spec/server/commands/library_command_spec.rb +39 -39
- data/spec/server/doc_server_helper_spec.rb +72 -72
- data/spec/server/doc_server_serializer_spec.rb +60 -60
- data/spec/server/rack_adapter_spec.rb +21 -21
- data/spec/server/router_spec.rb +123 -123
- data/spec/server/spec_helper.rb +22 -22
- data/spec/server/static_caching_spec.rb +47 -47
- data/spec/server/webrick_servlet_spec.rb +20 -20
- data/spec/server_spec.rb +19 -19
- data/spec/spec_helper.rb +212 -212
- data/spec/tags/default_factory_spec.rb +168 -168
- data/spec/tags/default_tag_spec.rb +11 -11
- data/spec/tags/directives_spec.rb +463 -463
- data/spec/tags/library_spec.rb +48 -48
- data/spec/tags/overload_tag_spec.rb +53 -53
- data/spec/tags/ref_tag_list_spec.rb +53 -53
- data/spec/tags/types_explainer_spec.rb +203 -203
- data/spec/templates/class_spec.rb +45 -45
- data/spec/templates/constant_spec.rb +41 -41
- data/spec/templates/engine_spec.rb +131 -131
- data/spec/templates/examples/class001.html +308 -308
- data/spec/templates/examples/class001.txt +36 -36
- data/spec/templates/examples/class002.html +39 -39
- data/spec/templates/examples/constant001.txt +24 -24
- data/spec/templates/examples/constant002.txt +6 -6
- data/spec/templates/examples/constant003.txt +10 -10
- data/spec/templates/examples/method001.html +137 -137
- data/spec/templates/examples/method001.txt +35 -35
- data/spec/templates/examples/method002.html +91 -91
- data/spec/templates/examples/method002.txt +20 -20
- data/spec/templates/examples/method003.html +165 -165
- data/spec/templates/examples/method003.txt +45 -45
- data/spec/templates/examples/method004.html +48 -48
- data/spec/templates/examples/method004.txt +10 -10
- data/spec/templates/examples/method005.html +105 -105
- data/spec/templates/examples/method005.txt +33 -33
- data/spec/templates/examples/method006.html +107 -107
- data/spec/templates/examples/method006.txt +20 -20
- data/spec/templates/examples/module001.dot +33 -33
- data/spec/templates/examples/module001.html +833 -833
- data/spec/templates/examples/module001.txt +33 -33
- data/spec/templates/examples/module002.html +341 -341
- data/spec/templates/examples/module003.html +202 -202
- data/spec/templates/examples/module004.html +394 -394
- data/spec/templates/examples/module005.html +81 -81
- data/spec/templates/examples/tag001.txt +82 -82
- data/spec/templates/helpers/base_helper_spec.rb +171 -171
- data/spec/templates/helpers/html_helper_spec.rb +668 -653
- data/spec/templates/helpers/html_syntax_highlight_helper_spec.rb +65 -65
- data/spec/templates/helpers/markup/rdoc_markup_spec.rb +84 -84
- data/spec/templates/helpers/markup_helper_spec.rb +136 -136
- data/spec/templates/helpers/method_helper_spec.rb +107 -107
- data/spec/templates/helpers/module_helper_spec.rb +35 -35
- data/spec/templates/helpers/shared_signature_examples.rb +126 -126
- data/spec/templates/helpers/text_helper_spec.rb +65 -65
- data/spec/templates/method_spec.rb +118 -118
- data/spec/templates/module_spec.rb +203 -203
- data/spec/templates/onefile_spec.rb +66 -66
- data/spec/templates/section_spec.rb +144 -144
- data/spec/templates/spec_helper.rb +76 -76
- data/spec/templates/tag_spec.rb +52 -52
- data/spec/templates/template_spec.rb +410 -410
- data/spec/verifier_spec.rb +106 -106
- data/templates/default/class/dot/setup.rb +7 -7
- data/templates/default/class/dot/superklass.erb +2 -2
- data/templates/default/class/html/constructor_details.erb +8 -8
- data/templates/default/class/html/setup.rb +2 -2
- data/templates/default/class/html/subclasses.erb +4 -4
- data/templates/default/class/setup.rb +36 -36
- data/templates/default/class/text/setup.rb +12 -12
- data/templates/default/class/text/subclasses.erb +5 -5
- data/templates/default/constant/text/header.erb +11 -11
- data/templates/default/constant/text/setup.rb +4 -4
- data/templates/default/docstring/html/abstract.erb +4 -4
- data/templates/default/docstring/html/deprecated.erb +1 -1
- data/templates/default/docstring/html/index.erb +5 -5
- data/templates/default/docstring/html/note.erb +6 -6
- data/templates/default/docstring/html/private.erb +4 -4
- data/templates/default/docstring/html/text.erb +1 -1
- data/templates/default/docstring/html/todo.erb +6 -6
- data/templates/default/docstring/setup.rb +52 -52
- data/templates/default/docstring/text/abstract.erb +2 -2
- data/templates/default/docstring/text/deprecated.erb +2 -2
- data/templates/default/docstring/text/index.erb +2 -2
- data/templates/default/docstring/text/note.erb +3 -3
- data/templates/default/docstring/text/private.erb +2 -2
- data/templates/default/docstring/text/text.erb +1 -1
- data/templates/default/docstring/text/todo.erb +3 -3
- data/templates/default/fulldoc/html/css/full_list.css +58 -58
- data/templates/default/fulldoc/html/css/style.css +496 -496
- data/templates/default/fulldoc/html/frames.erb +17 -17
- data/templates/default/fulldoc/html/full_list.erb +37 -37
- data/templates/default/fulldoc/html/full_list_class.erb +2 -2
- data/templates/default/fulldoc/html/full_list_file.erb +7 -7
- data/templates/default/fulldoc/html/full_list_method.erb +10 -10
- data/templates/default/fulldoc/html/js/app.js +292 -292
- data/templates/default/fulldoc/html/js/full_list.js +216 -216
- data/templates/default/fulldoc/html/js/jquery.js +3 -3
- data/templates/default/fulldoc/html/setup.rb +241 -241
- data/templates/default/layout/dot/header.erb +5 -5
- data/templates/default/layout/dot/setup.rb +15 -15
- data/templates/default/layout/html/breadcrumb.erb +11 -11
- data/templates/default/layout/html/files.erb +11 -11
- data/templates/default/layout/html/footer.erb +5 -5
- data/templates/default/layout/html/headers.erb +15 -15
- data/templates/default/layout/html/index.erb +2 -2
- data/templates/default/layout/html/layout.erb +23 -23
- data/templates/default/layout/html/listing.erb +4 -4
- data/templates/default/layout/html/objects.erb +32 -32
- data/templates/default/layout/html/script_setup.erb +4 -4
- data/templates/default/layout/html/search.erb +12 -12
- data/templates/default/layout/html/setup.rb +89 -89
- data/templates/default/method/html/header.erb +16 -16
- data/templates/default/method/setup.rb +4 -4
- data/templates/default/method_details/html/header.erb +2 -2
- data/templates/default/method_details/html/method_signature.erb +24 -24
- data/templates/default/method_details/html/source.erb +9 -9
- data/templates/default/method_details/setup.rb +11 -11
- data/templates/default/method_details/text/header.erb +10 -10
- data/templates/default/method_details/text/method_signature.erb +12 -12
- data/templates/default/method_details/text/setup.rb +11 -11
- data/templates/default/module/dot/child.erb +1 -1
- data/templates/default/module/dot/dependencies.erb +2 -2
- data/templates/default/module/dot/header.erb +6 -6
- data/templates/default/module/dot/info.erb +13 -13
- data/templates/default/module/dot/setup.rb +15 -15
- data/templates/default/module/html/attribute_details.erb +10 -10
- data/templates/default/module/html/attribute_summary.erb +8 -8
- data/templates/default/module/html/box_info.erb +43 -43
- data/templates/default/module/html/children.erb +8 -8
- data/templates/default/module/html/constant_summary.erb +17 -17
- data/templates/default/module/html/defines.erb +2 -2
- data/templates/default/module/html/header.erb +5 -5
- data/templates/default/module/html/inherited_attributes.erb +14 -14
- data/templates/default/module/html/inherited_constants.erb +8 -8
- data/templates/default/module/html/inherited_methods.erb +18 -18
- data/templates/default/module/html/item_summary.erb +40 -40
- data/templates/default/module/html/method_details_list.erb +9 -9
- data/templates/default/module/html/method_summary.erb +13 -13
- data/templates/default/module/html/methodmissing.erb +12 -12
- data/templates/default/module/setup.rb +167 -167
- data/templates/default/module/text/children.erb +9 -9
- data/templates/default/module/text/class_meths_list.erb +7 -7
- data/templates/default/module/text/extends.erb +7 -7
- data/templates/default/module/text/header.erb +7 -7
- data/templates/default/module/text/includes.erb +7 -7
- data/templates/default/module/text/instance_meths_list.erb +7 -7
- data/templates/default/module/text/setup.rb +13 -13
- data/templates/default/onefile/html/files.erb +4 -4
- data/templates/default/onefile/html/headers.erb +6 -6
- data/templates/default/onefile/html/layout.erb +17 -17
- data/templates/default/onefile/html/readme.erb +2 -2
- data/templates/default/onefile/html/setup.rb +62 -62
- data/templates/default/root/dot/child.erb +2 -2
- data/templates/default/root/dot/setup.rb +6 -6
- data/templates/default/root/html/setup.rb +2 -2
- data/templates/default/tags/html/example.erb +10 -10
- data/templates/default/tags/html/index.erb +2 -2
- data/templates/default/tags/html/option.erb +24 -24
- data/templates/default/tags/html/overload.erb +13 -13
- data/templates/default/tags/html/see.erb +7 -7
- data/templates/default/tags/html/tag.erb +20 -20
- data/templates/default/tags/setup.rb +57 -57
- data/templates/default/tags/text/example.erb +12 -12
- data/templates/default/tags/text/index.erb +1 -1
- data/templates/default/tags/text/option.erb +20 -20
- data/templates/default/tags/text/overload.erb +19 -19
- data/templates/default/tags/text/see.erb +11 -11
- data/templates/default/tags/text/tag.erb +13 -13
- data/templates/guide/class/html/setup.rb +2 -2
- data/templates/guide/docstring/html/setup.rb +2 -2
- data/templates/guide/fulldoc/html/css/style.css +108 -108
- data/templates/guide/fulldoc/html/js/app.js +33 -33
- data/templates/guide/fulldoc/html/setup.rb +74 -74
- data/templates/guide/layout/html/layout.erb +81 -81
- data/templates/guide/layout/html/setup.rb +25 -25
- data/templates/guide/method/html/header.erb +17 -17
- data/templates/guide/method/html/setup.rb +22 -22
- data/templates/guide/module/html/header.erb +6 -6
- data/templates/guide/module/html/method_list.erb +4 -4
- data/templates/guide/module/html/setup.rb +27 -27
- data/templates/guide/onefile/html/files.erb +4 -4
- data/templates/guide/onefile/html/setup.rb +6 -6
- data/templates/guide/onefile/html/toc.erb +3 -3
- data/templates/guide/tags/html/setup.rb +9 -9
- data/yard.gemspec +43 -43
- metadata +4 -4
@@ -1,21 +1,21 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module YARD::CodeObjects
|
3
|
-
register_separator NSEP, :module
|
4
|
-
|
5
|
-
# Represents a Ruby module.
|
6
|
-
class ModuleObject < NamespaceObject
|
7
|
-
# Returns the inheritance tree of mixins.
|
8
|
-
#
|
9
|
-
# @param [Boolean] include_mods if true, will include mixed in
|
10
|
-
# modules (which is likely what is wanted).
|
11
|
-
# @return [Array<NamespaceObject>] a list of namespace objects
|
12
|
-
def inheritance_tree(include_mods = false)
|
13
|
-
return [self] unless include_mods
|
14
|
-
[self] + mixins(:instance, :class).map do |m|
|
15
|
-
next if m == self
|
16
|
-
next m unless m.respond_to?(:inheritance_tree)
|
17
|
-
m.inheritance_tree(true)
|
18
|
-
end.compact.flatten.uniq
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module YARD::CodeObjects
|
3
|
+
register_separator NSEP, :module
|
4
|
+
|
5
|
+
# Represents a Ruby module.
|
6
|
+
class ModuleObject < NamespaceObject
|
7
|
+
# Returns the inheritance tree of mixins.
|
8
|
+
#
|
9
|
+
# @param [Boolean] include_mods if true, will include mixed in
|
10
|
+
# modules (which is likely what is wanted).
|
11
|
+
# @return [Array<NamespaceObject>] a list of namespace objects
|
12
|
+
def inheritance_tree(include_mods = false)
|
13
|
+
return [self] unless include_mods
|
14
|
+
[self] + mixins(:instance, :class).map do |m|
|
15
|
+
next if m == self
|
16
|
+
next m unless m.respond_to?(:inheritance_tree)
|
17
|
+
m.inheritance_tree(true)
|
18
|
+
end.compact.flatten.uniq
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -1,114 +1,114 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module YARD
|
3
|
-
module CodeObjects
|
4
|
-
# This module controls registration and accessing of namespace separators
|
5
|
-
# for {Registry} lookup.
|
6
|
-
#
|
7
|
-
# @since 0.9.1
|
8
|
-
module NamespaceMapper
|
9
|
-
# @!group Registering a Separator for a Namespace
|
10
|
-
|
11
|
-
# Registers a separator with an optional set of valid types that
|
12
|
-
# must follow the separator lexically.
|
13
|
-
#
|
14
|
-
# @param sep [String] the separator string for the namespace
|
15
|
-
# @param valid_types [Array<Symbol>] a list of object types that
|
16
|
-
# must follow the separator. If the list is empty, any type can
|
17
|
-
# follow the separator.
|
18
|
-
# @example Registering separators for a method object
|
19
|
-
# # Anything after a "#" denotes a method object
|
20
|
-
# register_separator "#", :method
|
21
|
-
# # Anything after a "." denotes a method object
|
22
|
-
# register_separator ".", :method
|
23
|
-
def register_separator(sep, *valid_types)
|
24
|
-
NamespaceMapper.invalidate
|
25
|
-
|
26
|
-
valid_types.each do |t|
|
27
|
-
NamespaceMapper.rev_map[t] ||= []
|
28
|
-
NamespaceMapper.rev_map[t] << sep
|
29
|
-
end
|
30
|
-
|
31
|
-
NamespaceMapper.map[sep] ||= []
|
32
|
-
NamespaceMapper.map[sep] += valid_types
|
33
|
-
end
|
34
|
-
|
35
|
-
# Clears the map of separators.
|
36
|
-
#
|
37
|
-
# @return [void]
|
38
|
-
def clear_separators
|
39
|
-
NamespaceMapper.invalidate
|
40
|
-
NamespaceMapper.map = {}
|
41
|
-
NamespaceMapper.rev_map = {}
|
42
|
-
end
|
43
|
-
|
44
|
-
# Gets or sets the default separator value to use when no
|
45
|
-
# separator for the namespace can be determined.
|
46
|
-
#
|
47
|
-
# @param value [String, nil] the default separator, or nil to return the
|
48
|
-
# value
|
49
|
-
# @example
|
50
|
-
# default_separator "::"
|
51
|
-
def default_separator(value = nil)
|
52
|
-
if value
|
53
|
-
NamespaceMapper.default_separator = Regexp.quote value
|
54
|
-
else
|
55
|
-
NamespaceMapper.default_separator
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
# @!group Separator and Type Lookup Helpers
|
60
|
-
|
61
|
-
# @return [Array<String>] all of the registered separators
|
62
|
-
def separators
|
63
|
-
NamespaceMapper.map.keys
|
64
|
-
end
|
65
|
-
|
66
|
-
# @return [Regexp] the regexp match of all separators
|
67
|
-
def separators_match
|
68
|
-
NamespaceMapper.map_match
|
69
|
-
end
|
70
|
-
|
71
|
-
# @param sep [String] the separator to return types for
|
72
|
-
# @return [Array<Symbol>] a list of types registered to a separator
|
73
|
-
def types_for_separator(sep)
|
74
|
-
NamespaceMapper.map[sep]
|
75
|
-
end
|
76
|
-
|
77
|
-
# @param type [String] the type to return separators for
|
78
|
-
# @return [Array<Symbol>] a list of separators registered to a type
|
79
|
-
def separators_for_type(type)
|
80
|
-
NamespaceMapper.rev_map[type]
|
81
|
-
end
|
82
|
-
|
83
|
-
# Internal methods to act as a singleton registry
|
84
|
-
class << self
|
85
|
-
# @!visibility private
|
86
|
-
|
87
|
-
# @return [Hash] a mapping of types to separators
|
88
|
-
def map
|
89
|
-
@map ||= {}
|
90
|
-
end
|
91
|
-
|
92
|
-
# @return [Hash] a reverse mapping of separators to types
|
93
|
-
def rev_map
|
94
|
-
@rev_map ||= {}
|
95
|
-
end
|
96
|
-
|
97
|
-
# Invalidates all separators
|
98
|
-
# @return [void]
|
99
|
-
def invalidate
|
100
|
-
@map_match = nil
|
101
|
-
end
|
102
|
-
|
103
|
-
# @return [Regexp] the full list of separators as a regexp match
|
104
|
-
def map_match
|
105
|
-
@map_match ||= @map.keys.map {|k| Regexp.quote k }.join('|')
|
106
|
-
end
|
107
|
-
|
108
|
-
# @return [String] the default separator when no separator can begin
|
109
|
-
# determined.
|
110
|
-
attr_accessor :default_separator
|
111
|
-
end
|
112
|
-
end
|
113
|
-
end
|
114
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module YARD
|
3
|
+
module CodeObjects
|
4
|
+
# This module controls registration and accessing of namespace separators
|
5
|
+
# for {Registry} lookup.
|
6
|
+
#
|
7
|
+
# @since 0.9.1
|
8
|
+
module NamespaceMapper
|
9
|
+
# @!group Registering a Separator for a Namespace
|
10
|
+
|
11
|
+
# Registers a separator with an optional set of valid types that
|
12
|
+
# must follow the separator lexically.
|
13
|
+
#
|
14
|
+
# @param sep [String] the separator string for the namespace
|
15
|
+
# @param valid_types [Array<Symbol>] a list of object types that
|
16
|
+
# must follow the separator. If the list is empty, any type can
|
17
|
+
# follow the separator.
|
18
|
+
# @example Registering separators for a method object
|
19
|
+
# # Anything after a "#" denotes a method object
|
20
|
+
# register_separator "#", :method
|
21
|
+
# # Anything after a "." denotes a method object
|
22
|
+
# register_separator ".", :method
|
23
|
+
def register_separator(sep, *valid_types)
|
24
|
+
NamespaceMapper.invalidate
|
25
|
+
|
26
|
+
valid_types.each do |t|
|
27
|
+
NamespaceMapper.rev_map[t] ||= []
|
28
|
+
NamespaceMapper.rev_map[t] << sep
|
29
|
+
end
|
30
|
+
|
31
|
+
NamespaceMapper.map[sep] ||= []
|
32
|
+
NamespaceMapper.map[sep] += valid_types
|
33
|
+
end
|
34
|
+
|
35
|
+
# Clears the map of separators.
|
36
|
+
#
|
37
|
+
# @return [void]
|
38
|
+
def clear_separators
|
39
|
+
NamespaceMapper.invalidate
|
40
|
+
NamespaceMapper.map = {}
|
41
|
+
NamespaceMapper.rev_map = {}
|
42
|
+
end
|
43
|
+
|
44
|
+
# Gets or sets the default separator value to use when no
|
45
|
+
# separator for the namespace can be determined.
|
46
|
+
#
|
47
|
+
# @param value [String, nil] the default separator, or nil to return the
|
48
|
+
# value
|
49
|
+
# @example
|
50
|
+
# default_separator "::"
|
51
|
+
def default_separator(value = nil)
|
52
|
+
if value
|
53
|
+
NamespaceMapper.default_separator = Regexp.quote value
|
54
|
+
else
|
55
|
+
NamespaceMapper.default_separator
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
# @!group Separator and Type Lookup Helpers
|
60
|
+
|
61
|
+
# @return [Array<String>] all of the registered separators
|
62
|
+
def separators
|
63
|
+
NamespaceMapper.map.keys
|
64
|
+
end
|
65
|
+
|
66
|
+
# @return [Regexp] the regexp match of all separators
|
67
|
+
def separators_match
|
68
|
+
NamespaceMapper.map_match
|
69
|
+
end
|
70
|
+
|
71
|
+
# @param sep [String] the separator to return types for
|
72
|
+
# @return [Array<Symbol>] a list of types registered to a separator
|
73
|
+
def types_for_separator(sep)
|
74
|
+
NamespaceMapper.map[sep]
|
75
|
+
end
|
76
|
+
|
77
|
+
# @param type [String] the type to return separators for
|
78
|
+
# @return [Array<Symbol>] a list of separators registered to a type
|
79
|
+
def separators_for_type(type)
|
80
|
+
NamespaceMapper.rev_map[type]
|
81
|
+
end
|
82
|
+
|
83
|
+
# Internal methods to act as a singleton registry
|
84
|
+
class << self
|
85
|
+
# @!visibility private
|
86
|
+
|
87
|
+
# @return [Hash] a mapping of types to separators
|
88
|
+
def map
|
89
|
+
@map ||= {}
|
90
|
+
end
|
91
|
+
|
92
|
+
# @return [Hash] a reverse mapping of separators to types
|
93
|
+
def rev_map
|
94
|
+
@rev_map ||= {}
|
95
|
+
end
|
96
|
+
|
97
|
+
# Invalidates all separators
|
98
|
+
# @return [void]
|
99
|
+
def invalidate
|
100
|
+
@map_match = nil
|
101
|
+
end
|
102
|
+
|
103
|
+
# @return [Regexp] the full list of separators as a regexp match
|
104
|
+
def map_match
|
105
|
+
@map_match ||= @map.keys.map {|k| Regexp.quote k }.join('|')
|
106
|
+
end
|
107
|
+
|
108
|
+
# @return [String] the default separator when no separator can begin
|
109
|
+
# determined.
|
110
|
+
attr_accessor :default_separator
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
@@ -1,200 +1,200 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module YARD::CodeObjects
|
3
|
-
register_separator NSEP, :namespace
|
4
|
-
default_separator NSEP
|
5
|
-
|
6
|
-
# A "namespace" is any object that can store other objects within itself.
|
7
|
-
# The two main Ruby objects that can act as namespaces are modules
|
8
|
-
# ({ModuleObject}) and classes ({ClassObject}).
|
9
|
-
class NamespaceObject < Base
|
10
|
-
# @return [Array<String>] a list of ordered group names inside the namespace
|
11
|
-
# @since 0.6.0
|
12
|
-
attr_accessor :groups
|
13
|
-
|
14
|
-
# The list of objects defined in this namespace
|
15
|
-
# @return [Array<Base>] a list of objects
|
16
|
-
attr_reader :children
|
17
|
-
|
18
|
-
# A hash containing two keys, class and instance, each containing
|
19
|
-
# the attribute name with a { :read, :write } hash for the read and
|
20
|
-
# write objects respectively.
|
21
|
-
#
|
22
|
-
# @example The attributes of an object
|
23
|
-
# >> Registry.at('YARD::Docstring').attributes
|
24
|
-
# => {
|
25
|
-
# :class => { },
|
26
|
-
# :instance => {
|
27
|
-
# :ref_tags => {
|
28
|
-
# :read => #<yardoc method YARD::Docstring#ref_tags>,
|
29
|
-
# :write => nil
|
30
|
-
# },
|
31
|
-
# :object => {
|
32
|
-
# :read => #<yardoc method YARD::Docstring#object>,
|
33
|
-
# :write => #<yardoc method YARD::Docstring#object=>
|
34
|
-
# },
|
35
|
-
# ...
|
36
|
-
# }
|
37
|
-
# }
|
38
|
-
# @return [Hash] a list of methods
|
39
|
-
attr_reader :attributes
|
40
|
-
|
41
|
-
# A hash containing two keys, :class and :instance, each containing
|
42
|
-
# a hash of objects and their alias names.
|
43
|
-
# @return [Hash] a list of methods
|
44
|
-
attr_reader :aliases
|
45
|
-
|
46
|
-
# Class mixins
|
47
|
-
# @return [Array<ModuleObject>] a list of mixins
|
48
|
-
attr_reader :class_mixins
|
49
|
-
|
50
|
-
# Instance mixins
|
51
|
-
# @return [Array<ModuleObject>] a list of mixins
|
52
|
-
attr_reader :instance_mixins
|
53
|
-
|
54
|
-
# Creates a new namespace object inside +namespace+ with +name+.
|
55
|
-
# @see Base#initialize
|
56
|
-
def initialize(namespace, name, *args, &block)
|
57
|
-
@children = CodeObjectList.new(self)
|
58
|
-
@class_mixins = CodeObjectList.new(self)
|
59
|
-
@instance_mixins = CodeObjectList.new(self)
|
60
|
-
@attributes = SymbolHash[:class => SymbolHash.new, :instance => SymbolHash.new]
|
61
|
-
@aliases = {}
|
62
|
-
@groups = []
|
63
|
-
super
|
64
|
-
end
|
65
|
-
|
66
|
-
# Only the class attributes
|
67
|
-
# @return [Hash] a list of method names and their read/write objects
|
68
|
-
# @see #attributes
|
69
|
-
def class_attributes
|
70
|
-
attributes[:class]
|
71
|
-
end
|
72
|
-
|
73
|
-
# Only the instance attributes
|
74
|
-
# @return [Hash] a list of method names and their read/write objects
|
75
|
-
# @see #attributes
|
76
|
-
def instance_attributes
|
77
|
-
attributes[:instance]
|
78
|
-
end
|
79
|
-
|
80
|
-
# Looks for a child that matches the attributes specified by +opts+.
|
81
|
-
#
|
82
|
-
# @example Finds a child by name and scope
|
83
|
-
# namespace.child(:name => :to_s, :scope => :instance)
|
84
|
-
# # => #<yardoc method MyClass#to_s>
|
85
|
-
# @return [Base, nil] the first matched child object, or nil
|
86
|
-
def child(opts = {})
|
87
|
-
if !opts.is_a?(Hash)
|
88
|
-
children.find {|o| o.name == opts.to_sym }
|
89
|
-
else
|
90
|
-
opts = SymbolHash[opts]
|
91
|
-
children.find do |obj|
|
92
|
-
opts.each do |meth, value|
|
93
|
-
break false unless value.is_a?(Array) ? value.include?(obj[meth]) : obj[meth] == value
|
94
|
-
end
|
95
|
-
end
|
96
|
-
end
|
97
|
-
end
|
98
|
-
|
99
|
-
# Returns all methods that match the attributes specified by +opts+. If
|
100
|
-
# no options are provided, returns all methods.
|
101
|
-
#
|
102
|
-
# @example Finds all private and protected class methods
|
103
|
-
# namespace.meths(:visibility => [:private, :protected], :scope => :class)
|
104
|
-
# # => [#<yardoc method MyClass.privmeth>, #<yardoc method MyClass.protmeth>]
|
105
|
-
# @option opts [Array<Symbol>, Symbol] :visibility ([:public, :private,
|
106
|
-
# :protected]) the visibility of the methods to list. Can be an array or
|
107
|
-
# single value.
|
108
|
-
# @option opts [Array<Symbol>, Symbol] :scope ([:class, :instance]) the
|
109
|
-
# scope of the methods to list. Can be an array or single value.
|
110
|
-
# @option opts [Boolean] :included (true) whether to include mixed in
|
111
|
-
# methods in the list.
|
112
|
-
# @return [Array<MethodObject>] a list of method objects
|
113
|
-
def meths(opts = {})
|
114
|
-
opts = SymbolHash[
|
115
|
-
:visibility => [:public, :private, :protected],
|
116
|
-
:scope => [:class, :instance],
|
117
|
-
:included => true
|
118
|
-
].update(opts)
|
119
|
-
|
120
|
-
opts[:visibility] = [opts[:visibility]].flatten
|
121
|
-
opts[:scope] = [opts[:scope]].flatten
|
122
|
-
|
123
|
-
ourmeths = children.select do |o|
|
124
|
-
o.is_a?(MethodObject) &&
|
125
|
-
opts[:visibility].include?(o.visibility) &&
|
126
|
-
opts[:scope].include?(o.scope)
|
127
|
-
end
|
128
|
-
|
129
|
-
ourmeths + (opts[:included] ? included_meths(opts) : [])
|
130
|
-
end
|
131
|
-
|
132
|
-
# Returns methods included from any mixins that match the attributes
|
133
|
-
# specified by +opts+. If no options are specified, returns all included
|
134
|
-
# methods.
|
135
|
-
#
|
136
|
-
# @option opts [Array<Symbol>, Symbol] :visibility ([:public, :private,
|
137
|
-
# :protected]) the visibility of the methods to list. Can be an array or
|
138
|
-
# single value.
|
139
|
-
# @option opts [Array<Symbol>, Symbol] :scope ([:class, :instance]) the
|
140
|
-
# scope of the methods to list. Can be an array or single value.
|
141
|
-
# @option opts [Boolean] :included (true) whether to include mixed in
|
142
|
-
# methods in the list.
|
143
|
-
# @see #meths
|
144
|
-
def included_meths(opts = {})
|
145
|
-
opts = SymbolHash[:scope => [:instance, :class]].update(opts)
|
146
|
-
[opts[:scope]].flatten.map do |scope|
|
147
|
-
mixins(scope).inject([]) do |list, mixin|
|
148
|
-
next list if mixin.is_a?(Proxy)
|
149
|
-
arr = mixin.meths(opts.merge(:scope => :instance)).reject do |o|
|
150
|
-
next false if opts[:all]
|
151
|
-
child(:name => o.name, :scope => scope) || list.find {|o2| o2.name == o.name }
|
152
|
-
end
|
153
|
-
arr.map! {|o| ExtendedMethodObject.new(o) } if scope == :class
|
154
|
-
list + arr
|
155
|
-
end
|
156
|
-
end.flatten
|
157
|
-
end
|
158
|
-
|
159
|
-
# Returns all constants in the namespace
|
160
|
-
#
|
161
|
-
# @option opts [Boolean] :included (true) whether or not to include
|
162
|
-
# mixed in constants in list
|
163
|
-
# @return [Array<ConstantObject>] a list of constant objects
|
164
|
-
def constants(opts = {})
|
165
|
-
opts = SymbolHash[:included => true].update(opts)
|
166
|
-
consts = children.select {|o| o.is_a? ConstantObject }
|
167
|
-
consts + (opts[:included] ? included_constants : [])
|
168
|
-
end
|
169
|
-
|
170
|
-
# Returns constants included from any mixins
|
171
|
-
# @return [Array<ConstantObject>] a list of constant objects
|
172
|
-
def included_constants
|
173
|
-
instance_mixins.inject([]) do |list, mixin|
|
174
|
-
if mixin.respond_to? :constants
|
175
|
-
list += mixin.constants.reject do |o|
|
176
|
-
child(:name => o.name) || list.find {|o2| o2.name == o.name }
|
177
|
-
end
|
178
|
-
else
|
179
|
-
list
|
180
|
-
end
|
181
|
-
end
|
182
|
-
end
|
183
|
-
|
184
|
-
# Returns class variables defined in this namespace.
|
185
|
-
# @return [Array<ClassVariableObject>] a list of class variable objects
|
186
|
-
def cvars
|
187
|
-
children.select {|o| o.is_a? ClassVariableObject }
|
188
|
-
end
|
189
|
-
|
190
|
-
# Returns for specific scopes. If no scopes are provided, returns all mixins.
|
191
|
-
# @param [Array<Symbol>] scopes a list of scopes (:class, :instance) to
|
192
|
-
# return mixins for. If this is empty, all scopes will be returned.
|
193
|
-
# @return [Array<ModuleObject>] a list of mixins
|
194
|
-
def mixins(*scopes)
|
195
|
-
return class_mixins if scopes == [:class]
|
196
|
-
return instance_mixins if scopes == [:instance]
|
197
|
-
class_mixins | instance_mixins
|
198
|
-
end
|
199
|
-
end
|
200
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module YARD::CodeObjects
|
3
|
+
register_separator NSEP, :namespace
|
4
|
+
default_separator NSEP
|
5
|
+
|
6
|
+
# A "namespace" is any object that can store other objects within itself.
|
7
|
+
# The two main Ruby objects that can act as namespaces are modules
|
8
|
+
# ({ModuleObject}) and classes ({ClassObject}).
|
9
|
+
class NamespaceObject < Base
|
10
|
+
# @return [Array<String>] a list of ordered group names inside the namespace
|
11
|
+
# @since 0.6.0
|
12
|
+
attr_accessor :groups
|
13
|
+
|
14
|
+
# The list of objects defined in this namespace
|
15
|
+
# @return [Array<Base>] a list of objects
|
16
|
+
attr_reader :children
|
17
|
+
|
18
|
+
# A hash containing two keys, class and instance, each containing
|
19
|
+
# the attribute name with a { :read, :write } hash for the read and
|
20
|
+
# write objects respectively.
|
21
|
+
#
|
22
|
+
# @example The attributes of an object
|
23
|
+
# >> Registry.at('YARD::Docstring').attributes
|
24
|
+
# => {
|
25
|
+
# :class => { },
|
26
|
+
# :instance => {
|
27
|
+
# :ref_tags => {
|
28
|
+
# :read => #<yardoc method YARD::Docstring#ref_tags>,
|
29
|
+
# :write => nil
|
30
|
+
# },
|
31
|
+
# :object => {
|
32
|
+
# :read => #<yardoc method YARD::Docstring#object>,
|
33
|
+
# :write => #<yardoc method YARD::Docstring#object=>
|
34
|
+
# },
|
35
|
+
# ...
|
36
|
+
# }
|
37
|
+
# }
|
38
|
+
# @return [Hash] a list of methods
|
39
|
+
attr_reader :attributes
|
40
|
+
|
41
|
+
# A hash containing two keys, :class and :instance, each containing
|
42
|
+
# a hash of objects and their alias names.
|
43
|
+
# @return [Hash] a list of methods
|
44
|
+
attr_reader :aliases
|
45
|
+
|
46
|
+
# Class mixins
|
47
|
+
# @return [Array<ModuleObject>] a list of mixins
|
48
|
+
attr_reader :class_mixins
|
49
|
+
|
50
|
+
# Instance mixins
|
51
|
+
# @return [Array<ModuleObject>] a list of mixins
|
52
|
+
attr_reader :instance_mixins
|
53
|
+
|
54
|
+
# Creates a new namespace object inside +namespace+ with +name+.
|
55
|
+
# @see Base#initialize
|
56
|
+
def initialize(namespace, name, *args, &block)
|
57
|
+
@children = CodeObjectList.new(self)
|
58
|
+
@class_mixins = CodeObjectList.new(self)
|
59
|
+
@instance_mixins = CodeObjectList.new(self)
|
60
|
+
@attributes = SymbolHash[:class => SymbolHash.new, :instance => SymbolHash.new]
|
61
|
+
@aliases = {}
|
62
|
+
@groups = []
|
63
|
+
super
|
64
|
+
end
|
65
|
+
|
66
|
+
# Only the class attributes
|
67
|
+
# @return [Hash] a list of method names and their read/write objects
|
68
|
+
# @see #attributes
|
69
|
+
def class_attributes
|
70
|
+
attributes[:class]
|
71
|
+
end
|
72
|
+
|
73
|
+
# Only the instance attributes
|
74
|
+
# @return [Hash] a list of method names and their read/write objects
|
75
|
+
# @see #attributes
|
76
|
+
def instance_attributes
|
77
|
+
attributes[:instance]
|
78
|
+
end
|
79
|
+
|
80
|
+
# Looks for a child that matches the attributes specified by +opts+.
|
81
|
+
#
|
82
|
+
# @example Finds a child by name and scope
|
83
|
+
# namespace.child(:name => :to_s, :scope => :instance)
|
84
|
+
# # => #<yardoc method MyClass#to_s>
|
85
|
+
# @return [Base, nil] the first matched child object, or nil
|
86
|
+
def child(opts = {})
|
87
|
+
if !opts.is_a?(Hash)
|
88
|
+
children.find {|o| o.name == opts.to_sym }
|
89
|
+
else
|
90
|
+
opts = SymbolHash[opts]
|
91
|
+
children.find do |obj|
|
92
|
+
opts.each do |meth, value|
|
93
|
+
break false unless value.is_a?(Array) ? value.include?(obj[meth]) : obj[meth] == value
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
# Returns all methods that match the attributes specified by +opts+. If
|
100
|
+
# no options are provided, returns all methods.
|
101
|
+
#
|
102
|
+
# @example Finds all private and protected class methods
|
103
|
+
# namespace.meths(:visibility => [:private, :protected], :scope => :class)
|
104
|
+
# # => [#<yardoc method MyClass.privmeth>, #<yardoc method MyClass.protmeth>]
|
105
|
+
# @option opts [Array<Symbol>, Symbol] :visibility ([:public, :private,
|
106
|
+
# :protected]) the visibility of the methods to list. Can be an array or
|
107
|
+
# single value.
|
108
|
+
# @option opts [Array<Symbol>, Symbol] :scope ([:class, :instance]) the
|
109
|
+
# scope of the methods to list. Can be an array or single value.
|
110
|
+
# @option opts [Boolean] :included (true) whether to include mixed in
|
111
|
+
# methods in the list.
|
112
|
+
# @return [Array<MethodObject>] a list of method objects
|
113
|
+
def meths(opts = {})
|
114
|
+
opts = SymbolHash[
|
115
|
+
:visibility => [:public, :private, :protected],
|
116
|
+
:scope => [:class, :instance],
|
117
|
+
:included => true
|
118
|
+
].update(opts)
|
119
|
+
|
120
|
+
opts[:visibility] = [opts[:visibility]].flatten
|
121
|
+
opts[:scope] = [opts[:scope]].flatten
|
122
|
+
|
123
|
+
ourmeths = children.select do |o|
|
124
|
+
o.is_a?(MethodObject) &&
|
125
|
+
opts[:visibility].include?(o.visibility) &&
|
126
|
+
opts[:scope].include?(o.scope)
|
127
|
+
end
|
128
|
+
|
129
|
+
ourmeths + (opts[:included] ? included_meths(opts) : [])
|
130
|
+
end
|
131
|
+
|
132
|
+
# Returns methods included from any mixins that match the attributes
|
133
|
+
# specified by +opts+. If no options are specified, returns all included
|
134
|
+
# methods.
|
135
|
+
#
|
136
|
+
# @option opts [Array<Symbol>, Symbol] :visibility ([:public, :private,
|
137
|
+
# :protected]) the visibility of the methods to list. Can be an array or
|
138
|
+
# single value.
|
139
|
+
# @option opts [Array<Symbol>, Symbol] :scope ([:class, :instance]) the
|
140
|
+
# scope of the methods to list. Can be an array or single value.
|
141
|
+
# @option opts [Boolean] :included (true) whether to include mixed in
|
142
|
+
# methods in the list.
|
143
|
+
# @see #meths
|
144
|
+
def included_meths(opts = {})
|
145
|
+
opts = SymbolHash[:scope => [:instance, :class]].update(opts)
|
146
|
+
[opts[:scope]].flatten.map do |scope|
|
147
|
+
mixins(scope).inject([]) do |list, mixin|
|
148
|
+
next list if mixin.is_a?(Proxy)
|
149
|
+
arr = mixin.meths(opts.merge(:scope => :instance)).reject do |o|
|
150
|
+
next false if opts[:all]
|
151
|
+
child(:name => o.name, :scope => scope) || list.find {|o2| o2.name == o.name }
|
152
|
+
end
|
153
|
+
arr.map! {|o| ExtendedMethodObject.new(o) } if scope == :class
|
154
|
+
list + arr
|
155
|
+
end
|
156
|
+
end.flatten
|
157
|
+
end
|
158
|
+
|
159
|
+
# Returns all constants in the namespace
|
160
|
+
#
|
161
|
+
# @option opts [Boolean] :included (true) whether or not to include
|
162
|
+
# mixed in constants in list
|
163
|
+
# @return [Array<ConstantObject>] a list of constant objects
|
164
|
+
def constants(opts = {})
|
165
|
+
opts = SymbolHash[:included => true].update(opts)
|
166
|
+
consts = children.select {|o| o.is_a? ConstantObject }
|
167
|
+
consts + (opts[:included] ? included_constants : [])
|
168
|
+
end
|
169
|
+
|
170
|
+
# Returns constants included from any mixins
|
171
|
+
# @return [Array<ConstantObject>] a list of constant objects
|
172
|
+
def included_constants
|
173
|
+
instance_mixins.inject([]) do |list, mixin|
|
174
|
+
if mixin.respond_to? :constants
|
175
|
+
list += mixin.constants.reject do |o|
|
176
|
+
child(:name => o.name) || list.find {|o2| o2.name == o.name }
|
177
|
+
end
|
178
|
+
else
|
179
|
+
list
|
180
|
+
end
|
181
|
+
end
|
182
|
+
end
|
183
|
+
|
184
|
+
# Returns class variables defined in this namespace.
|
185
|
+
# @return [Array<ClassVariableObject>] a list of class variable objects
|
186
|
+
def cvars
|
187
|
+
children.select {|o| o.is_a? ClassVariableObject }
|
188
|
+
end
|
189
|
+
|
190
|
+
# Returns for specific scopes. If no scopes are provided, returns all mixins.
|
191
|
+
# @param [Array<Symbol>] scopes a list of scopes (:class, :instance) to
|
192
|
+
# return mixins for. If this is empty, all scopes will be returned.
|
193
|
+
# @return [Array<ModuleObject>] a list of mixins
|
194
|
+
def mixins(*scopes)
|
195
|
+
return class_mixins if scopes == [:class]
|
196
|
+
return instance_mixins if scopes == [:instance]
|
197
|
+
class_mixins | instance_mixins
|
198
|
+
end
|
199
|
+
end
|
200
|
+
end
|