yard 0.9.16 → 0.9.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
data/lib/yard/cli/display.rb
CHANGED
@@ -1,69 +1,69 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module YARD
|
3
|
-
module CLI
|
4
|
-
# Display one object
|
5
|
-
# @since 0.8.6
|
6
|
-
class Display < Yardoc
|
7
|
-
def description; 'Displays a formatted object' end
|
8
|
-
|
9
|
-
def initialize(*args)
|
10
|
-
super
|
11
|
-
options.format = :text # default for this command
|
12
|
-
@layout = nil
|
13
|
-
@objects = []
|
14
|
-
end
|
15
|
-
|
16
|
-
# Runs the commandline utility, parsing arguments and displaying an object
|
17
|
-
# from the {Registry}.
|
18
|
-
#
|
19
|
-
# @param [Array<String>] args the list of arguments.
|
20
|
-
# @return [void]
|
21
|
-
def run(*args)
|
22
|
-
return unless parse_arguments(*args)
|
23
|
-
log.puts wrap_layout(format_objects)
|
24
|
-
end
|
25
|
-
|
26
|
-
# @return [String] the output data for all formatted objects
|
27
|
-
def format_objects
|
28
|
-
@objects.inject([]) do |arr, obj|
|
29
|
-
arr.push obj.format(options)
|
30
|
-
end.join("\n")
|
31
|
-
end
|
32
|
-
|
33
|
-
def wrap_layout(contents)
|
34
|
-
return contents unless @layout
|
35
|
-
opts = options.merge(
|
36
|
-
:contents => contents,
|
37
|
-
:object => @objects.first,
|
38
|
-
:objects => @objects
|
39
|
-
)
|
40
|
-
args = [options.template, @layout, options.format]
|
41
|
-
Templates::Engine.template(*args).run(opts)
|
42
|
-
end
|
43
|
-
|
44
|
-
# Parses commandline options.
|
45
|
-
# @param [Array<String>] args each tokenized argument
|
46
|
-
def parse_arguments(*args)
|
47
|
-
opts = OptionParser.new
|
48
|
-
opts.banner = "Usage: yard display [options] OBJECT [OTHER OBJECTS]"
|
49
|
-
general_options(opts)
|
50
|
-
output_options(opts)
|
51
|
-
parse_options(opts, args)
|
52
|
-
|
53
|
-
Registry.load
|
54
|
-
@objects = args.map {|o| Registry.at(o) }
|
55
|
-
|
56
|
-
# validation
|
57
|
-
return false if @objects.any?(&:nil?)
|
58
|
-
verify_markup_options
|
59
|
-
end
|
60
|
-
|
61
|
-
def output_options(opts)
|
62
|
-
super(opts)
|
63
|
-
opts.on('-l', '--layout [LAYOUT]', 'Wraps output in layout template (good for HTML)') do |layout|
|
64
|
-
@layout = layout || 'layout'
|
65
|
-
end
|
66
|
-
end
|
67
|
-
end
|
68
|
-
end
|
69
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module YARD
|
3
|
+
module CLI
|
4
|
+
# Display one object
|
5
|
+
# @since 0.8.6
|
6
|
+
class Display < Yardoc
|
7
|
+
def description; 'Displays a formatted object' end
|
8
|
+
|
9
|
+
def initialize(*args)
|
10
|
+
super
|
11
|
+
options.format = :text # default for this command
|
12
|
+
@layout = nil
|
13
|
+
@objects = []
|
14
|
+
end
|
15
|
+
|
16
|
+
# Runs the commandline utility, parsing arguments and displaying an object
|
17
|
+
# from the {Registry}.
|
18
|
+
#
|
19
|
+
# @param [Array<String>] args the list of arguments.
|
20
|
+
# @return [void]
|
21
|
+
def run(*args)
|
22
|
+
return unless parse_arguments(*args)
|
23
|
+
log.puts wrap_layout(format_objects)
|
24
|
+
end
|
25
|
+
|
26
|
+
# @return [String] the output data for all formatted objects
|
27
|
+
def format_objects
|
28
|
+
@objects.inject([]) do |arr, obj|
|
29
|
+
arr.push obj.format(options)
|
30
|
+
end.join("\n")
|
31
|
+
end
|
32
|
+
|
33
|
+
def wrap_layout(contents)
|
34
|
+
return contents unless @layout
|
35
|
+
opts = options.merge(
|
36
|
+
:contents => contents,
|
37
|
+
:object => @objects.first,
|
38
|
+
:objects => @objects
|
39
|
+
)
|
40
|
+
args = [options.template, @layout, options.format]
|
41
|
+
Templates::Engine.template(*args).run(opts)
|
42
|
+
end
|
43
|
+
|
44
|
+
# Parses commandline options.
|
45
|
+
# @param [Array<String>] args each tokenized argument
|
46
|
+
def parse_arguments(*args)
|
47
|
+
opts = OptionParser.new
|
48
|
+
opts.banner = "Usage: yard display [options] OBJECT [OTHER OBJECTS]"
|
49
|
+
general_options(opts)
|
50
|
+
output_options(opts)
|
51
|
+
parse_options(opts, args)
|
52
|
+
|
53
|
+
Registry.load
|
54
|
+
@objects = args.map {|o| Registry.at(o) }
|
55
|
+
|
56
|
+
# validation
|
57
|
+
return false if @objects.any?(&:nil?)
|
58
|
+
verify_markup_options
|
59
|
+
end
|
60
|
+
|
61
|
+
def output_options(opts)
|
62
|
+
super(opts)
|
63
|
+
opts.on('-l', '--layout [LAYOUT]', 'Wraps output in layout template (good for HTML)') do |layout|
|
64
|
+
@layout = layout || 'layout'
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
data/lib/yard/cli/gems.rb
CHANGED
@@ -1,84 +1,84 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module YARD
|
3
|
-
module CLI
|
4
|
-
# @since 0.6.0
|
5
|
-
class Gems < Command
|
6
|
-
def initialize
|
7
|
-
@rebuild = false
|
8
|
-
@gems = []
|
9
|
-
end
|
10
|
-
|
11
|
-
def description; "Builds YARD index for gems" end
|
12
|
-
|
13
|
-
# Runs the commandline utility, parsing arguments and generating
|
14
|
-
# YARD indexes for gems.
|
15
|
-
#
|
16
|
-
# @param [Array<String>] args the list of arguments
|
17
|
-
# @return [void]
|
18
|
-
def run(*args)
|
19
|
-
require 'rubygems'
|
20
|
-
optparse(*args)
|
21
|
-
build_gems
|
22
|
-
end
|
23
|
-
|
24
|
-
private
|
25
|
-
|
26
|
-
# Builds .yardoc files for all non-existing gems
|
27
|
-
def build_gems
|
28
|
-
require 'rubygems'
|
29
|
-
@gems.each do |spec|
|
30
|
-
ver = "= #{spec.version}"
|
31
|
-
dir = Registry.yardoc_file_for_gem(spec.name, ver)
|
32
|
-
if dir && File.directory?(dir) && !@rebuild
|
33
|
-
log.debug "#{spec.name} index already exists at '#{dir}'"
|
34
|
-
else
|
35
|
-
yfile = Registry.yardoc_file_for_gem(spec.name, ver, true)
|
36
|
-
next unless yfile
|
37
|
-
next unless File.directory?(spec.full_gem_path)
|
38
|
-
Registry.clear
|
39
|
-
Dir.chdir(spec.full_gem_path) do
|
40
|
-
log.info "Building yardoc index for gem: #{spec.full_name}"
|
41
|
-
Yardoc.run('--no-stats', '-n', '-b', yfile)
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
def add_gems(gems)
|
48
|
-
0.step(gems.size - 1, 2) do |index|
|
49
|
-
gem = gems[index]
|
50
|
-
ver_require = gems[index + 1] || ">= 0"
|
51
|
-
specs = YARD::GemIndex.find_all_by_name(gem, ver_require)
|
52
|
-
if specs.empty?
|
53
|
-
log.warn "#{gem} #{ver_require} could not be found in RubyGems index"
|
54
|
-
else
|
55
|
-
@gems += specs
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
# Parses options
|
61
|
-
def optparse(*args)
|
62
|
-
opts = OptionParser.new
|
63
|
-
opts.banner = 'Usage: yard gems [options] [gem_name [version]]'
|
64
|
-
opts.separator ""
|
65
|
-
opts.separator "#{description}. If no gem_name is given,"
|
66
|
-
opts.separator "all gems are built."
|
67
|
-
opts.separator ""
|
68
|
-
opts.on('--rebuild', 'Rebuilds index') do
|
69
|
-
@rebuild = true
|
70
|
-
end
|
71
|
-
|
72
|
-
common_options(opts)
|
73
|
-
parse_options(opts, args)
|
74
|
-
add_gems(args)
|
75
|
-
|
76
|
-
if !args.empty? && @gems.empty?
|
77
|
-
log.error "No specified gems could be found for command"
|
78
|
-
elsif @gems.empty?
|
79
|
-
@gems += YARD::GemIndex.all if @gems.empty?
|
80
|
-
end
|
81
|
-
end
|
82
|
-
end
|
83
|
-
end
|
84
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module YARD
|
3
|
+
module CLI
|
4
|
+
# @since 0.6.0
|
5
|
+
class Gems < Command
|
6
|
+
def initialize
|
7
|
+
@rebuild = false
|
8
|
+
@gems = []
|
9
|
+
end
|
10
|
+
|
11
|
+
def description; "Builds YARD index for gems" end
|
12
|
+
|
13
|
+
# Runs the commandline utility, parsing arguments and generating
|
14
|
+
# YARD indexes for gems.
|
15
|
+
#
|
16
|
+
# @param [Array<String>] args the list of arguments
|
17
|
+
# @return [void]
|
18
|
+
def run(*args)
|
19
|
+
require 'rubygems'
|
20
|
+
optparse(*args)
|
21
|
+
build_gems
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
|
26
|
+
# Builds .yardoc files for all non-existing gems
|
27
|
+
def build_gems
|
28
|
+
require 'rubygems'
|
29
|
+
@gems.each do |spec|
|
30
|
+
ver = "= #{spec.version}"
|
31
|
+
dir = Registry.yardoc_file_for_gem(spec.name, ver)
|
32
|
+
if dir && File.directory?(dir) && !@rebuild
|
33
|
+
log.debug "#{spec.name} index already exists at '#{dir}'"
|
34
|
+
else
|
35
|
+
yfile = Registry.yardoc_file_for_gem(spec.name, ver, true)
|
36
|
+
next unless yfile
|
37
|
+
next unless File.directory?(spec.full_gem_path)
|
38
|
+
Registry.clear
|
39
|
+
Dir.chdir(spec.full_gem_path) do
|
40
|
+
log.info "Building yardoc index for gem: #{spec.full_name}"
|
41
|
+
Yardoc.run('--no-stats', '-n', '-b', yfile)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def add_gems(gems)
|
48
|
+
0.step(gems.size - 1, 2) do |index|
|
49
|
+
gem = gems[index]
|
50
|
+
ver_require = gems[index + 1] || ">= 0"
|
51
|
+
specs = YARD::GemIndex.find_all_by_name(gem, ver_require)
|
52
|
+
if specs.empty?
|
53
|
+
log.warn "#{gem} #{ver_require} could not be found in RubyGems index"
|
54
|
+
else
|
55
|
+
@gems += specs
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
# Parses options
|
61
|
+
def optparse(*args)
|
62
|
+
opts = OptionParser.new
|
63
|
+
opts.banner = 'Usage: yard gems [options] [gem_name [version]]'
|
64
|
+
opts.separator ""
|
65
|
+
opts.separator "#{description}. If no gem_name is given,"
|
66
|
+
opts.separator "all gems are built."
|
67
|
+
opts.separator ""
|
68
|
+
opts.on('--rebuild', 'Rebuilds index') do
|
69
|
+
@rebuild = true
|
70
|
+
end
|
71
|
+
|
72
|
+
common_options(opts)
|
73
|
+
parse_options(opts, args)
|
74
|
+
add_gems(args)
|
75
|
+
|
76
|
+
if !args.empty? && @gems.empty?
|
77
|
+
log.error "No specified gems could be found for command"
|
78
|
+
elsif @gems.empty?
|
79
|
+
@gems += YARD::GemIndex.all if @gems.empty?
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
data/lib/yard/cli/graph.rb
CHANGED
@@ -1,125 +1,125 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module YARD
|
3
|
-
module CLI
|
4
|
-
# Options to pass to the {Graph} CLI.
|
5
|
-
class GraphOptions < Templates::TemplateOptions
|
6
|
-
# @return [:dot] the default output format
|
7
|
-
default_attr :format, :dot
|
8
|
-
|
9
|
-
# @return [Boolean] whether to list the full class diagram
|
10
|
-
attr_accessor :full
|
11
|
-
|
12
|
-
# @return [Boolean] whether to show the object dependencies
|
13
|
-
attr_accessor :dependencies
|
14
|
-
|
15
|
-
# @return [String] any contents to pass to the digraph
|
16
|
-
attr_accessor :contents
|
17
|
-
end
|
18
|
-
|
19
|
-
# A command-line utility to generate Graphviz graphs from
|
20
|
-
# a set of objects
|
21
|
-
#
|
22
|
-
# @see Graph#run
|
23
|
-
# @since 0.6.0
|
24
|
-
class Graph < YardoptsCommand
|
25
|
-
# The options parsed out of the commandline.
|
26
|
-
# Default options are:
|
27
|
-
# :format => :dot
|
28
|
-
attr_reader :options
|
29
|
-
|
30
|
-
# The set of objects to include in the graph.
|
31
|
-
attr_reader :objects
|
32
|
-
|
33
|
-
# Creates a new instance of the command-line utility
|
34
|
-
def initialize
|
35
|
-
super
|
36
|
-
@use_document_file = false
|
37
|
-
@options = GraphOptions.new
|
38
|
-
options.reset_defaults
|
39
|
-
options.serializer = YARD::Serializers::StdoutSerializer.new
|
40
|
-
end
|
41
|
-
|
42
|
-
def description
|
43
|
-
"Graphs class diagram using Graphviz"
|
44
|
-
end
|
45
|
-
|
46
|
-
# Runs the command-line utility.
|
47
|
-
#
|
48
|
-
# @example
|
49
|
-
# grapher = Graph.new
|
50
|
-
# grapher.run('--private')
|
51
|
-
# @param [Array<String>] args each tokenized argument
|
52
|
-
def run(*args)
|
53
|
-
parse_arguments(*args)
|
54
|
-
|
55
|
-
contents = objects.map do |o|
|
56
|
-
o.format(options.merge(:serialize => false))
|
57
|
-
end.join("\n")
|
58
|
-
opts = {:type => :layout, :contents => contents}
|
59
|
-
options.update(opts)
|
60
|
-
Templates::Engine.render(options)
|
61
|
-
end
|
62
|
-
|
63
|
-
private
|
64
|
-
|
65
|
-
def unrecognized_option(err) end
|
66
|
-
|
67
|
-
# Parses commandline options.
|
68
|
-
# @param [Array<String>] args each tokenized argument
|
69
|
-
def optparse(*args)
|
70
|
-
visibilities = [:public]
|
71
|
-
opts = OptionParser.new
|
72
|
-
|
73
|
-
opts.separator ""
|
74
|
-
opts.separator "General Options:"
|
75
|
-
|
76
|
-
opts.on('-b', '--db FILE', 'Use a specified .yardoc db to load from or save to. (defaults to .yardoc)') do |yfile|
|
77
|
-
YARD::Registry.yardoc_file = yfile
|
78
|
-
end
|
79
|
-
|
80
|
-
opts.on('--full', 'Full class diagrams (show methods and attributes).') do
|
81
|
-
options[:full] = true
|
82
|
-
end
|
83
|
-
|
84
|
-
opts.on('-d', '--dependencies', 'Show mixins in dependency graph.') do
|
85
|
-
options[:dependencies] = true
|
86
|
-
end
|
87
|
-
|
88
|
-
opts.on('--no-public', "Don't show public methods. (default shows public)") do
|
89
|
-
visibilities.delete(:public)
|
90
|
-
end
|
91
|
-
|
92
|
-
opts.on('--protected', "Show or don't show protected methods. (default hides protected)") do
|
93
|
-
visibilities.push(:protected)
|
94
|
-
end
|
95
|
-
|
96
|
-
opts.on('--private', "Show or don't show private methods. (default hides private)") do
|
97
|
-
visibilities.push(:private)
|
98
|
-
end
|
99
|
-
|
100
|
-
opts.separator ""
|
101
|
-
opts.separator "Output options:"
|
102
|
-
|
103
|
-
opts.on('--dot [OPTIONS]', 'Send the results directly to `dot` with optional arguments.') do |dotopts|
|
104
|
-
options.serializer = Serializers::ProcessSerializer.new('dot ' + dotopts.to_s)
|
105
|
-
end
|
106
|
-
|
107
|
-
opts.on('-f', '--file [FILE]', 'Writes output to a file instead of stdout.') do |file|
|
108
|
-
options.serializer = Serializers::FileSystemSerializer.new(:basepath => '.', :extension => nil)
|
109
|
-
options.serializer.instance_eval "def serialized_path(object) #{file.inspect} end"
|
110
|
-
end
|
111
|
-
|
112
|
-
common_options(opts)
|
113
|
-
parse_options(opts, args)
|
114
|
-
|
115
|
-
Registry.load
|
116
|
-
|
117
|
-
expression = "#{visibilities.uniq.inspect}.include?(object.visibility)"
|
118
|
-
options.verifier = Verifier.new(expression)
|
119
|
-
@objects = args.first ?
|
120
|
-
args.map {|o| Registry.at(o) }.compact :
|
121
|
-
[Registry.root]
|
122
|
-
end
|
123
|
-
end
|
124
|
-
end
|
125
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module YARD
|
3
|
+
module CLI
|
4
|
+
# Options to pass to the {Graph} CLI.
|
5
|
+
class GraphOptions < Templates::TemplateOptions
|
6
|
+
# @return [:dot] the default output format
|
7
|
+
default_attr :format, :dot
|
8
|
+
|
9
|
+
# @return [Boolean] whether to list the full class diagram
|
10
|
+
attr_accessor :full
|
11
|
+
|
12
|
+
# @return [Boolean] whether to show the object dependencies
|
13
|
+
attr_accessor :dependencies
|
14
|
+
|
15
|
+
# @return [String] any contents to pass to the digraph
|
16
|
+
attr_accessor :contents
|
17
|
+
end
|
18
|
+
|
19
|
+
# A command-line utility to generate Graphviz graphs from
|
20
|
+
# a set of objects
|
21
|
+
#
|
22
|
+
# @see Graph#run
|
23
|
+
# @since 0.6.0
|
24
|
+
class Graph < YardoptsCommand
|
25
|
+
# The options parsed out of the commandline.
|
26
|
+
# Default options are:
|
27
|
+
# :format => :dot
|
28
|
+
attr_reader :options
|
29
|
+
|
30
|
+
# The set of objects to include in the graph.
|
31
|
+
attr_reader :objects
|
32
|
+
|
33
|
+
# Creates a new instance of the command-line utility
|
34
|
+
def initialize
|
35
|
+
super
|
36
|
+
@use_document_file = false
|
37
|
+
@options = GraphOptions.new
|
38
|
+
options.reset_defaults
|
39
|
+
options.serializer = YARD::Serializers::StdoutSerializer.new
|
40
|
+
end
|
41
|
+
|
42
|
+
def description
|
43
|
+
"Graphs class diagram using Graphviz"
|
44
|
+
end
|
45
|
+
|
46
|
+
# Runs the command-line utility.
|
47
|
+
#
|
48
|
+
# @example
|
49
|
+
# grapher = Graph.new
|
50
|
+
# grapher.run('--private')
|
51
|
+
# @param [Array<String>] args each tokenized argument
|
52
|
+
def run(*args)
|
53
|
+
parse_arguments(*args)
|
54
|
+
|
55
|
+
contents = objects.map do |o|
|
56
|
+
o.format(options.merge(:serialize => false))
|
57
|
+
end.join("\n")
|
58
|
+
opts = {:type => :layout, :contents => contents}
|
59
|
+
options.update(opts)
|
60
|
+
Templates::Engine.render(options)
|
61
|
+
end
|
62
|
+
|
63
|
+
private
|
64
|
+
|
65
|
+
def unrecognized_option(err) end
|
66
|
+
|
67
|
+
# Parses commandline options.
|
68
|
+
# @param [Array<String>] args each tokenized argument
|
69
|
+
def optparse(*args)
|
70
|
+
visibilities = [:public]
|
71
|
+
opts = OptionParser.new
|
72
|
+
|
73
|
+
opts.separator ""
|
74
|
+
opts.separator "General Options:"
|
75
|
+
|
76
|
+
opts.on('-b', '--db FILE', 'Use a specified .yardoc db to load from or save to. (defaults to .yardoc)') do |yfile|
|
77
|
+
YARD::Registry.yardoc_file = yfile
|
78
|
+
end
|
79
|
+
|
80
|
+
opts.on('--full', 'Full class diagrams (show methods and attributes).') do
|
81
|
+
options[:full] = true
|
82
|
+
end
|
83
|
+
|
84
|
+
opts.on('-d', '--dependencies', 'Show mixins in dependency graph.') do
|
85
|
+
options[:dependencies] = true
|
86
|
+
end
|
87
|
+
|
88
|
+
opts.on('--no-public', "Don't show public methods. (default shows public)") do
|
89
|
+
visibilities.delete(:public)
|
90
|
+
end
|
91
|
+
|
92
|
+
opts.on('--protected', "Show or don't show protected methods. (default hides protected)") do
|
93
|
+
visibilities.push(:protected)
|
94
|
+
end
|
95
|
+
|
96
|
+
opts.on('--private', "Show or don't show private methods. (default hides private)") do
|
97
|
+
visibilities.push(:private)
|
98
|
+
end
|
99
|
+
|
100
|
+
opts.separator ""
|
101
|
+
opts.separator "Output options:"
|
102
|
+
|
103
|
+
opts.on('--dot [OPTIONS]', 'Send the results directly to `dot` with optional arguments.') do |dotopts|
|
104
|
+
options.serializer = Serializers::ProcessSerializer.new('dot ' + dotopts.to_s)
|
105
|
+
end
|
106
|
+
|
107
|
+
opts.on('-f', '--file [FILE]', 'Writes output to a file instead of stdout.') do |file|
|
108
|
+
options.serializer = Serializers::FileSystemSerializer.new(:basepath => '.', :extension => nil)
|
109
|
+
options.serializer.instance_eval "def serialized_path(object) #{file.inspect} end"
|
110
|
+
end
|
111
|
+
|
112
|
+
common_options(opts)
|
113
|
+
parse_options(opts, args)
|
114
|
+
|
115
|
+
Registry.load
|
116
|
+
|
117
|
+
expression = "#{visibilities.uniq.inspect}.include?(object.visibility)"
|
118
|
+
options.verifier = Verifier.new(expression)
|
119
|
+
@objects = args.first ?
|
120
|
+
args.map {|o| Registry.at(o) }.compact :
|
121
|
+
[Registry.root]
|
122
|
+
end
|
123
|
+
end
|
124
|
+
end
|
125
|
+
end
|