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
data/lib/yard/cli/command.rb
CHANGED
@@ -1,85 +1,85 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require 'optparse'
|
3
|
-
|
4
|
-
module YARD
|
5
|
-
module CLI
|
6
|
-
# Abstract base class for CLI utilities. Provides some helper methods for
|
7
|
-
# the option parser
|
8
|
-
#
|
9
|
-
# @abstract
|
10
|
-
# @since 0.6.0
|
11
|
-
class Command
|
12
|
-
# Helper method to run the utility on an instance.
|
13
|
-
# @see #run
|
14
|
-
def self.run(*args) new.run(*args) end
|
15
|
-
|
16
|
-
def description; '' end
|
17
|
-
|
18
|
-
protected
|
19
|
-
|
20
|
-
# Adds a set of common options to the tail of the OptionParser
|
21
|
-
#
|
22
|
-
# @param [OptionParser] opts the option parser object
|
23
|
-
# @return [void]
|
24
|
-
def common_options(opts)
|
25
|
-
opts.separator ""
|
26
|
-
opts.separator "Other options:"
|
27
|
-
opts.on('-e', '--load FILE', 'A Ruby script to load before running command.') do |file|
|
28
|
-
load_script(file)
|
29
|
-
end
|
30
|
-
opts.on('--plugin PLUGIN', 'Load a YARD plugin (gem with `yard-\' prefix)') do |name|
|
31
|
-
# Not actually necessary to load here, this is done at boot in YARD::Config.load_plugins
|
32
|
-
# YARD::Config.load_plugin(name)
|
33
|
-
end
|
34
|
-
opts.on('--legacy', 'Use old style Ruby parser and handlers. ',
|
35
|
-
' Always on in 1.8.x.') do
|
36
|
-
YARD::Parser::SourceParser.parser_type = :ruby18
|
37
|
-
end
|
38
|
-
opts.on('--safe', 'Enable safe mode for this instance') do
|
39
|
-
# Parsed in YARD::Config.load
|
40
|
-
end
|
41
|
-
opts.on_tail('-q', '--quiet', 'Show no warnings.') { log.level = Logger::ERROR }
|
42
|
-
opts.on_tail('--verbose', 'Show more information.') { log.level = Logger::INFO }
|
43
|
-
opts.on_tail('--debug', 'Show debugging information.') { log.level = Logger::DEBUG }
|
44
|
-
opts.on_tail('--backtrace', 'Show stack traces') { log.show_backtraces = true }
|
45
|
-
opts.on_tail('-v', '--version', 'Show version.') { log.puts "yard #{YARD::VERSION}"; exit }
|
46
|
-
opts.on_tail('-h', '--help', 'Show this help.') { log.puts opts; exit }
|
47
|
-
end
|
48
|
-
|
49
|
-
# Parses the option and gracefully handles invalid switches
|
50
|
-
#
|
51
|
-
# @param [OptionParser] opts the option parser object
|
52
|
-
# @param [Array<String>] args the arguments passed from input. This
|
53
|
-
# array will be modified.
|
54
|
-
# @return [void]
|
55
|
-
def parse_options(opts, args)
|
56
|
-
opts.parse!(args)
|
57
|
-
rescue OptionParser::ParseError => err
|
58
|
-
unrecognized_option(err)
|
59
|
-
args.shift if args.first && args.first[0, 1] != '-'
|
60
|
-
retry
|
61
|
-
end
|
62
|
-
|
63
|
-
# Loads a Ruby script. If <tt>Config.options[:safe_mode]</tt> is enabled,
|
64
|
-
# this method will do nothing.
|
65
|
-
#
|
66
|
-
# @param [String] file the path to the script to load
|
67
|
-
# @since 0.6.2
|
68
|
-
def load_script(file)
|
69
|
-
return if YARD::Config.options[:safe_mode]
|
70
|
-
load(file)
|
71
|
-
rescue LoadError => load_exception
|
72
|
-
log.error "The file `#{file}' could not be loaded:\n#{load_exception}"
|
73
|
-
exit
|
74
|
-
end
|
75
|
-
|
76
|
-
# Callback when an unrecognize option is parsed
|
77
|
-
#
|
78
|
-
# @param [OptionParser::ParseError] err the exception raised by the
|
79
|
-
# option parser
|
80
|
-
def unrecognized_option(err)
|
81
|
-
log.warn "Unrecognized/#{err.message}"
|
82
|
-
end
|
83
|
-
end
|
84
|
-
end
|
85
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require 'optparse'
|
3
|
+
|
4
|
+
module YARD
|
5
|
+
module CLI
|
6
|
+
# Abstract base class for CLI utilities. Provides some helper methods for
|
7
|
+
# the option parser
|
8
|
+
#
|
9
|
+
# @abstract
|
10
|
+
# @since 0.6.0
|
11
|
+
class Command
|
12
|
+
# Helper method to run the utility on an instance.
|
13
|
+
# @see #run
|
14
|
+
def self.run(*args) new.run(*args) end
|
15
|
+
|
16
|
+
def description; '' end
|
17
|
+
|
18
|
+
protected
|
19
|
+
|
20
|
+
# Adds a set of common options to the tail of the OptionParser
|
21
|
+
#
|
22
|
+
# @param [OptionParser] opts the option parser object
|
23
|
+
# @return [void]
|
24
|
+
def common_options(opts)
|
25
|
+
opts.separator ""
|
26
|
+
opts.separator "Other options:"
|
27
|
+
opts.on('-e', '--load FILE', 'A Ruby script to load before running command.') do |file|
|
28
|
+
load_script(file)
|
29
|
+
end
|
30
|
+
opts.on('--plugin PLUGIN', 'Load a YARD plugin (gem with `yard-\' prefix)') do |name|
|
31
|
+
# Not actually necessary to load here, this is done at boot in YARD::Config.load_plugins
|
32
|
+
# YARD::Config.load_plugin(name)
|
33
|
+
end
|
34
|
+
opts.on('--legacy', 'Use old style Ruby parser and handlers. ',
|
35
|
+
' Always on in 1.8.x.') do
|
36
|
+
YARD::Parser::SourceParser.parser_type = :ruby18
|
37
|
+
end
|
38
|
+
opts.on('--safe', 'Enable safe mode for this instance') do
|
39
|
+
# Parsed in YARD::Config.load
|
40
|
+
end
|
41
|
+
opts.on_tail('-q', '--quiet', 'Show no warnings.') { log.level = Logger::ERROR }
|
42
|
+
opts.on_tail('--verbose', 'Show more information.') { log.level = Logger::INFO }
|
43
|
+
opts.on_tail('--debug', 'Show debugging information.') { log.level = Logger::DEBUG }
|
44
|
+
opts.on_tail('--backtrace', 'Show stack traces') { log.show_backtraces = true }
|
45
|
+
opts.on_tail('-v', '--version', 'Show version.') { log.puts "yard #{YARD::VERSION}"; exit }
|
46
|
+
opts.on_tail('-h', '--help', 'Show this help.') { log.puts opts; exit }
|
47
|
+
end
|
48
|
+
|
49
|
+
# Parses the option and gracefully handles invalid switches
|
50
|
+
#
|
51
|
+
# @param [OptionParser] opts the option parser object
|
52
|
+
# @param [Array<String>] args the arguments passed from input. This
|
53
|
+
# array will be modified.
|
54
|
+
# @return [void]
|
55
|
+
def parse_options(opts, args)
|
56
|
+
opts.parse!(args)
|
57
|
+
rescue OptionParser::ParseError => err
|
58
|
+
unrecognized_option(err)
|
59
|
+
args.shift if args.first && args.first[0, 1] != '-'
|
60
|
+
retry
|
61
|
+
end
|
62
|
+
|
63
|
+
# Loads a Ruby script. If <tt>Config.options[:safe_mode]</tt> is enabled,
|
64
|
+
# this method will do nothing.
|
65
|
+
#
|
66
|
+
# @param [String] file the path to the script to load
|
67
|
+
# @since 0.6.2
|
68
|
+
def load_script(file)
|
69
|
+
return if YARD::Config.options[:safe_mode]
|
70
|
+
load(file)
|
71
|
+
rescue LoadError => load_exception
|
72
|
+
log.error "The file `#{file}' could not be loaded:\n#{load_exception}"
|
73
|
+
exit
|
74
|
+
end
|
75
|
+
|
76
|
+
# Callback when an unrecognize option is parsed
|
77
|
+
#
|
78
|
+
# @param [OptionParser::ParseError] err the exception raised by the
|
79
|
+
# option parser
|
80
|
+
def unrecognized_option(err)
|
81
|
+
log.warn "Unrecognized/#{err.message}"
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
@@ -1,93 +1,93 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module YARD
|
3
|
-
module CLI
|
4
|
-
# This class parses a command name out of the +yard+ CLI command and calls
|
5
|
-
# that command in the form:
|
6
|
-
#
|
7
|
-
# $ yard command_name [options]
|
8
|
-
#
|
9
|
-
# If no command or arguments are specified, or if the arguments immediately
|
10
|
-
# begin with a +--opt+ (not +--help+), the {default_command} will be used
|
11
|
-
# (which itself defaults to +:doc+).
|
12
|
-
#
|
13
|
-
# == Adding a Command
|
14
|
-
#
|
15
|
-
# To add a custom command via plugin, create a mapping in {commands} from
|
16
|
-
# the Symbolic command name to the {Command} class that implements the
|
17
|
-
# command. To implement a command, see the documentation for the {Command}
|
18
|
-
# class.
|
19
|
-
#
|
20
|
-
# @see Command
|
21
|
-
# @see commands
|
22
|
-
# @see default_command
|
23
|
-
class CommandParser
|
24
|
-
class << self
|
25
|
-
# @return [Hash{Symbol => Command}] the mapping of command names to
|
26
|
-
# command classes to parse the user command.
|
27
|
-
attr_accessor :commands
|
28
|
-
|
29
|
-
# @return [Symbol] the default command name to use when no options
|
30
|
-
# are specified or
|
31
|
-
attr_accessor :default_command
|
32
|
-
end
|
33
|
-
|
34
|
-
self.commands = SymbolHash[
|
35
|
-
:config => Config,
|
36
|
-
:diff => Diff,
|
37
|
-
:display => Display,
|
38
|
-
:doc => Yardoc,
|
39
|
-
:gems => Gems,
|
40
|
-
:graph => Graph,
|
41
|
-
:help => Help,
|
42
|
-
:list => List,
|
43
|
-
:markups => MarkupTypes,
|
44
|
-
:ri => YRI,
|
45
|
-
:server => Server,
|
46
|
-
:stats => Stats,
|
47
|
-
:i18n => I18n
|
48
|
-
]
|
49
|
-
|
50
|
-
self.default_command = :doc
|
51
|
-
|
52
|
-
# Convenience method to create a new CommandParser and call {#run}
|
53
|
-
# @return (see #run)
|
54
|
-
def self.run(*args) new.run(*args) end
|
55
|
-
|
56
|
-
def initialize
|
57
|
-
log.show_backtraces = false
|
58
|
-
end
|
59
|
-
|
60
|
-
# Runs the {Command} object matching the command name of the first
|
61
|
-
# argument.
|
62
|
-
# @return [void]
|
63
|
-
def run(*args)
|
64
|
-
unless args == ['--help']
|
65
|
-
if args.empty? || args.first =~ /^-/
|
66
|
-
command_name = self.class.default_command
|
67
|
-
else
|
68
|
-
command_name = args.first.to_sym
|
69
|
-
args.shift
|
70
|
-
end
|
71
|
-
if commands.key?(command_name)
|
72
|
-
return commands[command_name].run(*args)
|
73
|
-
end
|
74
|
-
end
|
75
|
-
list_commands
|
76
|
-
end
|
77
|
-
|
78
|
-
private
|
79
|
-
|
80
|
-
def commands; self.class.commands end
|
81
|
-
|
82
|
-
def list_commands
|
83
|
-
log.puts "Usage: yard <command> [options]"
|
84
|
-
log.puts
|
85
|
-
log.puts "Commands:"
|
86
|
-
commands.keys.sort_by(&:to_s).each do |command_name|
|
87
|
-
command = commands[command_name].new
|
88
|
-
log.puts "%-8s %s" % [command_name, command.description]
|
89
|
-
end
|
90
|
-
end
|
91
|
-
end
|
92
|
-
end
|
93
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module YARD
|
3
|
+
module CLI
|
4
|
+
# This class parses a command name out of the +yard+ CLI command and calls
|
5
|
+
# that command in the form:
|
6
|
+
#
|
7
|
+
# $ yard command_name [options]
|
8
|
+
#
|
9
|
+
# If no command or arguments are specified, or if the arguments immediately
|
10
|
+
# begin with a +--opt+ (not +--help+), the {default_command} will be used
|
11
|
+
# (which itself defaults to +:doc+).
|
12
|
+
#
|
13
|
+
# == Adding a Command
|
14
|
+
#
|
15
|
+
# To add a custom command via plugin, create a mapping in {commands} from
|
16
|
+
# the Symbolic command name to the {Command} class that implements the
|
17
|
+
# command. To implement a command, see the documentation for the {Command}
|
18
|
+
# class.
|
19
|
+
#
|
20
|
+
# @see Command
|
21
|
+
# @see commands
|
22
|
+
# @see default_command
|
23
|
+
class CommandParser
|
24
|
+
class << self
|
25
|
+
# @return [Hash{Symbol => Command}] the mapping of command names to
|
26
|
+
# command classes to parse the user command.
|
27
|
+
attr_accessor :commands
|
28
|
+
|
29
|
+
# @return [Symbol] the default command name to use when no options
|
30
|
+
# are specified or
|
31
|
+
attr_accessor :default_command
|
32
|
+
end
|
33
|
+
|
34
|
+
self.commands = SymbolHash[
|
35
|
+
:config => Config,
|
36
|
+
:diff => Diff,
|
37
|
+
:display => Display,
|
38
|
+
:doc => Yardoc,
|
39
|
+
:gems => Gems,
|
40
|
+
:graph => Graph,
|
41
|
+
:help => Help,
|
42
|
+
:list => List,
|
43
|
+
:markups => MarkupTypes,
|
44
|
+
:ri => YRI,
|
45
|
+
:server => Server,
|
46
|
+
:stats => Stats,
|
47
|
+
:i18n => I18n
|
48
|
+
]
|
49
|
+
|
50
|
+
self.default_command = :doc
|
51
|
+
|
52
|
+
# Convenience method to create a new CommandParser and call {#run}
|
53
|
+
# @return (see #run)
|
54
|
+
def self.run(*args) new.run(*args) end
|
55
|
+
|
56
|
+
def initialize
|
57
|
+
log.show_backtraces = false
|
58
|
+
end
|
59
|
+
|
60
|
+
# Runs the {Command} object matching the command name of the first
|
61
|
+
# argument.
|
62
|
+
# @return [void]
|
63
|
+
def run(*args)
|
64
|
+
unless args == ['--help']
|
65
|
+
if args.empty? || args.first =~ /^-/
|
66
|
+
command_name = self.class.default_command
|
67
|
+
else
|
68
|
+
command_name = args.first.to_sym
|
69
|
+
args.shift
|
70
|
+
end
|
71
|
+
if commands.key?(command_name)
|
72
|
+
return commands[command_name].run(*args)
|
73
|
+
end
|
74
|
+
end
|
75
|
+
list_commands
|
76
|
+
end
|
77
|
+
|
78
|
+
private
|
79
|
+
|
80
|
+
def commands; self.class.commands end
|
81
|
+
|
82
|
+
def list_commands
|
83
|
+
log.puts "Usage: yard <command> [options]"
|
84
|
+
log.puts
|
85
|
+
log.puts "Commands:"
|
86
|
+
commands.keys.sort_by(&:to_s).each do |command_name|
|
87
|
+
command = commands[command_name].new
|
88
|
+
log.puts "%-8s %s" % [command_name, command.description]
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
data/lib/yard/cli/config.rb
CHANGED
@@ -1,198 +1,198 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module YARD
|
3
|
-
module CLI
|
4
|
-
# CLI command to view or edit configuration options
|
5
|
-
# @since 0.6.2
|
6
|
-
class Config < Command
|
7
|
-
# @return [Symbol, nil] the key to view/edit, if any
|
8
|
-
attr_accessor :key
|
9
|
-
|
10
|
-
# @return [Array, nil] the list of values to set (or single value), if modifying
|
11
|
-
attr_accessor :values
|
12
|
-
|
13
|
-
# @return [Boolean] whether to reset the {#key}
|
14
|
-
attr_accessor :reset
|
15
|
-
|
16
|
-
# @return [Boolean] whether the value being set should be inside a list
|
17
|
-
attr_accessor :as_list
|
18
|
-
|
19
|
-
# @return [Boolean] whether to append values to existing key
|
20
|
-
attr_accessor :append
|
21
|
-
|
22
|
-
# @return [String, nil] command to use when configuring ~/.gemrc file.
|
23
|
-
# If the string is nil, configuration should not occur.
|
24
|
-
attr_accessor :gem_install_cmd
|
25
|
-
|
26
|
-
def initialize
|
27
|
-
super
|
28
|
-
self.key = nil
|
29
|
-
self.values = []
|
30
|
-
self.reset = false
|
31
|
-
self.append = false
|
32
|
-
self.as_list = false
|
33
|
-
self.gem_install_cmd = nil
|
34
|
-
end
|
35
|
-
|
36
|
-
def description
|
37
|
-
'Views or edits current global configuration'
|
38
|
-
end
|
39
|
-
|
40
|
-
def run(*args)
|
41
|
-
optparse(*args)
|
42
|
-
if gem_install_cmd
|
43
|
-
configure_gemrc
|
44
|
-
elsif key
|
45
|
-
if reset || !values.empty?
|
46
|
-
modify_item
|
47
|
-
else
|
48
|
-
view_item
|
49
|
-
end
|
50
|
-
else
|
51
|
-
list_configuration
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
private
|
56
|
-
|
57
|
-
def configure_gemrc
|
58
|
-
return unless gem_install_cmd
|
59
|
-
|
60
|
-
require 'rubygems'
|
61
|
-
|
62
|
-
['install', :install, 'gem', :gem].find do |cmd|
|
63
|
-
conf = Gem.configuration[cmd] || ""
|
64
|
-
next if conf.empty? && cmd != :gem
|
65
|
-
|
66
|
-
conf = conf.split(/\s+/)
|
67
|
-
conf.delete_if {|c| c =~ /^--(no-)?document\b/ } # scrub doc args
|
68
|
-
conf |= ["--document=#{gem_install_cmd}"]
|
69
|
-
conf = conf.join(' ')
|
70
|
-
|
71
|
-
Gem.configuration[cmd] = conf
|
72
|
-
Gem.configuration.write
|
73
|
-
log.puts "Updated #{Gem.configuration.path || '~/.gemrc'}: '#{cmd}: #{conf}'"
|
74
|
-
true
|
75
|
-
end
|
76
|
-
end
|
77
|
-
|
78
|
-
def modify_item
|
79
|
-
if reset
|
80
|
-
log.debug "Resetting #{key}"
|
81
|
-
YARD::Config.options[key] = YARD::Config::DEFAULT_CONFIG_OPTIONS[key]
|
82
|
-
else
|
83
|
-
log.debug "Setting #{key} to #{values.inspect}"
|
84
|
-
items = encode_values
|
85
|
-
current_items = YARD::Config.options[key]
|
86
|
-
items = [current_items].flatten + [items].flatten if append
|
87
|
-
YARD::Config.options[key] = items
|
88
|
-
end
|
89
|
-
YARD::Config.save
|
90
|
-
end
|
91
|
-
|
92
|
-
def view_item
|
93
|
-
log.debug "Viewing #{key}"
|
94
|
-
log.puts YARD::Config.options[key].inspect
|
95
|
-
end
|
96
|
-
|
97
|
-
def list_configuration
|
98
|
-
log.debug "Listing configuration"
|
99
|
-
require 'yaml'
|
100
|
-
log.puts YAML.dump(YARD::Config.options).sub(/\A--.*\n/, '').gsub(/\n\n/, "\n")
|
101
|
-
end
|
102
|
-
|
103
|
-
def encode_values
|
104
|
-
if values.size == 1 && !as_list
|
105
|
-
encode_value(values.first)
|
106
|
-
else
|
107
|
-
values.map {|v| encode_value(v) }
|
108
|
-
end
|
109
|
-
end
|
110
|
-
|
111
|
-
def encode_value(value)
|
112
|
-
case value
|
113
|
-
when /^-?\d+/; value.to_i
|
114
|
-
when "true"; true
|
115
|
-
when "false"; false
|
116
|
-
else value
|
117
|
-
end
|
118
|
-
end
|
119
|
-
|
120
|
-
def optparse(*args)
|
121
|
-
list = false
|
122
|
-
self.as_list = false
|
123
|
-
self.append = false
|
124
|
-
opts = OptionParser.new
|
125
|
-
opts.banner = "Usage: yard config [options] [item [value ...]]"
|
126
|
-
opts.separator ""
|
127
|
-
opts.separator "Example: yard config load_plugins true"
|
128
|
-
opts.separator ""
|
129
|
-
opts.separator "Views and sets configuration items. If an item is provided"
|
130
|
-
opts.separator "With no value, the item is viewed. If a value is provided,"
|
131
|
-
opts.separator "the item is modified. Specifying no item is equivalent to --list."
|
132
|
-
opts.separator "If you specify multiple space delimited values, these are"
|
133
|
-
opts.separator "parsed as an array of values."
|
134
|
-
opts.separator ""
|
135
|
-
opts.separator "Note that `true` and `false` are reserved words."
|
136
|
-
opts.separator ""
|
137
|
-
opts.separator "---------------------------------------------------------"
|
138
|
-
opts.separator ""
|
139
|
-
opts.separator "Configuring RubyGems support:"
|
140
|
-
opts.separator ""
|
141
|
-
opts.separator "YARD can automatically generate the YRI index or HTML"
|
142
|
-
opts.separator "documentation in a `gem install` by adding the following"
|
143
|
-
opts.separator "to your ~/.gemrc file:"
|
144
|
-
opts.separator ""
|
145
|
-
opts.separator " gem: \"--document=yri\""
|
146
|
-
opts.separator ""
|
147
|
-
opts.separator "Note: you can add 'yard' to also generate HTML docs."
|
148
|
-
opts.separator " You can also add 'ri' to continue generating RDoc."
|
149
|
-
opts.separator ""
|
150
|
-
opts.separator "You can also run the following command to configure this"
|
151
|
-
opts.separator "behavior automatically:"
|
152
|
-
opts.separator ""
|
153
|
-
opts.separator " $ yard config --gem-install-yri"
|
154
|
-
opts.separator ""
|
155
|
-
opts.separator "Add --gem-install-yard to also generate HTML."
|
156
|
-
opts.separator ""
|
157
|
-
opts.separator "---------------------------------------------------------"
|
158
|
-
opts.separator ""
|
159
|
-
opts.separator "General options:"
|
160
|
-
|
161
|
-
opts.on('-l', '--list', 'List current configuration') do
|
162
|
-
list = true
|
163
|
-
end
|
164
|
-
opts.on('-r', '--reset', 'Resets the specific item to default') do
|
165
|
-
self.reset = true
|
166
|
-
end
|
167
|
-
|
168
|
-
opts.separator ""
|
169
|
-
opts.separator "Modifying keys:"
|
170
|
-
|
171
|
-
opts.on('-a', '--append', 'Appends items to existing key values') do
|
172
|
-
self.append = true
|
173
|
-
end
|
174
|
-
opts.on('--as-list', 'Forces the value(s) to be wrapped in an array') do
|
175
|
-
self.as_list = true
|
176
|
-
end
|
177
|
-
|
178
|
-
opts.separator ""
|
179
|
-
opts.separator "Add RubyGems install hook:"
|
180
|
-
|
181
|
-
opts.on('--gem-install-yri', 'Configures ~/.gemrc to run yri on a gem install') do
|
182
|
-
self.gem_install_cmd = 'yri' if gem_install_cmd != 'yard'
|
183
|
-
end
|
184
|
-
|
185
|
-
opts.on('--gem-install-yard', 'Configures ~/.gemrc to run yard on a gem install') do
|
186
|
-
self.gem_install_cmd = 'yard'
|
187
|
-
end
|
188
|
-
|
189
|
-
common_options(opts)
|
190
|
-
parse_options(opts, args)
|
191
|
-
args = [] if list
|
192
|
-
self.key = args.shift.to_sym if args.size >= 1
|
193
|
-
self.values = args if args.size >= 1
|
194
|
-
args
|
195
|
-
end
|
196
|
-
end
|
197
|
-
end
|
198
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module YARD
|
3
|
+
module CLI
|
4
|
+
# CLI command to view or edit configuration options
|
5
|
+
# @since 0.6.2
|
6
|
+
class Config < Command
|
7
|
+
# @return [Symbol, nil] the key to view/edit, if any
|
8
|
+
attr_accessor :key
|
9
|
+
|
10
|
+
# @return [Array, nil] the list of values to set (or single value), if modifying
|
11
|
+
attr_accessor :values
|
12
|
+
|
13
|
+
# @return [Boolean] whether to reset the {#key}
|
14
|
+
attr_accessor :reset
|
15
|
+
|
16
|
+
# @return [Boolean] whether the value being set should be inside a list
|
17
|
+
attr_accessor :as_list
|
18
|
+
|
19
|
+
# @return [Boolean] whether to append values to existing key
|
20
|
+
attr_accessor :append
|
21
|
+
|
22
|
+
# @return [String, nil] command to use when configuring ~/.gemrc file.
|
23
|
+
# If the string is nil, configuration should not occur.
|
24
|
+
attr_accessor :gem_install_cmd
|
25
|
+
|
26
|
+
def initialize
|
27
|
+
super
|
28
|
+
self.key = nil
|
29
|
+
self.values = []
|
30
|
+
self.reset = false
|
31
|
+
self.append = false
|
32
|
+
self.as_list = false
|
33
|
+
self.gem_install_cmd = nil
|
34
|
+
end
|
35
|
+
|
36
|
+
def description
|
37
|
+
'Views or edits current global configuration'
|
38
|
+
end
|
39
|
+
|
40
|
+
def run(*args)
|
41
|
+
optparse(*args)
|
42
|
+
if gem_install_cmd
|
43
|
+
configure_gemrc
|
44
|
+
elsif key
|
45
|
+
if reset || !values.empty?
|
46
|
+
modify_item
|
47
|
+
else
|
48
|
+
view_item
|
49
|
+
end
|
50
|
+
else
|
51
|
+
list_configuration
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
private
|
56
|
+
|
57
|
+
def configure_gemrc
|
58
|
+
return unless gem_install_cmd
|
59
|
+
|
60
|
+
require 'rubygems'
|
61
|
+
|
62
|
+
['install', :install, 'gem', :gem].find do |cmd|
|
63
|
+
conf = Gem.configuration[cmd] || ""
|
64
|
+
next if conf.empty? && cmd != :gem
|
65
|
+
|
66
|
+
conf = conf.split(/\s+/)
|
67
|
+
conf.delete_if {|c| c =~ /^--(no-)?document\b/ } # scrub doc args
|
68
|
+
conf |= ["--document=#{gem_install_cmd}"]
|
69
|
+
conf = conf.join(' ')
|
70
|
+
|
71
|
+
Gem.configuration[cmd] = conf
|
72
|
+
Gem.configuration.write
|
73
|
+
log.puts "Updated #{Gem.configuration.path || '~/.gemrc'}: '#{cmd}: #{conf}'"
|
74
|
+
true
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
def modify_item
|
79
|
+
if reset
|
80
|
+
log.debug "Resetting #{key}"
|
81
|
+
YARD::Config.options[key] = YARD::Config::DEFAULT_CONFIG_OPTIONS[key]
|
82
|
+
else
|
83
|
+
log.debug "Setting #{key} to #{values.inspect}"
|
84
|
+
items = encode_values
|
85
|
+
current_items = YARD::Config.options[key]
|
86
|
+
items = [current_items].flatten + [items].flatten if append
|
87
|
+
YARD::Config.options[key] = items
|
88
|
+
end
|
89
|
+
YARD::Config.save
|
90
|
+
end
|
91
|
+
|
92
|
+
def view_item
|
93
|
+
log.debug "Viewing #{key}"
|
94
|
+
log.puts YARD::Config.options[key].inspect
|
95
|
+
end
|
96
|
+
|
97
|
+
def list_configuration
|
98
|
+
log.debug "Listing configuration"
|
99
|
+
require 'yaml'
|
100
|
+
log.puts YAML.dump(YARD::Config.options).sub(/\A--.*\n/, '').gsub(/\n\n/, "\n")
|
101
|
+
end
|
102
|
+
|
103
|
+
def encode_values
|
104
|
+
if values.size == 1 && !as_list
|
105
|
+
encode_value(values.first)
|
106
|
+
else
|
107
|
+
values.map {|v| encode_value(v) }
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
def encode_value(value)
|
112
|
+
case value
|
113
|
+
when /^-?\d+/; value.to_i
|
114
|
+
when "true"; true
|
115
|
+
when "false"; false
|
116
|
+
else value
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
def optparse(*args)
|
121
|
+
list = false
|
122
|
+
self.as_list = false
|
123
|
+
self.append = false
|
124
|
+
opts = OptionParser.new
|
125
|
+
opts.banner = "Usage: yard config [options] [item [value ...]]"
|
126
|
+
opts.separator ""
|
127
|
+
opts.separator "Example: yard config load_plugins true"
|
128
|
+
opts.separator ""
|
129
|
+
opts.separator "Views and sets configuration items. If an item is provided"
|
130
|
+
opts.separator "With no value, the item is viewed. If a value is provided,"
|
131
|
+
opts.separator "the item is modified. Specifying no item is equivalent to --list."
|
132
|
+
opts.separator "If you specify multiple space delimited values, these are"
|
133
|
+
opts.separator "parsed as an array of values."
|
134
|
+
opts.separator ""
|
135
|
+
opts.separator "Note that `true` and `false` are reserved words."
|
136
|
+
opts.separator ""
|
137
|
+
opts.separator "---------------------------------------------------------"
|
138
|
+
opts.separator ""
|
139
|
+
opts.separator "Configuring RubyGems support:"
|
140
|
+
opts.separator ""
|
141
|
+
opts.separator "YARD can automatically generate the YRI index or HTML"
|
142
|
+
opts.separator "documentation in a `gem install` by adding the following"
|
143
|
+
opts.separator "to your ~/.gemrc file:"
|
144
|
+
opts.separator ""
|
145
|
+
opts.separator " gem: \"--document=yri\""
|
146
|
+
opts.separator ""
|
147
|
+
opts.separator "Note: you can add 'yard' to also generate HTML docs."
|
148
|
+
opts.separator " You can also add 'ri' to continue generating RDoc."
|
149
|
+
opts.separator ""
|
150
|
+
opts.separator "You can also run the following command to configure this"
|
151
|
+
opts.separator "behavior automatically:"
|
152
|
+
opts.separator ""
|
153
|
+
opts.separator " $ yard config --gem-install-yri"
|
154
|
+
opts.separator ""
|
155
|
+
opts.separator "Add --gem-install-yard to also generate HTML."
|
156
|
+
opts.separator ""
|
157
|
+
opts.separator "---------------------------------------------------------"
|
158
|
+
opts.separator ""
|
159
|
+
opts.separator "General options:"
|
160
|
+
|
161
|
+
opts.on('-l', '--list', 'List current configuration') do
|
162
|
+
list = true
|
163
|
+
end
|
164
|
+
opts.on('-r', '--reset', 'Resets the specific item to default') do
|
165
|
+
self.reset = true
|
166
|
+
end
|
167
|
+
|
168
|
+
opts.separator ""
|
169
|
+
opts.separator "Modifying keys:"
|
170
|
+
|
171
|
+
opts.on('-a', '--append', 'Appends items to existing key values') do
|
172
|
+
self.append = true
|
173
|
+
end
|
174
|
+
opts.on('--as-list', 'Forces the value(s) to be wrapped in an array') do
|
175
|
+
self.as_list = true
|
176
|
+
end
|
177
|
+
|
178
|
+
opts.separator ""
|
179
|
+
opts.separator "Add RubyGems install hook:"
|
180
|
+
|
181
|
+
opts.on('--gem-install-yri', 'Configures ~/.gemrc to run yri on a gem install') do
|
182
|
+
self.gem_install_cmd = 'yri' if gem_install_cmd != 'yard'
|
183
|
+
end
|
184
|
+
|
185
|
+
opts.on('--gem-install-yard', 'Configures ~/.gemrc to run yard on a gem install') do
|
186
|
+
self.gem_install_cmd = 'yard'
|
187
|
+
end
|
188
|
+
|
189
|
+
common_options(opts)
|
190
|
+
parse_options(opts, args)
|
191
|
+
args = [] if list
|
192
|
+
self.key = args.shift.to_sym if args.size >= 1
|
193
|
+
self.values = args if args.size >= 1
|
194
|
+
args
|
195
|
+
end
|
196
|
+
end
|
197
|
+
end
|
198
|
+
end
|