yard 0.9.18 → 0.9.19
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of yard might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.yardopts +26 -26
- data/CHANGELOG.md +742 -728
- data/LEGAL +66 -66
- data/LICENSE +22 -22
- data/README.md +328 -328
- data/Rakefile +42 -53
- 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 +308 -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 +789 -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 -615
- 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 +134 -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 +11 -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 -386
- 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 +212 -211
- data/lib/yard/handlers/c/init_handler.rb +20 -20
- data/lib/yard/handlers/c/method_handler.rb +45 -45
- 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/common/method_handler.rb +19 -0
- 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 -96
- 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 +114 -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 -646
- 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 +6 -6
- 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 +896 -862
- data/spec/cli/yri_spec.rb +101 -101
- data/spec/code_objects/base_spec.rb +470 -470
- 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 +9 -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 -280
- data/spec/docstring_spec.rb +373 -373
- data/spec/examples.txt +1883 -1875
- 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 +327 -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 -236
- 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 -28
- 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 +687 -668
- 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 +303 -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 -3
@@ -1,146 +1,146 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module YARD::CodeObjects
|
3
|
-
register_separator NSEP, :class
|
4
|
-
|
5
|
-
# A ClassObject represents a Ruby class in source code. It is a {ModuleObject}
|
6
|
-
# with extra inheritance semantics through the superclass.
|
7
|
-
class ClassObject < NamespaceObject
|
8
|
-
# The {ClassObject} that this class object inherits from in Ruby source.
|
9
|
-
# @return [ClassObject] a class object that is the superclass of this one
|
10
|
-
attr_reader :superclass
|
11
|
-
|
12
|
-
# Creates a new class object in +namespace+ with +name+
|
13
|
-
#
|
14
|
-
# @see Base.new
|
15
|
-
def initialize(namespace, name, *args, &block)
|
16
|
-
super
|
17
|
-
|
18
|
-
if is_exception?
|
19
|
-
self.superclass ||= "::Exception" unless P(namespace, name) == P(:Exception)
|
20
|
-
else
|
21
|
-
case P(namespace, name).path
|
22
|
-
when "BasicObject"
|
23
|
-
nil
|
24
|
-
when "Object"
|
25
|
-
self.superclass ||= "::BasicObject"
|
26
|
-
else
|
27
|
-
self.superclass ||= "::Object"
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
# Whether or not the class is a Ruby Exception
|
33
|
-
#
|
34
|
-
# @return [Boolean] whether the object represents a Ruby exception
|
35
|
-
def is_exception?
|
36
|
-
inheritance_tree.reverse.any? {|o| BUILTIN_EXCEPTIONS_HASH.key? o.path }
|
37
|
-
end
|
38
|
-
|
39
|
-
# Returns the inheritance tree of the object including self.
|
40
|
-
#
|
41
|
-
# @param [Boolean] include_mods whether or not to include mixins in the
|
42
|
-
# inheritance tree.
|
43
|
-
# @return [Array<NamespaceObject>] the list of code objects that make up
|
44
|
-
# the inheritance tree.
|
45
|
-
def inheritance_tree(include_mods = false)
|
46
|
-
list = (include_mods ? mixins(:instance, :class) : [])
|
47
|
-
if superclass.is_a?(Proxy) || superclass.respond_to?(:inheritance_tree)
|
48
|
-
list += [superclass] unless superclass == P(:Object) || superclass == P(:BasicObject)
|
49
|
-
end
|
50
|
-
[self] + list.map do |m|
|
51
|
-
next m if m == self
|
52
|
-
next m unless m.respond_to?(:inheritance_tree)
|
53
|
-
m.inheritance_tree(include_mods)
|
54
|
-
end.flatten.uniq
|
55
|
-
end
|
56
|
-
|
57
|
-
# Returns the list of methods matching the options hash. Returns
|
58
|
-
# all methods if hash is empty.
|
59
|
-
#
|
60
|
-
# @param [Hash] opts the options hash to match
|
61
|
-
# @option opts [Boolean] :inherited (true) whether inherited methods should be
|
62
|
-
# included in the list
|
63
|
-
# @option opts [Boolean] :included (true) whether mixed in methods should be
|
64
|
-
# included in the list
|
65
|
-
# @return [Array<MethodObject>] the list of methods that matched
|
66
|
-
def meths(opts = {})
|
67
|
-
opts = SymbolHash[:inherited => true].update(opts)
|
68
|
-
list = super(opts)
|
69
|
-
list += inherited_meths(opts).reject do |o|
|
70
|
-
next(false) if opts[:all]
|
71
|
-
list.find {|o2| o2.name == o.name && o2.scope == o.scope }
|
72
|
-
end if opts[:inherited]
|
73
|
-
list
|
74
|
-
end
|
75
|
-
|
76
|
-
# Returns only the methods that were inherited.
|
77
|
-
#
|
78
|
-
# @return [Array<MethodObject>] the list of inherited method objects
|
79
|
-
def inherited_meths(opts = {})
|
80
|
-
inheritance_tree[1..-1].inject([]) do |list, superclass|
|
81
|
-
if superclass.is_a?(Proxy)
|
82
|
-
list
|
83
|
-
else
|
84
|
-
list += superclass.meths(opts).reject do |o|
|
85
|
-
next(false) if opts[:all]
|
86
|
-
child(:name => o.name, :scope => o.scope) ||
|
87
|
-
list.find {|o2| o2.name == o.name && o2.scope == o.scope }
|
88
|
-
end
|
89
|
-
end
|
90
|
-
end
|
91
|
-
end
|
92
|
-
|
93
|
-
# Returns the list of constants matching the options hash.
|
94
|
-
#
|
95
|
-
# @param [Hash] opts the options hash to match
|
96
|
-
# @option opts [Boolean] :inherited (true) whether inherited constant should be
|
97
|
-
# included in the list
|
98
|
-
# @option opts [Boolean] :included (true) whether mixed in constant should be
|
99
|
-
# included in the list
|
100
|
-
# @return [Array<ConstantObject>] the list of constant that matched
|
101
|
-
def constants(opts = {})
|
102
|
-
opts = SymbolHash[:inherited => true].update(opts)
|
103
|
-
super(opts) + (opts[:inherited] ? inherited_constants : [])
|
104
|
-
end
|
105
|
-
|
106
|
-
# Returns only the constants that were inherited.
|
107
|
-
#
|
108
|
-
# @return [Array<ConstantObject>] the list of inherited constant objects
|
109
|
-
def inherited_constants
|
110
|
-
inheritance_tree[1..-1].inject([]) do |list, superclass|
|
111
|
-
if superclass.is_a?(Proxy)
|
112
|
-
list
|
113
|
-
else
|
114
|
-
list += superclass.constants.reject do |o|
|
115
|
-
child(:name => o.name) || list.find {|o2| o2.name == o.name }
|
116
|
-
end
|
117
|
-
end
|
118
|
-
end
|
119
|
-
end
|
120
|
-
|
121
|
-
# Sets the superclass of the object
|
122
|
-
#
|
123
|
-
# @param [Base, Proxy, String, Symbol, nil] object the superclass value
|
124
|
-
# @return [void]
|
125
|
-
def superclass=(object)
|
126
|
-
case object
|
127
|
-
when Base, Proxy, NilClass
|
128
|
-
@superclass = object
|
129
|
-
when String, Symbol
|
130
|
-
@superclass = Proxy.new(namespace, object)
|
131
|
-
else
|
132
|
-
raise ArgumentError, "superclass must be CodeObject, Proxy, String or Symbol"
|
133
|
-
end
|
134
|
-
|
135
|
-
if name == @superclass.name && namespace != YARD::Registry.root && !object.is_a?(Base)
|
136
|
-
@superclass = Proxy.new(namespace.namespace, object)
|
137
|
-
end
|
138
|
-
|
139
|
-
if @superclass == self
|
140
|
-
msg = "superclass #{@superclass.inspect} cannot be the same as the declared class #{inspect}"
|
141
|
-
@superclass = P("::Object")
|
142
|
-
raise ArgumentError, msg
|
143
|
-
end
|
144
|
-
end
|
145
|
-
end
|
146
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module YARD::CodeObjects
|
3
|
+
register_separator NSEP, :class
|
4
|
+
|
5
|
+
# A ClassObject represents a Ruby class in source code. It is a {ModuleObject}
|
6
|
+
# with extra inheritance semantics through the superclass.
|
7
|
+
class ClassObject < NamespaceObject
|
8
|
+
# The {ClassObject} that this class object inherits from in Ruby source.
|
9
|
+
# @return [ClassObject] a class object that is the superclass of this one
|
10
|
+
attr_reader :superclass
|
11
|
+
|
12
|
+
# Creates a new class object in +namespace+ with +name+
|
13
|
+
#
|
14
|
+
# @see Base.new
|
15
|
+
def initialize(namespace, name, *args, &block)
|
16
|
+
super
|
17
|
+
|
18
|
+
if is_exception?
|
19
|
+
self.superclass ||= "::Exception" unless P(namespace, name) == P(:Exception)
|
20
|
+
else
|
21
|
+
case P(namespace, name).path
|
22
|
+
when "BasicObject"
|
23
|
+
nil
|
24
|
+
when "Object"
|
25
|
+
self.superclass ||= "::BasicObject"
|
26
|
+
else
|
27
|
+
self.superclass ||= "::Object"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
# Whether or not the class is a Ruby Exception
|
33
|
+
#
|
34
|
+
# @return [Boolean] whether the object represents a Ruby exception
|
35
|
+
def is_exception?
|
36
|
+
inheritance_tree.reverse.any? {|o| BUILTIN_EXCEPTIONS_HASH.key? o.path }
|
37
|
+
end
|
38
|
+
|
39
|
+
# Returns the inheritance tree of the object including self.
|
40
|
+
#
|
41
|
+
# @param [Boolean] include_mods whether or not to include mixins in the
|
42
|
+
# inheritance tree.
|
43
|
+
# @return [Array<NamespaceObject>] the list of code objects that make up
|
44
|
+
# the inheritance tree.
|
45
|
+
def inheritance_tree(include_mods = false)
|
46
|
+
list = (include_mods ? mixins(:instance, :class) : [])
|
47
|
+
if superclass.is_a?(Proxy) || superclass.respond_to?(:inheritance_tree)
|
48
|
+
list += [superclass] unless superclass == P(:Object) || superclass == P(:BasicObject)
|
49
|
+
end
|
50
|
+
[self] + list.map do |m|
|
51
|
+
next m if m == self
|
52
|
+
next m unless m.respond_to?(:inheritance_tree)
|
53
|
+
m.inheritance_tree(include_mods)
|
54
|
+
end.flatten.uniq
|
55
|
+
end
|
56
|
+
|
57
|
+
# Returns the list of methods matching the options hash. Returns
|
58
|
+
# all methods if hash is empty.
|
59
|
+
#
|
60
|
+
# @param [Hash] opts the options hash to match
|
61
|
+
# @option opts [Boolean] :inherited (true) whether inherited methods should be
|
62
|
+
# included in the list
|
63
|
+
# @option opts [Boolean] :included (true) whether mixed in methods should be
|
64
|
+
# included in the list
|
65
|
+
# @return [Array<MethodObject>] the list of methods that matched
|
66
|
+
def meths(opts = {})
|
67
|
+
opts = SymbolHash[:inherited => true].update(opts)
|
68
|
+
list = super(opts)
|
69
|
+
list += inherited_meths(opts).reject do |o|
|
70
|
+
next(false) if opts[:all]
|
71
|
+
list.find {|o2| o2.name == o.name && o2.scope == o.scope }
|
72
|
+
end if opts[:inherited]
|
73
|
+
list
|
74
|
+
end
|
75
|
+
|
76
|
+
# Returns only the methods that were inherited.
|
77
|
+
#
|
78
|
+
# @return [Array<MethodObject>] the list of inherited method objects
|
79
|
+
def inherited_meths(opts = {})
|
80
|
+
inheritance_tree[1..-1].inject([]) do |list, superclass|
|
81
|
+
if superclass.is_a?(Proxy)
|
82
|
+
list
|
83
|
+
else
|
84
|
+
list += superclass.meths(opts).reject do |o|
|
85
|
+
next(false) if opts[:all]
|
86
|
+
child(:name => o.name, :scope => o.scope) ||
|
87
|
+
list.find {|o2| o2.name == o.name && o2.scope == o.scope }
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
# Returns the list of constants matching the options hash.
|
94
|
+
#
|
95
|
+
# @param [Hash] opts the options hash to match
|
96
|
+
# @option opts [Boolean] :inherited (true) whether inherited constant should be
|
97
|
+
# included in the list
|
98
|
+
# @option opts [Boolean] :included (true) whether mixed in constant should be
|
99
|
+
# included in the list
|
100
|
+
# @return [Array<ConstantObject>] the list of constant that matched
|
101
|
+
def constants(opts = {})
|
102
|
+
opts = SymbolHash[:inherited => true].update(opts)
|
103
|
+
super(opts) + (opts[:inherited] ? inherited_constants : [])
|
104
|
+
end
|
105
|
+
|
106
|
+
# Returns only the constants that were inherited.
|
107
|
+
#
|
108
|
+
# @return [Array<ConstantObject>] the list of inherited constant objects
|
109
|
+
def inherited_constants
|
110
|
+
inheritance_tree[1..-1].inject([]) do |list, superclass|
|
111
|
+
if superclass.is_a?(Proxy)
|
112
|
+
list
|
113
|
+
else
|
114
|
+
list += superclass.constants.reject do |o|
|
115
|
+
child(:name => o.name) || list.find {|o2| o2.name == o.name }
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
# Sets the superclass of the object
|
122
|
+
#
|
123
|
+
# @param [Base, Proxy, String, Symbol, nil] object the superclass value
|
124
|
+
# @return [void]
|
125
|
+
def superclass=(object)
|
126
|
+
case object
|
127
|
+
when Base, Proxy, NilClass
|
128
|
+
@superclass = object
|
129
|
+
when String, Symbol
|
130
|
+
@superclass = Proxy.new(namespace, object)
|
131
|
+
else
|
132
|
+
raise ArgumentError, "superclass must be CodeObject, Proxy, String or Symbol"
|
133
|
+
end
|
134
|
+
|
135
|
+
if name == @superclass.name && namespace != YARD::Registry.root && !object.is_a?(Base)
|
136
|
+
@superclass = Proxy.new(namespace.namespace, object)
|
137
|
+
end
|
138
|
+
|
139
|
+
if @superclass == self
|
140
|
+
msg = "superclass #{@superclass.inspect} cannot be the same as the declared class #{inspect}"
|
141
|
+
@superclass = P("::Object")
|
142
|
+
raise ArgumentError, msg
|
143
|
+
end
|
144
|
+
end
|
145
|
+
end
|
146
|
+
end
|
@@ -1,11 +1,11 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module YARD::CodeObjects
|
3
|
-
register_separator NSEP, :class_variable
|
4
|
-
|
5
|
-
# Represents a class variable inside a namespace. The path is expressed
|
6
|
-
# in the form "A::B::@@classvariable"
|
7
|
-
class ClassVariableObject < Base
|
8
|
-
# @return [String] the class variable's value
|
9
|
-
attr_accessor :value
|
10
|
-
end
|
11
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module YARD::CodeObjects
|
3
|
+
register_separator NSEP, :class_variable
|
4
|
+
|
5
|
+
# Represents a class variable inside a namespace. The path is expressed
|
6
|
+
# in the form "A::B::@@classvariable"
|
7
|
+
class ClassVariableObject < Base
|
8
|
+
# @return [String] the class variable's value
|
9
|
+
attr_accessor :value
|
10
|
+
end
|
11
|
+
end
|
@@ -1,16 +1,16 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module YARD::CodeObjects
|
3
|
-
register_separator NSEP, :constant
|
4
|
-
|
5
|
-
# A +ConstantObject+ represents a Ruby constant (not a module or class).
|
6
|
-
# To access the constant's (source code) value, use {#value}.
|
7
|
-
class ConstantObject < Base
|
8
|
-
# The source code representing the constant's value
|
9
|
-
# @return [String] the value the constant is set to
|
10
|
-
attr_reader :value
|
11
|
-
|
12
|
-
def value=(value)
|
13
|
-
@value = format_source(value)
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module YARD::CodeObjects
|
3
|
+
register_separator NSEP, :constant
|
4
|
+
|
5
|
+
# A +ConstantObject+ represents a Ruby constant (not a module or class).
|
6
|
+
# To access the constant's (source code) value, use {#value}.
|
7
|
+
class ConstantObject < Base
|
8
|
+
# The source code representing the constant's value
|
9
|
+
# @return [String] the value the constant is set to
|
10
|
+
attr_reader :value
|
11
|
+
|
12
|
+
def value=(value)
|
13
|
+
@value = format_source(value)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -1,24 +1,24 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module YARD::CodeObjects
|
3
|
-
# Represents an instance method of a module that was mixed into the class
|
4
|
-
# scope of another namespace.
|
5
|
-
#
|
6
|
-
# @see MethodObject
|
7
|
-
class ExtendedMethodObject
|
8
|
-
instance_methods.each {|m| undef_method(m) unless m =~ /^__/ || m.to_sym == :object_id }
|
9
|
-
|
10
|
-
# @return [Symbol] always +:class+
|
11
|
-
def scope; :class end
|
12
|
-
|
13
|
-
# Sets up a delegate for {MethodObject} obj.
|
14
|
-
#
|
15
|
-
# @param [MethodObject] obj the instance method to treat as a mixed in
|
16
|
-
# class method on another namespace.
|
17
|
-
def initialize(obj) @del = obj end
|
18
|
-
|
19
|
-
# Sends all methods to the {MethodObject} assigned in {#initialize}
|
20
|
-
# @see #initialize
|
21
|
-
# @see MethodObject
|
22
|
-
def method_missing(sym, *args, &block) @del.__send__(sym, *args, &block) end
|
23
|
-
end
|
24
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module YARD::CodeObjects
|
3
|
+
# Represents an instance method of a module that was mixed into the class
|
4
|
+
# scope of another namespace.
|
5
|
+
#
|
6
|
+
# @see MethodObject
|
7
|
+
class ExtendedMethodObject
|
8
|
+
instance_methods.each {|m| undef_method(m) unless m =~ /^__/ || m.to_sym == :object_id }
|
9
|
+
|
10
|
+
# @return [Symbol] always +:class+
|
11
|
+
def scope; :class end
|
12
|
+
|
13
|
+
# Sets up a delegate for {MethodObject} obj.
|
14
|
+
#
|
15
|
+
# @param [MethodObject] obj the instance method to treat as a mixed in
|
16
|
+
# class method on another namespace.
|
17
|
+
def initialize(obj) @del = obj end
|
18
|
+
|
19
|
+
# Sends all methods to the {MethodObject} assigned in {#initialize}
|
20
|
+
# @see #initialize
|
21
|
+
# @see MethodObject
|
22
|
+
def method_missing(sym, *args, &block) @del.__send__(sym, *args, &block) end
|
23
|
+
end
|
24
|
+
end
|
@@ -1,131 +1,134 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module YARD::CodeObjects
|
3
|
-
# An ExtraFileObject represents an extra documentation file (README or other
|
4
|
-
# file). It is not strictly a CodeObject (does not inherit from `Base`) although
|
5
|
-
# it implements `path`, `name` and `type`, and therefore should be structurally
|
6
|
-
# compatible with most CodeObject interfaces.
|
7
|
-
class ExtraFileObject
|
8
|
-
attr_accessor :filename
|
9
|
-
attr_writer :attributes
|
10
|
-
attr_accessor :name
|
11
|
-
# @since 0.8.3
|
12
|
-
attr_reader :locale
|
13
|
-
|
14
|
-
# Creates a new extra file object.
|
15
|
-
# @param [String] filename the location on disk of the file
|
16
|
-
# @param [String] contents the file contents. If not set, the contents
|
17
|
-
# will be read from disk using the +filename+.
|
18
|
-
def initialize(filename, contents = nil)
|
19
|
-
self.filename = filename
|
20
|
-
self.name = File.basename(filename).gsub(/\.[^.]+$/, '')
|
21
|
-
self.attributes = SymbolHash.new(false)
|
22
|
-
@original_contents = contents
|
23
|
-
@parsed = false
|
24
|
-
@locale = nil
|
25
|
-
ensure_parsed
|
26
|
-
end
|
27
|
-
|
28
|
-
alias path name
|
29
|
-
|
30
|
-
def attributes
|
31
|
-
ensure_parsed
|
32
|
-
@attributes
|
33
|
-
end
|
34
|
-
|
35
|
-
def title
|
36
|
-
attributes[:title] || name
|
37
|
-
end
|
38
|
-
|
39
|
-
def contents
|
40
|
-
ensure_parsed
|
41
|
-
@contents
|
42
|
-
end
|
43
|
-
|
44
|
-
def contents=(contents)
|
45
|
-
@original_contents = contents
|
46
|
-
@parsed = false
|
47
|
-
end
|
48
|
-
|
49
|
-
# @param [String] locale the locale name to be translated.
|
50
|
-
# @return [void]
|
51
|
-
# @since 0.8.3
|
52
|
-
def locale=(locale)
|
53
|
-
@locale = locale
|
54
|
-
@parsed = false
|
55
|
-
end
|
56
|
-
|
57
|
-
def inspect
|
58
|
-
"#<yardoc #{type} #{filename} attrs=#{attributes.inspect}>"
|
59
|
-
end
|
60
|
-
alias to_s inspect
|
61
|
-
|
62
|
-
def type; :extra_file end
|
63
|
-
|
64
|
-
def ==(other)
|
65
|
-
return false unless self.class === other
|
66
|
-
other.filename == filename
|
67
|
-
end
|
68
|
-
alias eql? ==
|
69
|
-
alias equal? ==
|
70
|
-
def hash; filename.hash end
|
71
|
-
|
72
|
-
private
|
73
|
-
|
74
|
-
def ensure_parsed
|
75
|
-
return if @parsed
|
76
|
-
@parsed = true
|
77
|
-
@contents = parse_contents(@original_contents || File.read(@filename))
|
78
|
-
end
|
79
|
-
|
80
|
-
# @param [String] data the file contents
|
81
|
-
def parse_contents(data)
|
82
|
-
retried = false
|
83
|
-
cut_index = 0
|
84
|
-
data = translate(data)
|
85
|
-
data = data.split("\n")
|
86
|
-
data.each_with_index do |line, index|
|
87
|
-
case line
|
88
|
-
when /^#!(\S+)\s*$/
|
89
|
-
if index == 0
|
90
|
-
attributes[:markup] = $1
|
91
|
-
else
|
92
|
-
cut_index = index
|
93
|
-
break
|
94
|
-
end
|
95
|
-
when /^\s*#\s*@(\S+)\s*(.+?)\s*$/
|
96
|
-
attributes[$1] = $2
|
97
|
-
when /^\s*<!--\s*$/, /^\s*-->\s*$/
|
98
|
-
# Ignore HTML comments
|
99
|
-
else
|
100
|
-
cut_index = index
|
101
|
-
break
|
102
|
-
end
|
103
|
-
end
|
104
|
-
data = data[cut_index..-1] if cut_index > 0
|
105
|
-
contents = data.join("\n")
|
106
|
-
|
107
|
-
if contents.respond_to?(:force_encoding) && attributes[:encoding]
|
108
|
-
begin
|
109
|
-
contents.force_encoding(attributes[:encoding])
|
110
|
-
rescue ArgumentError
|
111
|
-
log.warn "Invalid encoding `#{attributes[:encoding]}' in #{filename}"
|
112
|
-
end
|
113
|
-
end
|
114
|
-
contents
|
115
|
-
rescue ArgumentError => e
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module YARD::CodeObjects
|
3
|
+
# An ExtraFileObject represents an extra documentation file (README or other
|
4
|
+
# file). It is not strictly a CodeObject (does not inherit from `Base`) although
|
5
|
+
# it implements `path`, `name` and `type`, and therefore should be structurally
|
6
|
+
# compatible with most CodeObject interfaces.
|
7
|
+
class ExtraFileObject
|
8
|
+
attr_accessor :filename
|
9
|
+
attr_writer :attributes
|
10
|
+
attr_accessor :name
|
11
|
+
# @since 0.8.3
|
12
|
+
attr_reader :locale
|
13
|
+
|
14
|
+
# Creates a new extra file object.
|
15
|
+
# @param [String] filename the location on disk of the file
|
16
|
+
# @param [String] contents the file contents. If not set, the contents
|
17
|
+
# will be read from disk using the +filename+.
|
18
|
+
def initialize(filename, contents = nil)
|
19
|
+
self.filename = filename
|
20
|
+
self.name = File.basename(filename).gsub(/\.[^.]+$/, '')
|
21
|
+
self.attributes = SymbolHash.new(false)
|
22
|
+
@original_contents = contents
|
23
|
+
@parsed = false
|
24
|
+
@locale = nil
|
25
|
+
ensure_parsed
|
26
|
+
end
|
27
|
+
|
28
|
+
alias path name
|
29
|
+
|
30
|
+
def attributes
|
31
|
+
ensure_parsed
|
32
|
+
@attributes
|
33
|
+
end
|
34
|
+
|
35
|
+
def title
|
36
|
+
attributes[:title] || name
|
37
|
+
end
|
38
|
+
|
39
|
+
def contents
|
40
|
+
ensure_parsed
|
41
|
+
@contents
|
42
|
+
end
|
43
|
+
|
44
|
+
def contents=(contents)
|
45
|
+
@original_contents = contents
|
46
|
+
@parsed = false
|
47
|
+
end
|
48
|
+
|
49
|
+
# @param [String] locale the locale name to be translated.
|
50
|
+
# @return [void]
|
51
|
+
# @since 0.8.3
|
52
|
+
def locale=(locale)
|
53
|
+
@locale = locale
|
54
|
+
@parsed = false
|
55
|
+
end
|
56
|
+
|
57
|
+
def inspect
|
58
|
+
"#<yardoc #{type} #{filename} attrs=#{attributes.inspect}>"
|
59
|
+
end
|
60
|
+
alias to_s inspect
|
61
|
+
|
62
|
+
def type; :extra_file end
|
63
|
+
|
64
|
+
def ==(other)
|
65
|
+
return false unless self.class === other
|
66
|
+
other.filename == filename
|
67
|
+
end
|
68
|
+
alias eql? ==
|
69
|
+
alias equal? ==
|
70
|
+
def hash; filename.hash end
|
71
|
+
|
72
|
+
private
|
73
|
+
|
74
|
+
def ensure_parsed
|
75
|
+
return if @parsed
|
76
|
+
@parsed = true
|
77
|
+
@contents = parse_contents(@original_contents || File.read(@filename))
|
78
|
+
end
|
79
|
+
|
80
|
+
# @param [String] data the file contents
|
81
|
+
def parse_contents(data)
|
82
|
+
retried = false
|
83
|
+
cut_index = 0
|
84
|
+
data = translate(data)
|
85
|
+
data = data.split("\n")
|
86
|
+
data.each_with_index do |line, index|
|
87
|
+
case line
|
88
|
+
when /^#!(\S+)\s*$/
|
89
|
+
if index == 0
|
90
|
+
attributes[:markup] = $1
|
91
|
+
else
|
92
|
+
cut_index = index
|
93
|
+
break
|
94
|
+
end
|
95
|
+
when /^\s*#\s*@(\S+)\s*(.+?)\s*$/
|
96
|
+
attributes[$1] = $2
|
97
|
+
when /^\s*<!--\s*$/, /^\s*-->\s*$/
|
98
|
+
# Ignore HTML comments
|
99
|
+
else
|
100
|
+
cut_index = index
|
101
|
+
break
|
102
|
+
end
|
103
|
+
end
|
104
|
+
data = data[cut_index..-1] if cut_index > 0
|
105
|
+
contents = data.join("\n")
|
106
|
+
|
107
|
+
if contents.respond_to?(:force_encoding) && attributes[:encoding]
|
108
|
+
begin
|
109
|
+
contents.force_encoding(attributes[:encoding])
|
110
|
+
rescue ArgumentError
|
111
|
+
log.warn "Invalid encoding `#{attributes[:encoding]}' in #{filename}"
|
112
|
+
end
|
113
|
+
end
|
114
|
+
contents
|
115
|
+
rescue ArgumentError => e
|
116
|
+
raise unless e.message =~ /invalid byte sequence/
|
117
|
+
|
118
|
+
if retried
|
119
|
+
# This should never happen.
|
120
|
+
log.warn "Could not read #{filename}, #{e.message}. You probably want to set `--charset`."
|
121
|
+
return ''
|
122
|
+
else
|
123
|
+
data.force_encoding('binary') if data.respond_to?(:force_encoding)
|
124
|
+
retried = true
|
125
|
+
retry
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
129
|
+
def translate(data)
|
130
|
+
text = YARD::I18n::Text.new(data, :have_header => true)
|
131
|
+
text.translate(YARD::Registry.locale(locale))
|
132
|
+
end
|
133
|
+
end
|
134
|
+
end
|