yard 0.9.16 → 0.9.17
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of yard might be problematic. Click here for more details.
- checksums.yaml +5 -5
- data/.yardopts +26 -26
- data/CHANGELOG.md +728 -728
- data/LEGAL +66 -66
- data/LICENSE +22 -22
- data/README.md +328 -328
- data/Rakefile +53 -47
- data/benchmarks/builtins_vs_eval.rb +24 -24
- data/benchmarks/concat_vs_join.rb +13 -13
- data/benchmarks/erb_vs_erubis.rb +54 -54
- data/benchmarks/format_args.rb +47 -47
- data/benchmarks/generation.rb +38 -38
- data/benchmarks/marshal_vs_dbm.rb +64 -64
- data/benchmarks/parsing.rb +46 -46
- data/benchmarks/pathname_vs_string.rb +50 -50
- data/benchmarks/rdoc_vs_yardoc.rb +11 -11
- data/benchmarks/registry_store_types.rb +49 -49
- data/benchmarks/ri_vs_yri.rb +19 -19
- data/benchmarks/ripper_parser.rb +13 -13
- data/benchmarks/splat_vs_flatten.rb +13 -13
- data/benchmarks/template_erb.rb +23 -23
- data/benchmarks/template_format.rb +7 -7
- data/benchmarks/template_profile.rb +18 -18
- data/benchmarks/yri_cache.rb +20 -20
- data/bin/yard +13 -13
- data/bin/yardoc +13 -13
- data/bin/yri +13 -13
- data/docs/CodeObjects.md +115 -115
- data/docs/GettingStarted.md +679 -679
- data/docs/Handlers.md +152 -152
- data/docs/Overview.md +61 -61
- data/docs/Parser.md +191 -191
- data/docs/Tags.md +283 -283
- data/docs/TagsArch.md +123 -123
- data/docs/Templates.md +496 -496
- data/docs/WhatsNew.md +1245 -1245
- data/docs/templates/default/fulldoc/html/full_list_tag.erb +8 -8
- data/docs/templates/default/fulldoc/html/setup.rb +6 -6
- data/docs/templates/default/layout/html/setup.rb +9 -9
- data/docs/templates/default/layout/html/tag_list.erb +11 -11
- data/docs/templates/default/yard_tags/html/list.erb +18 -18
- data/docs/templates/default/yard_tags/html/setup.rb +26 -26
- data/docs/templates/plugin.rb +70 -70
- data/lib/rubygems_plugin.rb +9 -9
- data/lib/yard.rb +69 -69
- data/lib/yard/autoload.rb +303 -303
- data/lib/yard/cli/command.rb +85 -85
- data/lib/yard/cli/command_parser.rb +93 -93
- data/lib/yard/cli/config.rb +198 -198
- data/lib/yard/cli/diff.rb +270 -270
- data/lib/yard/cli/display.rb +69 -69
- data/lib/yard/cli/gems.rb +84 -84
- data/lib/yard/cli/graph.rb +125 -125
- data/lib/yard/cli/help.rb +20 -20
- data/lib/yard/cli/i18n.rb +70 -70
- data/lib/yard/cli/list.rb +23 -23
- data/lib/yard/cli/markup_types.rb +32 -32
- data/lib/yard/cli/server.rb +257 -257
- data/lib/yard/cli/stats.rb +231 -231
- data/lib/yard/cli/yardoc.rb +788 -788
- data/lib/yard/cli/yardopts_command.rb +110 -110
- data/lib/yard/cli/yri.rb +215 -215
- data/lib/yard/code_objects/base.rb +615 -610
- data/lib/yard/code_objects/class_object.rb +146 -146
- data/lib/yard/code_objects/class_variable_object.rb +11 -11
- data/lib/yard/code_objects/constant_object.rb +16 -16
- data/lib/yard/code_objects/extended_method_object.rb +24 -24
- data/lib/yard/code_objects/extra_file_object.rb +131 -131
- data/lib/yard/code_objects/macro_object.rb +172 -172
- data/lib/yard/code_objects/method_object.rb +196 -196
- data/lib/yard/code_objects/module_object.rb +21 -21
- data/lib/yard/code_objects/namespace_mapper.rb +114 -114
- data/lib/yard/code_objects/namespace_object.rb +200 -200
- data/lib/yard/code_objects/proxy.rb +240 -240
- data/lib/yard/code_objects/root_object.rb +19 -19
- data/lib/yard/config.rb +270 -270
- data/lib/yard/core_ext/array.rb +16 -16
- data/lib/yard/core_ext/file.rb +69 -69
- data/lib/yard/core_ext/hash.rb +16 -16
- data/lib/yard/core_ext/insertion.rb +63 -63
- data/lib/yard/core_ext/module.rb +20 -20
- data/lib/yard/core_ext/string.rb +68 -68
- data/lib/yard/core_ext/symbol_hash.rb +75 -75
- data/lib/yard/docstring.rb +386 -378
- data/lib/yard/docstring_parser.rb +345 -345
- data/lib/yard/gem_index.rb +29 -29
- data/lib/yard/globals.rb +22 -22
- data/lib/yard/handlers/base.rb +595 -595
- data/lib/yard/handlers/c/alias_handler.rb +16 -16
- data/lib/yard/handlers/c/attribute_handler.rb +13 -13
- data/lib/yard/handlers/c/base.rb +129 -129
- data/lib/yard/handlers/c/class_handler.rb +27 -27
- data/lib/yard/handlers/c/constant_handler.rb +13 -13
- data/lib/yard/handlers/c/handler_methods.rb +211 -211
- data/lib/yard/handlers/c/init_handler.rb +20 -20
- data/lib/yard/handlers/c/method_handler.rb +45 -36
- data/lib/yard/handlers/c/mixin_handler.rb +21 -21
- data/lib/yard/handlers/c/module_handler.rb +17 -17
- data/lib/yard/handlers/c/override_comment_handler.rb +31 -31
- data/lib/yard/handlers/c/path_handler.rb +11 -11
- data/lib/yard/handlers/c/struct_handler.rb +13 -13
- data/lib/yard/handlers/c/symbol_handler.rb +8 -8
- data/lib/yard/handlers/processor.rb +200 -200
- data/lib/yard/handlers/ruby/alias_handler.rb +44 -44
- data/lib/yard/handlers/ruby/attribute_handler.rb +87 -87
- data/lib/yard/handlers/ruby/base.rb +165 -165
- data/lib/yard/handlers/ruby/class_condition_handler.rb +92 -92
- data/lib/yard/handlers/ruby/class_handler.rb +119 -119
- data/lib/yard/handlers/ruby/class_variable_handler.rb +17 -17
- data/lib/yard/handlers/ruby/comment_handler.rb +10 -10
- data/lib/yard/handlers/ruby/constant_handler.rb +59 -59
- data/lib/yard/handlers/ruby/decorator_handler_methods.rb +123 -123
- data/lib/yard/handlers/ruby/dsl_handler.rb +15 -15
- data/lib/yard/handlers/ruby/dsl_handler_methods.rb +96 -95
- data/lib/yard/handlers/ruby/exception_handler.rb +27 -27
- data/lib/yard/handlers/ruby/extend_handler.rb +22 -22
- data/lib/yard/handlers/ruby/legacy/alias_handler.rb +37 -37
- data/lib/yard/handlers/ruby/legacy/attribute_handler.rb +65 -65
- data/lib/yard/handlers/ruby/legacy/base.rb +245 -245
- data/lib/yard/handlers/ruby/legacy/class_condition_handler.rb +83 -83
- data/lib/yard/handlers/ruby/legacy/class_handler.rb +113 -113
- data/lib/yard/handlers/ruby/legacy/class_variable_handler.rb +15 -15
- data/lib/yard/handlers/ruby/legacy/comment_handler.rb +10 -10
- data/lib/yard/handlers/ruby/legacy/constant_handler.rb +29 -29
- data/lib/yard/handlers/ruby/legacy/dsl_handler.rb +17 -17
- data/lib/yard/handlers/ruby/legacy/exception_handler.rb +13 -13
- data/lib/yard/handlers/ruby/legacy/extend_handler.rb +21 -21
- data/lib/yard/handlers/ruby/legacy/method_handler.rb +90 -90
- data/lib/yard/handlers/ruby/legacy/mixin_handler.rb +39 -39
- data/lib/yard/handlers/ruby/legacy/module_function_handler.rb +19 -19
- data/lib/yard/handlers/ruby/legacy/module_handler.rb +12 -12
- data/lib/yard/handlers/ruby/legacy/private_class_method_handler.rb +22 -22
- data/lib/yard/handlers/ruby/legacy/private_constant_handler.rb +22 -22
- data/lib/yard/handlers/ruby/legacy/visibility_handler.rb +17 -17
- data/lib/yard/handlers/ruby/legacy/yield_handler.rb +29 -29
- data/lib/yard/handlers/ruby/method_condition_handler.rb +9 -9
- data/lib/yard/handlers/ruby/method_handler.rb +118 -118
- data/lib/yard/handlers/ruby/mixin_handler.rb +37 -37
- data/lib/yard/handlers/ruby/module_function_handler.rb +27 -27
- data/lib/yard/handlers/ruby/module_handler.rb +12 -12
- data/lib/yard/handlers/ruby/private_class_method_handler.rb +14 -14
- data/lib/yard/handlers/ruby/private_constant_handler.rb +43 -43
- data/lib/yard/handlers/ruby/public_class_method_handler.rb +14 -14
- data/lib/yard/handlers/ruby/struct_handler_methods.rb +143 -143
- data/lib/yard/handlers/ruby/visibility_handler.rb +22 -22
- data/lib/yard/handlers/ruby/yield_handler.rb +31 -31
- data/lib/yard/i18n/locale.rb +67 -67
- data/lib/yard/i18n/message.rb +57 -57
- data/lib/yard/i18n/messages.rb +56 -56
- data/lib/yard/i18n/po_parser.rb +61 -61
- data/lib/yard/i18n/pot_generator.rb +290 -290
- data/lib/yard/i18n/text.rb +173 -173
- data/lib/yard/logging.rb +205 -205
- data/lib/yard/options.rb +217 -217
- data/lib/yard/parser/base.rb +57 -57
- data/lib/yard/parser/c/c_parser.rb +235 -235
- data/lib/yard/parser/c/comment_parser.rb +134 -134
- data/lib/yard/parser/c/statement.rb +64 -64
- data/lib/yard/parser/ruby/ast_node.rb +540 -540
- data/lib/yard/parser/ruby/legacy/ruby_lex.rb +1354 -1354
- data/lib/yard/parser/ruby/legacy/ruby_parser.rb +32 -32
- data/lib/yard/parser/ruby/legacy/statement.rb +66 -66
- data/lib/yard/parser/ruby/legacy/statement_list.rb +394 -394
- data/lib/yard/parser/ruby/legacy/token_list.rb +74 -74
- data/lib/yard/parser/ruby/ruby_parser.rb +687 -687
- data/lib/yard/parser/ruby/token_resolver.rb +156 -156
- data/lib/yard/parser/source_parser.rb +526 -526
- data/lib/yard/rake/yardoc_task.rb +81 -81
- data/lib/yard/registry.rb +439 -439
- data/lib/yard/registry_resolver.rb +189 -189
- data/lib/yard/registry_store.rb +337 -337
- data/lib/yard/rubygems/backports.rb +10 -10
- data/lib/yard/rubygems/backports/LICENSE.txt +57 -57
- data/lib/yard/rubygems/backports/MIT.txt +20 -20
- data/lib/yard/rubygems/backports/gem.rb +10 -10
- data/lib/yard/rubygems/backports/source_index.rb +365 -365
- data/lib/yard/rubygems/doc_manager.rb +90 -90
- data/lib/yard/rubygems/hook.rb +197 -197
- data/lib/yard/rubygems/specification.rb +50 -50
- data/lib/yard/serializers/base.rb +83 -83
- data/lib/yard/serializers/file_system_serializer.rb +123 -123
- data/lib/yard/serializers/process_serializer.rb +24 -24
- data/lib/yard/serializers/stdout_serializer.rb +34 -34
- data/lib/yard/serializers/yardoc_serializer.rb +152 -152
- data/lib/yard/server.rb +13 -13
- data/lib/yard/server/adapter.rb +100 -100
- data/lib/yard/server/commands/base.rb +209 -209
- data/lib/yard/server/commands/display_file_command.rb +29 -29
- data/lib/yard/server/commands/display_object_command.rb +65 -65
- data/lib/yard/server/commands/frames_command.rb +16 -16
- data/lib/yard/server/commands/library_command.rb +187 -187
- data/lib/yard/server/commands/library_index_command.rb +28 -28
- data/lib/yard/server/commands/list_command.rb +25 -25
- data/lib/yard/server/commands/root_request_command.rb +15 -15
- data/lib/yard/server/commands/search_command.rb +79 -79
- data/lib/yard/server/commands/static_file_command.rb +23 -23
- data/lib/yard/server/commands/static_file_helpers.rb +62 -62
- data/lib/yard/server/doc_server_helper.rb +91 -91
- data/lib/yard/server/doc_server_serializer.rb +39 -39
- data/lib/yard/server/library_version.rb +277 -277
- data/lib/yard/server/rack_adapter.rb +89 -89
- data/lib/yard/server/router.rb +187 -187
- data/lib/yard/server/static_caching.rb +46 -46
- data/lib/yard/server/templates/default/fulldoc/html/css/custom.css +127 -127
- data/lib/yard/server/templates/default/fulldoc/html/js/autocomplete.js +11 -11
- data/lib/yard/server/templates/default/layout/html/breadcrumb.erb +37 -37
- data/lib/yard/server/templates/default/layout/html/script_setup.erb +7 -7
- data/lib/yard/server/templates/default/layout/html/setup.rb +8 -8
- data/lib/yard/server/templates/default/method_details/html/permalink.erb +4 -4
- data/lib/yard/server/templates/default/method_details/html/setup.rb +5 -5
- data/lib/yard/server/templates/doc_server/library_list/html/headers.erb +8 -8
- data/lib/yard/server/templates/doc_server/library_list/html/library_list.erb +14 -14
- data/lib/yard/server/templates/doc_server/library_list/html/listing.erb +13 -13
- data/lib/yard/server/templates/doc_server/library_list/html/setup.rb +6 -6
- data/lib/yard/server/templates/doc_server/library_list/html/title.erb +2 -2
- data/lib/yard/server/templates/doc_server/processing/html/processing.erb +52 -52
- data/lib/yard/server/templates/doc_server/processing/html/setup.rb +4 -4
- data/lib/yard/server/templates/doc_server/search/html/search.erb +18 -18
- data/lib/yard/server/templates/doc_server/search/html/setup.rb +9 -9
- data/lib/yard/server/webrick_adapter.rb +45 -45
- data/lib/yard/tags/default_factory.rb +191 -191
- data/lib/yard/tags/default_tag.rb +13 -13
- data/lib/yard/tags/directives.rb +616 -616
- data/lib/yard/tags/library.rb +633 -633
- data/lib/yard/tags/option_tag.rb +13 -13
- data/lib/yard/tags/overload_tag.rb +71 -71
- data/lib/yard/tags/ref_tag.rb +8 -8
- data/lib/yard/tags/ref_tag_list.rb +28 -28
- data/lib/yard/tags/tag.rb +71 -71
- data/lib/yard/tags/tag_format_error.rb +7 -7
- data/lib/yard/tags/types_explainer.rb +162 -162
- data/lib/yard/templates/engine.rb +186 -186
- data/lib/yard/templates/erb_cache.rb +23 -23
- data/lib/yard/templates/helpers/base_helper.rb +215 -215
- data/lib/yard/templates/helpers/filter_helper.rb +27 -27
- data/lib/yard/templates/helpers/html_helper.rb +646 -642
- data/lib/yard/templates/helpers/html_syntax_highlight_helper.rb +78 -78
- data/lib/yard/templates/helpers/markup/rdoc_markdown.rb +23 -23
- data/lib/yard/templates/helpers/markup/rdoc_markup.rb +109 -109
- data/lib/yard/templates/helpers/markup_helper.rb +172 -172
- data/lib/yard/templates/helpers/method_helper.rb +75 -75
- data/lib/yard/templates/helpers/module_helper.rb +21 -21
- data/lib/yard/templates/helpers/text_helper.rb +112 -112
- data/lib/yard/templates/helpers/uml_helper.rb +47 -47
- data/lib/yard/templates/section.rb +105 -105
- data/lib/yard/templates/template.rb +418 -418
- data/lib/yard/templates/template_options.rb +92 -92
- data/lib/yard/verifier.rb +151 -151
- data/lib/yard/version.rb +3 -1
- data/spec/cli/command_parser_spec.rb +43 -43
- data/spec/cli/command_spec.rb +36 -36
- data/spec/cli/config_spec.rb +148 -148
- data/spec/cli/diff_spec.rb +254 -254
- data/spec/cli/display_spec.rb +30 -30
- data/spec/cli/gems_spec.rb +81 -81
- data/spec/cli/graph_spec.rb +18 -18
- data/spec/cli/help_spec.rb +22 -22
- data/spec/cli/i18n_spec.rb +107 -107
- data/spec/cli/list_spec.rb +8 -8
- data/spec/cli/markup_types_spec.rb +22 -22
- data/spec/cli/server_spec.rb +324 -324
- data/spec/cli/stats_spec.rb +96 -96
- data/spec/cli/yard_on_yard_spec.rb +38 -38
- data/spec/cli/yardoc_spec.rb +862 -849
- data/spec/cli/yri_spec.rb +101 -101
- data/spec/code_objects/base_spec.rb +470 -460
- data/spec/code_objects/class_object_spec.rb +226 -226
- data/spec/code_objects/code_object_list_spec.rb +36 -36
- data/spec/code_objects/constants_spec.rb +116 -116
- data/spec/code_objects/extra_file_object_spec.rb +160 -160
- data/spec/code_objects/macro_object_spec.rb +150 -150
- data/spec/code_objects/method_object_spec.rb +184 -184
- data/spec/code_objects/module_object_spec.rb +142 -142
- data/spec/code_objects/namespace_object_spec.rb +171 -171
- data/spec/code_objects/proxy_spec.rb +141 -141
- data/spec/code_objects/spec_helper.rb +3 -3
- data/spec/config_spec.rb +171 -171
- data/spec/core_ext/array_spec.rb +13 -13
- data/spec/core_ext/file_spec.rb +72 -72
- data/spec/core_ext/hash_spec.rb +14 -14
- data/spec/core_ext/insertion_spec.rb +37 -37
- data/spec/core_ext/module_spec.rb +15 -15
- data/spec/core_ext/string_spec.rb +42 -42
- data/spec/core_ext/symbol_hash_spec.rb +89 -89
- data/spec/docstring_parser_spec.rb +280 -262
- data/spec/docstring_spec.rb +373 -364
- data/spec/examples.txt +1875 -1871
- data/spec/handlers/alias_handler_spec.rb +82 -82
- data/spec/handlers/attribute_handler_spec.rb +96 -96
- data/spec/handlers/base_spec.rb +216 -216
- data/spec/handlers/c/alias_handler_spec.rb +34 -34
- data/spec/handlers/c/attribute_handler_spec.rb +41 -41
- data/spec/handlers/c/class_handler_spec.rb +78 -78
- data/spec/handlers/c/constant_handler_spec.rb +71 -71
- data/spec/handlers/c/init_handler_spec.rb +48 -48
- data/spec/handlers/c/method_handler_spec.rb +325 -325
- data/spec/handlers/c/mixin_handler_spec.rb +44 -44
- data/spec/handlers/c/module_handler_spec.rb +71 -71
- data/spec/handlers/c/override_comment_handler_spec.rb +47 -47
- data/spec/handlers/c/path_handler_spec.rb +36 -36
- data/spec/handlers/c/spec_helper.rb +23 -23
- data/spec/handlers/c/struct_handler_spec.rb +16 -16
- data/spec/handlers/class_condition_handler_spec.rb +87 -87
- data/spec/handlers/class_handler_spec.rb +247 -247
- data/spec/handlers/class_method_handler_shared_examples.rb +133 -133
- data/spec/handlers/class_variable_handler_spec.rb +12 -12
- data/spec/handlers/constant_handler_spec.rb +112 -112
- data/spec/handlers/decorator_handler_methods_spec.rb +393 -393
- data/spec/handlers/dsl_handler_spec.rb +219 -219
- data/spec/handlers/examples/alias_handler_001.rb.txt +45 -45
- data/spec/handlers/examples/attribute_handler_001.rb.txt +31 -31
- data/spec/handlers/examples/class_condition_handler_001.rb.txt +68 -68
- data/spec/handlers/examples/class_handler_001.rb.txt +120 -120
- data/spec/handlers/examples/class_variable_handler_001.rb.txt +9 -9
- data/spec/handlers/examples/constant_handler_001.rb.txt +35 -35
- data/spec/handlers/examples/dsl_handler_001.rb.txt +154 -154
- data/spec/handlers/examples/exception_handler_001.rb.txt +58 -58
- data/spec/handlers/examples/extend_handler_001.rb.txt +15 -15
- data/spec/handlers/examples/method_condition_handler_001.rb.txt +9 -9
- data/spec/handlers/examples/method_handler_001.rb.txt +128 -128
- data/spec/handlers/examples/mixin_handler_001.rb.txt +37 -37
- data/spec/handlers/examples/module_handler_001.rb.txt +29 -29
- data/spec/handlers/examples/private_constant_handler_001.rb.txt +8 -8
- data/spec/handlers/examples/process_handler_001.rb.txt +11 -11
- data/spec/handlers/examples/visibility_handler_001.rb.txt +35 -35
- data/spec/handlers/examples/yield_handler_001.rb.txt +54 -54
- data/spec/handlers/exception_handler_spec.rb +49 -49
- data/spec/handlers/extend_handler_spec.rb +24 -24
- data/spec/handlers/legacy_base_spec.rb +128 -128
- data/spec/handlers/method_condition_handler_spec.rb +15 -15
- data/spec/handlers/method_handler_spec.rb +190 -190
- data/spec/handlers/mixin_handler_spec.rb +56 -56
- data/spec/handlers/module_function_handler_spec.rb +106 -106
- data/spec/handlers/module_handler_spec.rb +35 -35
- data/spec/handlers/private_class_method_handler_spec.rb +11 -11
- data/spec/handlers/private_constant_handler_spec.rb +25 -25
- data/spec/handlers/processor_spec.rb +35 -35
- data/spec/handlers/public_class_method_handler_spec.rb +11 -11
- data/spec/handlers/ruby/base_spec.rb +95 -95
- data/spec/handlers/ruby/legacy/base_spec.rb +84 -84
- data/spec/handlers/spec_helper.rb +33 -33
- data/spec/handlers/visibility_handler_spec.rb +44 -44
- data/spec/handlers/yield_handler_spec.rb +52 -52
- data/spec/i18n/locale_spec.rb +81 -81
- data/spec/i18n/message_spec.rb +52 -52
- data/spec/i18n/messages_spec.rb +67 -67
- data/spec/i18n/pot_generator_spec.rb +295 -295
- data/spec/i18n/text_spec.rb +184 -184
- data/spec/logging_spec.rb +44 -44
- data/spec/options_spec.rb +171 -171
- data/spec/parser/base_spec.rb +24 -24
- data/spec/parser/c_parser_spec.rb +236 -223
- data/spec/parser/examples/array.c.txt +6267 -6267
- data/spec/parser/examples/example1.rb.txt +7 -7
- data/spec/parser/examples/extrafile.c.txt +8 -8
- data/spec/parser/examples/file.c.txt +28 -0
- data/spec/parser/examples/multifile.c.txt +22 -22
- data/spec/parser/examples/namespace.cpp.txt +68 -68
- data/spec/parser/examples/override.c.txt +424 -424
- data/spec/parser/examples/parse_in_order_001.rb.txt +2 -2
- data/spec/parser/examples/parse_in_order_002.rb.txt +1 -1
- data/spec/parser/examples/tag_handler_001.rb.txt +7 -7
- data/spec/parser/ruby/ast_node_spec.rb +33 -33
- data/spec/parser/ruby/legacy/statement_list_spec.rb +299 -299
- data/spec/parser/ruby/legacy/token_list_spec.rb +79 -79
- data/spec/parser/ruby/ruby_parser_spec.rb +508 -508
- data/spec/parser/ruby/token_resolver_spec.rb +165 -165
- data/spec/parser/source_parser_spec.rb +727 -727
- data/spec/parser/tag_parsing_spec.rb +17 -17
- data/spec/rake/yardoc_task_spec.rb +118 -118
- data/spec/registry_spec.rb +463 -463
- data/spec/registry_store_spec.rb +316 -316
- data/spec/rubygems/doc_manager_spec.rb +112 -112
- data/spec/serializers/data/serialized_yardoc/checksums +1 -1
- data/spec/serializers/file_system_serializer_spec.rb +145 -145
- data/spec/serializers/spec_helper.rb +2 -2
- data/spec/serializers/yardoc_serializer_spec.rb +78 -78
- data/spec/server/adapter_spec.rb +39 -39
- data/spec/server/commands/base_spec.rb +91 -91
- data/spec/server/commands/library_command_spec.rb +39 -39
- data/spec/server/doc_server_helper_spec.rb +72 -72
- data/spec/server/doc_server_serializer_spec.rb +60 -60
- data/spec/server/rack_adapter_spec.rb +21 -21
- data/spec/server/router_spec.rb +123 -123
- data/spec/server/spec_helper.rb +22 -22
- data/spec/server/static_caching_spec.rb +47 -47
- data/spec/server/webrick_servlet_spec.rb +20 -20
- data/spec/server_spec.rb +19 -19
- data/spec/spec_helper.rb +212 -212
- data/spec/tags/default_factory_spec.rb +168 -168
- data/spec/tags/default_tag_spec.rb +11 -11
- data/spec/tags/directives_spec.rb +463 -463
- data/spec/tags/library_spec.rb +48 -48
- data/spec/tags/overload_tag_spec.rb +53 -53
- data/spec/tags/ref_tag_list_spec.rb +53 -53
- data/spec/tags/types_explainer_spec.rb +203 -203
- data/spec/templates/class_spec.rb +45 -45
- data/spec/templates/constant_spec.rb +41 -41
- data/spec/templates/engine_spec.rb +131 -131
- data/spec/templates/examples/class001.html +308 -308
- data/spec/templates/examples/class001.txt +36 -36
- data/spec/templates/examples/class002.html +39 -39
- data/spec/templates/examples/constant001.txt +24 -24
- data/spec/templates/examples/constant002.txt +6 -6
- data/spec/templates/examples/constant003.txt +10 -10
- data/spec/templates/examples/method001.html +137 -137
- data/spec/templates/examples/method001.txt +35 -35
- data/spec/templates/examples/method002.html +91 -91
- data/spec/templates/examples/method002.txt +20 -20
- data/spec/templates/examples/method003.html +165 -165
- data/spec/templates/examples/method003.txt +45 -45
- data/spec/templates/examples/method004.html +48 -48
- data/spec/templates/examples/method004.txt +10 -10
- data/spec/templates/examples/method005.html +105 -105
- data/spec/templates/examples/method005.txt +33 -33
- data/spec/templates/examples/method006.html +107 -107
- data/spec/templates/examples/method006.txt +20 -20
- data/spec/templates/examples/module001.dot +33 -33
- data/spec/templates/examples/module001.html +833 -833
- data/spec/templates/examples/module001.txt +33 -33
- data/spec/templates/examples/module002.html +341 -341
- data/spec/templates/examples/module003.html +202 -202
- data/spec/templates/examples/module004.html +394 -394
- data/spec/templates/examples/module005.html +81 -81
- data/spec/templates/examples/tag001.txt +82 -82
- data/spec/templates/helpers/base_helper_spec.rb +171 -171
- data/spec/templates/helpers/html_helper_spec.rb +668 -653
- data/spec/templates/helpers/html_syntax_highlight_helper_spec.rb +65 -65
- data/spec/templates/helpers/markup/rdoc_markup_spec.rb +84 -84
- data/spec/templates/helpers/markup_helper_spec.rb +136 -136
- data/spec/templates/helpers/method_helper_spec.rb +107 -107
- data/spec/templates/helpers/module_helper_spec.rb +35 -35
- data/spec/templates/helpers/shared_signature_examples.rb +126 -126
- data/spec/templates/helpers/text_helper_spec.rb +65 -65
- data/spec/templates/method_spec.rb +118 -118
- data/spec/templates/module_spec.rb +203 -203
- data/spec/templates/onefile_spec.rb +66 -66
- data/spec/templates/section_spec.rb +144 -144
- data/spec/templates/spec_helper.rb +76 -76
- data/spec/templates/tag_spec.rb +52 -52
- data/spec/templates/template_spec.rb +410 -410
- data/spec/verifier_spec.rb +106 -106
- data/templates/default/class/dot/setup.rb +7 -7
- data/templates/default/class/dot/superklass.erb +2 -2
- data/templates/default/class/html/constructor_details.erb +8 -8
- data/templates/default/class/html/setup.rb +2 -2
- data/templates/default/class/html/subclasses.erb +4 -4
- data/templates/default/class/setup.rb +36 -36
- data/templates/default/class/text/setup.rb +12 -12
- data/templates/default/class/text/subclasses.erb +5 -5
- data/templates/default/constant/text/header.erb +11 -11
- data/templates/default/constant/text/setup.rb +4 -4
- data/templates/default/docstring/html/abstract.erb +4 -4
- data/templates/default/docstring/html/deprecated.erb +1 -1
- data/templates/default/docstring/html/index.erb +5 -5
- data/templates/default/docstring/html/note.erb +6 -6
- data/templates/default/docstring/html/private.erb +4 -4
- data/templates/default/docstring/html/text.erb +1 -1
- data/templates/default/docstring/html/todo.erb +6 -6
- data/templates/default/docstring/setup.rb +52 -52
- data/templates/default/docstring/text/abstract.erb +2 -2
- data/templates/default/docstring/text/deprecated.erb +2 -2
- data/templates/default/docstring/text/index.erb +2 -2
- data/templates/default/docstring/text/note.erb +3 -3
- data/templates/default/docstring/text/private.erb +2 -2
- data/templates/default/docstring/text/text.erb +1 -1
- data/templates/default/docstring/text/todo.erb +3 -3
- data/templates/default/fulldoc/html/css/full_list.css +58 -58
- data/templates/default/fulldoc/html/css/style.css +496 -496
- data/templates/default/fulldoc/html/frames.erb +17 -17
- data/templates/default/fulldoc/html/full_list.erb +37 -37
- data/templates/default/fulldoc/html/full_list_class.erb +2 -2
- data/templates/default/fulldoc/html/full_list_file.erb +7 -7
- data/templates/default/fulldoc/html/full_list_method.erb +10 -10
- data/templates/default/fulldoc/html/js/app.js +292 -292
- data/templates/default/fulldoc/html/js/full_list.js +216 -216
- data/templates/default/fulldoc/html/js/jquery.js +3 -3
- data/templates/default/fulldoc/html/setup.rb +241 -241
- data/templates/default/layout/dot/header.erb +5 -5
- data/templates/default/layout/dot/setup.rb +15 -15
- data/templates/default/layout/html/breadcrumb.erb +11 -11
- data/templates/default/layout/html/files.erb +11 -11
- data/templates/default/layout/html/footer.erb +5 -5
- data/templates/default/layout/html/headers.erb +15 -15
- data/templates/default/layout/html/index.erb +2 -2
- data/templates/default/layout/html/layout.erb +23 -23
- data/templates/default/layout/html/listing.erb +4 -4
- data/templates/default/layout/html/objects.erb +32 -32
- data/templates/default/layout/html/script_setup.erb +4 -4
- data/templates/default/layout/html/search.erb +12 -12
- data/templates/default/layout/html/setup.rb +89 -89
- data/templates/default/method/html/header.erb +16 -16
- data/templates/default/method/setup.rb +4 -4
- data/templates/default/method_details/html/header.erb +2 -2
- data/templates/default/method_details/html/method_signature.erb +24 -24
- data/templates/default/method_details/html/source.erb +9 -9
- data/templates/default/method_details/setup.rb +11 -11
- data/templates/default/method_details/text/header.erb +10 -10
- data/templates/default/method_details/text/method_signature.erb +12 -12
- data/templates/default/method_details/text/setup.rb +11 -11
- data/templates/default/module/dot/child.erb +1 -1
- data/templates/default/module/dot/dependencies.erb +2 -2
- data/templates/default/module/dot/header.erb +6 -6
- data/templates/default/module/dot/info.erb +13 -13
- data/templates/default/module/dot/setup.rb +15 -15
- data/templates/default/module/html/attribute_details.erb +10 -10
- data/templates/default/module/html/attribute_summary.erb +8 -8
- data/templates/default/module/html/box_info.erb +43 -43
- data/templates/default/module/html/children.erb +8 -8
- data/templates/default/module/html/constant_summary.erb +17 -17
- data/templates/default/module/html/defines.erb +2 -2
- data/templates/default/module/html/header.erb +5 -5
- data/templates/default/module/html/inherited_attributes.erb +14 -14
- data/templates/default/module/html/inherited_constants.erb +8 -8
- data/templates/default/module/html/inherited_methods.erb +18 -18
- data/templates/default/module/html/item_summary.erb +40 -40
- data/templates/default/module/html/method_details_list.erb +9 -9
- data/templates/default/module/html/method_summary.erb +13 -13
- data/templates/default/module/html/methodmissing.erb +12 -12
- data/templates/default/module/setup.rb +167 -167
- data/templates/default/module/text/children.erb +9 -9
- data/templates/default/module/text/class_meths_list.erb +7 -7
- data/templates/default/module/text/extends.erb +7 -7
- data/templates/default/module/text/header.erb +7 -7
- data/templates/default/module/text/includes.erb +7 -7
- data/templates/default/module/text/instance_meths_list.erb +7 -7
- data/templates/default/module/text/setup.rb +13 -13
- data/templates/default/onefile/html/files.erb +4 -4
- data/templates/default/onefile/html/headers.erb +6 -6
- data/templates/default/onefile/html/layout.erb +17 -17
- data/templates/default/onefile/html/readme.erb +2 -2
- data/templates/default/onefile/html/setup.rb +62 -62
- data/templates/default/root/dot/child.erb +2 -2
- data/templates/default/root/dot/setup.rb +6 -6
- data/templates/default/root/html/setup.rb +2 -2
- data/templates/default/tags/html/example.erb +10 -10
- data/templates/default/tags/html/index.erb +2 -2
- data/templates/default/tags/html/option.erb +24 -24
- data/templates/default/tags/html/overload.erb +13 -13
- data/templates/default/tags/html/see.erb +7 -7
- data/templates/default/tags/html/tag.erb +20 -20
- data/templates/default/tags/setup.rb +57 -57
- data/templates/default/tags/text/example.erb +12 -12
- data/templates/default/tags/text/index.erb +1 -1
- data/templates/default/tags/text/option.erb +20 -20
- data/templates/default/tags/text/overload.erb +19 -19
- data/templates/default/tags/text/see.erb +11 -11
- data/templates/default/tags/text/tag.erb +13 -13
- data/templates/guide/class/html/setup.rb +2 -2
- data/templates/guide/docstring/html/setup.rb +2 -2
- data/templates/guide/fulldoc/html/css/style.css +108 -108
- data/templates/guide/fulldoc/html/js/app.js +33 -33
- data/templates/guide/fulldoc/html/setup.rb +74 -74
- data/templates/guide/layout/html/layout.erb +81 -81
- data/templates/guide/layout/html/setup.rb +25 -25
- data/templates/guide/method/html/header.erb +17 -17
- data/templates/guide/method/html/setup.rb +22 -22
- data/templates/guide/module/html/header.erb +6 -6
- data/templates/guide/module/html/method_list.erb +4 -4
- data/templates/guide/module/html/setup.rb +27 -27
- data/templates/guide/onefile/html/files.erb +4 -4
- data/templates/guide/onefile/html/setup.rb +6 -6
- data/templates/guide/onefile/html/toc.erb +3 -3
- data/templates/guide/tags/html/setup.rb +9 -9
- data/yard.gemspec +43 -43
- metadata +4 -4
data/lib/yard/cli/help.rb
CHANGED
@@ -1,20 +1,20 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module YARD
|
3
|
-
module CLI
|
4
|
-
# Handles help for commands
|
5
|
-
# @since 0.6.0
|
6
|
-
class Help < Command
|
7
|
-
def description; "Retrieves help for a command" end
|
8
|
-
|
9
|
-
def run(*args)
|
10
|
-
cmd = args.first && CommandParser.commands[args.first.to_sym]
|
11
|
-
if cmd
|
12
|
-
cmd.run('--help')
|
13
|
-
else
|
14
|
-
log.puts "Command #{args.first} not found." if args.first
|
15
|
-
CommandParser.run('--help')
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module YARD
|
3
|
+
module CLI
|
4
|
+
# Handles help for commands
|
5
|
+
# @since 0.6.0
|
6
|
+
class Help < Command
|
7
|
+
def description; "Retrieves help for a command" end
|
8
|
+
|
9
|
+
def run(*args)
|
10
|
+
cmd = args.first && CommandParser.commands[args.first.to_sym]
|
11
|
+
if cmd
|
12
|
+
cmd.run('--help')
|
13
|
+
else
|
14
|
+
log.puts "Command #{args.first} not found." if args.first
|
15
|
+
CommandParser.run('--help')
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/lib/yard/cli/i18n.rb
CHANGED
@@ -1,70 +1,70 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require "pathname"
|
3
|
-
|
4
|
-
module YARD
|
5
|
-
module CLI
|
6
|
-
# CLI command to support internationalization (a.k.a. i18n).
|
7
|
-
# I18n feature is based on gettext technology.
|
8
|
-
# This command generates .pot file from docstring and extra
|
9
|
-
# documentation.
|
10
|
-
#
|
11
|
-
# @since 0.8.0
|
12
|
-
# @todo Support msgminit and msgmerge features?
|
13
|
-
class I18n < Yardoc
|
14
|
-
def initialize
|
15
|
-
super
|
16
|
-
@options.serializer.basepath = "po/yard.pot"
|
17
|
-
end
|
18
|
-
|
19
|
-
def description
|
20
|
-
'Generates .pot file from source code and extra documentation'
|
21
|
-
end
|
22
|
-
|
23
|
-
def run(*args)
|
24
|
-
if args.empty? || !args.first.nil?
|
25
|
-
# fail early if arguments are not valid
|
26
|
-
return unless parse_arguments(*args)
|
27
|
-
end
|
28
|
-
|
29
|
-
YARD.parse(files, excluded)
|
30
|
-
|
31
|
-
serializer = options.serializer
|
32
|
-
pot_file_path = Pathname.new(serializer.basepath).expand_path
|
33
|
-
pot_file_dir_path, pot_file_basename = pot_file_path.split
|
34
|
-
relative_base_path = Pathname.pwd.relative_path_from(pot_file_dir_path)
|
35
|
-
serializer.basepath = pot_file_dir_path.to_s
|
36
|
-
serializer.serialize(pot_file_basename.to_s,
|
37
|
-
generate_pot(relative_base_path.to_s))
|
38
|
-
|
39
|
-
true
|
40
|
-
end
|
41
|
-
|
42
|
-
private
|
43
|
-
|
44
|
-
def general_options(opts)
|
45
|
-
opts.banner = "Usage: yard i18n [options] [source_files [- extra_files]]"
|
46
|
-
opts.top.list.clear
|
47
|
-
opts.separator "(if a list of source files is omitted, "
|
48
|
-
opts.separator " {lib,app}/**/*.rb ext/**/*.c is used.)"
|
49
|
-
opts.separator ""
|
50
|
-
opts.separator "Example: yard i18n -o yard.pot - FAQ LICENSE"
|
51
|
-
opts.separator " The above example outputs .pot file for files in"
|
52
|
-
opts.separator " lib/**/*.rb to yard.pot including the extra files"
|
53
|
-
opts.separator " FAQ and LICENSE."
|
54
|
-
opts.separator ""
|
55
|
-
opts.separator "A base set of options can be specified by adding a .yardopts"
|
56
|
-
opts.separator "file to your base path containing all extra options separated"
|
57
|
-
opts.separator "by whitespace."
|
58
|
-
super(opts)
|
59
|
-
end
|
60
|
-
|
61
|
-
def generate_pot(relative_base_path)
|
62
|
-
generator = YARD::I18n::PotGenerator.new(relative_base_path)
|
63
|
-
objects = run_verifier(all_objects)
|
64
|
-
generator.parse_objects(objects)
|
65
|
-
generator.parse_files(options.files || [])
|
66
|
-
generator.generate
|
67
|
-
end
|
68
|
-
end
|
69
|
-
end
|
70
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require "pathname"
|
3
|
+
|
4
|
+
module YARD
|
5
|
+
module CLI
|
6
|
+
# CLI command to support internationalization (a.k.a. i18n).
|
7
|
+
# I18n feature is based on gettext technology.
|
8
|
+
# This command generates .pot file from docstring and extra
|
9
|
+
# documentation.
|
10
|
+
#
|
11
|
+
# @since 0.8.0
|
12
|
+
# @todo Support msgminit and msgmerge features?
|
13
|
+
class I18n < Yardoc
|
14
|
+
def initialize
|
15
|
+
super
|
16
|
+
@options.serializer.basepath = "po/yard.pot"
|
17
|
+
end
|
18
|
+
|
19
|
+
def description
|
20
|
+
'Generates .pot file from source code and extra documentation'
|
21
|
+
end
|
22
|
+
|
23
|
+
def run(*args)
|
24
|
+
if args.empty? || !args.first.nil?
|
25
|
+
# fail early if arguments are not valid
|
26
|
+
return unless parse_arguments(*args)
|
27
|
+
end
|
28
|
+
|
29
|
+
YARD.parse(files, excluded)
|
30
|
+
|
31
|
+
serializer = options.serializer
|
32
|
+
pot_file_path = Pathname.new(serializer.basepath).expand_path
|
33
|
+
pot_file_dir_path, pot_file_basename = pot_file_path.split
|
34
|
+
relative_base_path = Pathname.pwd.relative_path_from(pot_file_dir_path)
|
35
|
+
serializer.basepath = pot_file_dir_path.to_s
|
36
|
+
serializer.serialize(pot_file_basename.to_s,
|
37
|
+
generate_pot(relative_base_path.to_s))
|
38
|
+
|
39
|
+
true
|
40
|
+
end
|
41
|
+
|
42
|
+
private
|
43
|
+
|
44
|
+
def general_options(opts)
|
45
|
+
opts.banner = "Usage: yard i18n [options] [source_files [- extra_files]]"
|
46
|
+
opts.top.list.clear
|
47
|
+
opts.separator "(if a list of source files is omitted, "
|
48
|
+
opts.separator " {lib,app}/**/*.rb ext/**/*.{c,rb} is used.)"
|
49
|
+
opts.separator ""
|
50
|
+
opts.separator "Example: yard i18n -o yard.pot - FAQ LICENSE"
|
51
|
+
opts.separator " The above example outputs .pot file for files in"
|
52
|
+
opts.separator " lib/**/*.rb to yard.pot including the extra files"
|
53
|
+
opts.separator " FAQ and LICENSE."
|
54
|
+
opts.separator ""
|
55
|
+
opts.separator "A base set of options can be specified by adding a .yardopts"
|
56
|
+
opts.separator "file to your base path containing all extra options separated"
|
57
|
+
opts.separator "by whitespace."
|
58
|
+
super(opts)
|
59
|
+
end
|
60
|
+
|
61
|
+
def generate_pot(relative_base_path)
|
62
|
+
generator = YARD::I18n::PotGenerator.new(relative_base_path)
|
63
|
+
objects = run_verifier(all_objects)
|
64
|
+
generator.parse_objects(objects)
|
65
|
+
generator.parse_files(options.files || [])
|
66
|
+
generator.generate
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
data/lib/yard/cli/list.rb
CHANGED
@@ -1,23 +1,23 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module YARD
|
3
|
-
module CLI
|
4
|
-
# Lists all constant and method names in the codebase. Uses {Yardoc} --list.
|
5
|
-
class List < Command
|
6
|
-
def description; 'Lists all constant and methods. Uses `yard doc --list`' end
|
7
|
-
|
8
|
-
# Runs the commandline utility, parsing arguments and displaying a
|
9
|
-
# list of objects
|
10
|
-
#
|
11
|
-
# @param [Array<String>] args the list of arguments.
|
12
|
-
# @return [void]
|
13
|
-
def run(*args)
|
14
|
-
if args.include?('--help')
|
15
|
-
log.puts "Usage: yard list [yardoc_options]"
|
16
|
-
log.puts "Takes the same arguments as yardoc. See yardoc --help"
|
17
|
-
else
|
18
|
-
Yardoc.run('-c', '--list', *args)
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module YARD
|
3
|
+
module CLI
|
4
|
+
# Lists all constant and method names in the codebase. Uses {Yardoc} --list.
|
5
|
+
class List < Command
|
6
|
+
def description; 'Lists all constant and methods. Uses `yard doc --list`' end
|
7
|
+
|
8
|
+
# Runs the commandline utility, parsing arguments and displaying a
|
9
|
+
# list of objects
|
10
|
+
#
|
11
|
+
# @param [Array<String>] args the list of arguments.
|
12
|
+
# @return [void]
|
13
|
+
def run(*args)
|
14
|
+
if args.include?('--help')
|
15
|
+
log.puts "Usage: yard list [yardoc_options]"
|
16
|
+
log.puts "Takes the same arguments as yardoc. See yardoc --help"
|
17
|
+
else
|
18
|
+
Yardoc.run('-c', '--list', *args)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -1,32 +1,32 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module YARD
|
3
|
-
module CLI
|
4
|
-
# Lists all markup types
|
5
|
-
# @since 0.8.6
|
6
|
-
class MarkupTypes < Command
|
7
|
-
def description; 'Lists all available markup types and libraries' end
|
8
|
-
|
9
|
-
# Runs the commandline utility, parsing arguments and displaying a
|
10
|
-
# list of markup types
|
11
|
-
#
|
12
|
-
# @param [Array<String>] args the list of arguments.
|
13
|
-
# @return [void]
|
14
|
-
def run(*args) # rubocop:disable Lint/UnusedMethodArgument
|
15
|
-
log.puts "Available markup types for `doc' command:"
|
16
|
-
log.puts
|
17
|
-
types = Templates::Helpers::MarkupHelper::MARKUP_PROVIDERS
|
18
|
-
exts = Templates::Helpers::MarkupHelper::MARKUP_EXTENSIONS
|
19
|
-
types.sort_by {|name, _| name.to_s }.each do |name, providers|
|
20
|
-
log.puts "[#{name}]"
|
21
|
-
libs = providers.map {|p| p[:lib] }.compact
|
22
|
-
log.puts " Providers: #{libs.join(" ")}" unless libs.empty?
|
23
|
-
if exts[name]
|
24
|
-
log.puts " Extensions: #{exts[name].map {|e| ".#{e}" }.join(" ")}"
|
25
|
-
end
|
26
|
-
|
27
|
-
log.puts
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module YARD
|
3
|
+
module CLI
|
4
|
+
# Lists all markup types
|
5
|
+
# @since 0.8.6
|
6
|
+
class MarkupTypes < Command
|
7
|
+
def description; 'Lists all available markup types and libraries' end
|
8
|
+
|
9
|
+
# Runs the commandline utility, parsing arguments and displaying a
|
10
|
+
# list of markup types
|
11
|
+
#
|
12
|
+
# @param [Array<String>] args the list of arguments.
|
13
|
+
# @return [void]
|
14
|
+
def run(*args) # rubocop:disable Lint/UnusedMethodArgument
|
15
|
+
log.puts "Available markup types for `doc' command:"
|
16
|
+
log.puts
|
17
|
+
types = Templates::Helpers::MarkupHelper::MARKUP_PROVIDERS
|
18
|
+
exts = Templates::Helpers::MarkupHelper::MARKUP_EXTENSIONS
|
19
|
+
types.sort_by {|name, _| name.to_s }.each do |name, providers|
|
20
|
+
log.puts "[#{name}]"
|
21
|
+
libs = providers.map {|p| p[:lib] }.compact
|
22
|
+
log.puts " Providers: #{libs.join(" ")}" unless libs.empty?
|
23
|
+
if exts[name]
|
24
|
+
log.puts " Extensions: #{exts[name].map {|e| ".#{e}" }.join(" ")}"
|
25
|
+
end
|
26
|
+
|
27
|
+
log.puts
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
data/lib/yard/cli/server.rb
CHANGED
@@ -1,257 +1,257 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module YARD
|
3
|
-
module CLI
|
4
|
-
# A local documentation server
|
5
|
-
# @since 0.6.0
|
6
|
-
class Server < Command
|
7
|
-
# @return [Hash] a list of options to pass to the doc server
|
8
|
-
attr_accessor :options
|
9
|
-
|
10
|
-
# @return [Hash] a list of options to pass to the web server
|
11
|
-
attr_accessor :server_options
|
12
|
-
|
13
|
-
# @return [Hash] a list of library names and yardoc files to serve
|
14
|
-
attr_accessor :libraries
|
15
|
-
|
16
|
-
# @return [YARD::Server::Adapter] the adapter to use for loading the web server
|
17
|
-
attr_accessor :adapter
|
18
|
-
|
19
|
-
# @return [Array<String>] a list of scripts to load
|
20
|
-
# @since 0.6.2
|
21
|
-
attr_accessor :scripts
|
22
|
-
|
23
|
-
# @return [Array<String>] a list of template paths to register
|
24
|
-
# @since 0.6.2
|
25
|
-
attr_accessor :template_paths
|
26
|
-
|
27
|
-
# Creates a new instance of the Server command line utility
|
28
|
-
def initialize
|
29
|
-
super
|
30
|
-
self.scripts = []
|
31
|
-
self.template_paths = []
|
32
|
-
self.libraries = {}
|
33
|
-
self.options = SymbolHash.new(false).update(
|
34
|
-
:single_library => true,
|
35
|
-
:caching => false
|
36
|
-
)
|
37
|
-
self.server_options = {:Port => 8808}
|
38
|
-
end
|
39
|
-
|
40
|
-
def description
|
41
|
-
"Runs a local documentation server"
|
42
|
-
end
|
43
|
-
|
44
|
-
def run(*args)
|
45
|
-
optparse(*args)
|
46
|
-
|
47
|
-
select_adapter.setup
|
48
|
-
load_scripts
|
49
|
-
load_template_paths
|
50
|
-
adapter.new(libraries, options, server_options).start
|
51
|
-
end
|
52
|
-
|
53
|
-
private
|
54
|
-
|
55
|
-
def load_scripts
|
56
|
-
scripts.each {|file| load_script(file) }
|
57
|
-
end
|
58
|
-
|
59
|
-
def load_template_paths
|
60
|
-
return if YARD::Config.options[:safe_mode]
|
61
|
-
Templates::Engine.template_paths |= template_paths
|
62
|
-
end
|
63
|
-
|
64
|
-
def select_adapter
|
65
|
-
return adapter if adapter
|
66
|
-
require 'rubygems'
|
67
|
-
require 'rack'
|
68
|
-
self.adapter = YARD::Server::RackAdapter
|
69
|
-
rescue LoadError
|
70
|
-
self.adapter = YARD::Server::WebrickAdapter
|
71
|
-
end
|
72
|
-
|
73
|
-
def add_libraries(args)
|
74
|
-
(0...args.size).step(2) do |index|
|
75
|
-
library = args[index]
|
76
|
-
dir = args[index + 1]
|
77
|
-
|
78
|
-
libver = nil
|
79
|
-
if dir
|
80
|
-
if File.exist?(dir)
|
81
|
-
# Provided dir contains a .yardopts file
|
82
|
-
libver = create_library_version_if_yardopts_exist(library, dir)
|
83
|
-
libver ||= YARD::Server::LibraryVersion.new(library, nil, dir)
|
84
|
-
end
|
85
|
-
else
|
86
|
-
# Check if this dir contains a .yardopts file
|
87
|
-
pwd = Dir.pwd
|
88
|
-
libver = create_library_version_if_yardopts_exist(library, pwd)
|
89
|
-
|
90
|
-
# Check default location
|
91
|
-
yfile = File.join(pwd, Registry::DEFAULT_YARDOC_FILE)
|
92
|
-
libver ||= YARD::Server::LibraryVersion.new(library, nil, yfile)
|
93
|
-
end
|
94
|
-
|
95
|
-
# Register library
|
96
|
-
if libver
|
97
|
-
libver.yardoc_file = File.expand_path(libver.yardoc_file) if libver.yardoc_file
|
98
|
-
libver.source_path = File.expand_path(libver.source_path) if libver.source_path
|
99
|
-
libraries[library] ||= []
|
100
|
-
libraries[library] |= [libver]
|
101
|
-
else
|
102
|
-
log.warn "Cannot find yardoc db for #{library}: #{dir.inspect}"
|
103
|
-
end
|
104
|
-
end
|
105
|
-
end
|
106
|
-
|
107
|
-
# @param [String] library The library name.
|
108
|
-
# @param [String, nil] dir The argument provided on the CLI after the
|
109
|
-
# library name. Is supposed to point to either a project directory
|
110
|
-
# with a Yard options file, or a yardoc db.
|
111
|
-
# @return [LibraryVersion, nil]
|
112
|
-
def create_library_version_if_yardopts_exist(library, dir)
|
113
|
-
if dir
|
114
|
-
options_file = File.join(dir, Yardoc::DEFAULT_YARDOPTS_FILE)
|
115
|
-
if File.exist?(options_file)
|
116
|
-
# Found yardopts, extract db path
|
117
|
-
yfile = extract_db_from_options_file(options_file)
|
118
|
-
db = File.expand_path(yfile, dir)
|
119
|
-
|
120
|
-
# Create libver
|
121
|
-
libver = YARD::Server::LibraryVersion.new(library, nil, db)
|
122
|
-
libver.source_path = dir
|
123
|
-
libver
|
124
|
-
end
|
125
|
-
end
|
126
|
-
end
|
127
|
-
|
128
|
-
def add_gems
|
129
|
-
require 'rubygems'
|
130
|
-
YARD::GemIndex.each do |spec|
|
131
|
-
libraries[spec.name] ||= []
|
132
|
-
libraries[spec.name] |= [YARD::Server::LibraryVersion.new(spec.name, spec.version.to_s, nil, :gem)]
|
133
|
-
end
|
134
|
-
end
|
135
|
-
|
136
|
-
def add_gems_from_gemfile(gemfile = nil)
|
137
|
-
require 'bundler'
|
138
|
-
gemfile ||= "Gemfile"
|
139
|
-
if File.exist?("#{gemfile}.lock")
|
140
|
-
Bundler::LockfileParser.new(File.read("#{gemfile}.lock")).specs.each do |spec|
|
141
|
-
libraries[spec.name] ||= []
|
142
|
-
libraries[spec.name] |= [YARD::Server::LibraryVersion.new(spec.name, spec.version.to_s, nil, :gem)]
|
143
|
-
end
|
144
|
-
else
|
145
|
-
log.warn "Cannot find #{gemfile}.lock, ignoring --gemfile option"
|
146
|
-
end
|
147
|
-
rescue LoadError
|
148
|
-
log.error "Bundler not available, ignoring --gemfile option"
|
149
|
-
end
|
150
|
-
|
151
|
-
def optparse(*args)
|
152
|
-
opts = OptionParser.new
|
153
|
-
opts.banner = 'Usage: yard server [options] [[library yardoc_file] ...]'
|
154
|
-
opts.separator ''
|
155
|
-
opts.separator 'Example: yard server -m yard .yardoc ruby-core ../ruby/.yardoc'
|
156
|
-
opts.separator 'The above example serves documentation for YARD and Ruby-core'
|
157
|
-
opts.separator ''
|
158
|
-
opts.separator 'If no library/yardoc_file is specified, the server uses'
|
159
|
-
opts.separator 'the name of the current directory and `.yardoc` respectively'
|
160
|
-
opts.separator ''
|
161
|
-
opts.separator "General Options:"
|
162
|
-
opts.on('-m', '--multi-library', 'Serves documentation for multiple libraries') do
|
163
|
-
options[:single_library] = false
|
164
|
-
end
|
165
|
-
opts.on('-c', '--cache', 'Caches all documentation to document root (see --docroot)') do
|
166
|
-
options[:caching] = true
|
167
|
-
end
|
168
|
-
opts.on('-r', '--reload', 'Reparses the library code on each request') do
|
169
|
-
options[:incremental] = true
|
170
|
-
end
|
171
|
-
opts.on('-g', '--gems', 'Serves documentation for installed gems') do
|
172
|
-
add_gems
|
173
|
-
end
|
174
|
-
opts.on('-G', '--gemfile [GEMFILE]', 'Serves documentation for gems from Gemfile') do |gemfile|
|
175
|
-
add_gems_from_gemfile(gemfile)
|
176
|
-
end
|
177
|
-
opts.on('-t', '--template-path PATH',
|
178
|
-
'The template path to look for templates in. (used with -t).') do |path|
|
179
|
-
template_paths << path
|
180
|
-
end
|
181
|
-
opts.separator ''
|
182
|
-
opts.separator "Web Server Options:"
|
183
|
-
opts.on('-d', '--daemon', 'Daemonizes the server process') do
|
184
|
-
server_options[:daemonize] = true
|
185
|
-
end
|
186
|
-
opts.on('-B HOST', '--bind', 'The host address to bind to') do |host|
|
187
|
-
server_options[:Host] = host.to_s
|
188
|
-
end
|
189
|
-
opts.on('-p PORT', '--port', 'Serves documentation on PORT') do |port|
|
190
|
-
server_options[:Port] = port.to_i
|
191
|
-
end
|
192
|
-
opts.on('--docroot DOCROOT', 'Uses DOCROOT as document root') do |docroot|
|
193
|
-
server_options[:DocumentRoot] = File.expand_path(docroot)
|
194
|
-
end
|
195
|
-
opts.on('-a', '--adapter ADAPTER', 'Use the ADAPTER (full Ruby class) for web server') do |adapter|
|
196
|
-
if adapter.casecmp('webrick') == 0
|
197
|
-
self.adapter = YARD::Server::WebrickAdapter
|
198
|
-
elsif adapter.casecmp('rack') == 0
|
199
|
-
self.adapter = YARD::Server::RackAdapter
|
200
|
-
else
|
201
|
-
self.adapter = eval(adapter) # rubocop:disable Lint/Eval
|
202
|
-
end
|
203
|
-
end
|
204
|
-
opts.on('-s', '--server TYPE', 'Use a specific server type eg. thin,mongrel,cgi (Rack specific)') do |type|
|
205
|
-
server_options[:server] = type
|
206
|
-
end
|
207
|
-
opts.on('--fork', 'Use process forking when serving requests') do
|
208
|
-
options[:use_fork] = true
|
209
|
-
end
|
210
|
-
common_options(opts)
|
211
|
-
opts.on('-e', '--load FILE', 'A Ruby script to load before the source tree is parsed.') do |file|
|
212
|
-
scripts << file
|
213
|
-
end
|
214
|
-
parse_options(opts, args)
|
215
|
-
|
216
|
-
if args.empty? && libraries.empty?
|
217
|
-
# No args - try to use current dir
|
218
|
-
add_libraries([File.basename(Dir.pwd), nil])
|
219
|
-
|
220
|
-
# Generate doc for first time
|
221
|
-
# This is not necessary but makes for a better first-run experience
|
222
|
-
libver = libraries.empty? ? nil : libraries.values.first.first
|
223
|
-
generate_doc_for_first_time(libver) if libver && !libver.ready?
|
224
|
-
else
|
225
|
-
add_libraries(args)
|
226
|
-
options[:single_library] = false if libraries.size > 1
|
227
|
-
end
|
228
|
-
end
|
229
|
-
|
230
|
-
def generate_doc_for_first_time(libver)
|
231
|
-
log.enter_level(Logger::INFO) do
|
232
|
-
yardoc_file = libver.yardoc_file.sub(%r{^#{Regexp.quote Dir.pwd}[\\/]+}, '')
|
233
|
-
log.info "No yardoc db found in #{yardoc_file}, parsing source before starting server..."
|
234
|
-
end
|
235
|
-
Dir.chdir(libver.source_path) do
|
236
|
-
Yardoc.run('-n')
|
237
|
-
end
|
238
|
-
end
|
239
|
-
|
240
|
-
def extract_db_from_options_file(options_file)
|
241
|
-
args = File.read_binary(options_file).shell_split
|
242
|
-
db = YARD::Registry.yardoc_file
|
243
|
-
opts = OptionParser.new
|
244
|
-
opts.on('-b', '--db FILE') {|file| db = file }
|
245
|
-
|
246
|
-
begin
|
247
|
-
opts.parse!(args)
|
248
|
-
rescue OptionParser::ParseError
|
249
|
-
args.shift if args.first && args.first[0, 1] != '-'
|
250
|
-
retry
|
251
|
-
end
|
252
|
-
|
253
|
-
db
|
254
|
-
end
|
255
|
-
end
|
256
|
-
end
|
257
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module YARD
|
3
|
+
module CLI
|
4
|
+
# A local documentation server
|
5
|
+
# @since 0.6.0
|
6
|
+
class Server < Command
|
7
|
+
# @return [Hash] a list of options to pass to the doc server
|
8
|
+
attr_accessor :options
|
9
|
+
|
10
|
+
# @return [Hash] a list of options to pass to the web server
|
11
|
+
attr_accessor :server_options
|
12
|
+
|
13
|
+
# @return [Hash] a list of library names and yardoc files to serve
|
14
|
+
attr_accessor :libraries
|
15
|
+
|
16
|
+
# @return [YARD::Server::Adapter] the adapter to use for loading the web server
|
17
|
+
attr_accessor :adapter
|
18
|
+
|
19
|
+
# @return [Array<String>] a list of scripts to load
|
20
|
+
# @since 0.6.2
|
21
|
+
attr_accessor :scripts
|
22
|
+
|
23
|
+
# @return [Array<String>] a list of template paths to register
|
24
|
+
# @since 0.6.2
|
25
|
+
attr_accessor :template_paths
|
26
|
+
|
27
|
+
# Creates a new instance of the Server command line utility
|
28
|
+
def initialize
|
29
|
+
super
|
30
|
+
self.scripts = []
|
31
|
+
self.template_paths = []
|
32
|
+
self.libraries = {}
|
33
|
+
self.options = SymbolHash.new(false).update(
|
34
|
+
:single_library => true,
|
35
|
+
:caching => false
|
36
|
+
)
|
37
|
+
self.server_options = {:Port => 8808}
|
38
|
+
end
|
39
|
+
|
40
|
+
def description
|
41
|
+
"Runs a local documentation server"
|
42
|
+
end
|
43
|
+
|
44
|
+
def run(*args)
|
45
|
+
optparse(*args)
|
46
|
+
|
47
|
+
select_adapter.setup
|
48
|
+
load_scripts
|
49
|
+
load_template_paths
|
50
|
+
adapter.new(libraries, options, server_options).start
|
51
|
+
end
|
52
|
+
|
53
|
+
private
|
54
|
+
|
55
|
+
def load_scripts
|
56
|
+
scripts.each {|file| load_script(file) }
|
57
|
+
end
|
58
|
+
|
59
|
+
def load_template_paths
|
60
|
+
return if YARD::Config.options[:safe_mode]
|
61
|
+
Templates::Engine.template_paths |= template_paths
|
62
|
+
end
|
63
|
+
|
64
|
+
def select_adapter
|
65
|
+
return adapter if adapter
|
66
|
+
require 'rubygems'
|
67
|
+
require 'rack'
|
68
|
+
self.adapter = YARD::Server::RackAdapter
|
69
|
+
rescue LoadError
|
70
|
+
self.adapter = YARD::Server::WebrickAdapter
|
71
|
+
end
|
72
|
+
|
73
|
+
def add_libraries(args)
|
74
|
+
(0...args.size).step(2) do |index|
|
75
|
+
library = args[index]
|
76
|
+
dir = args[index + 1]
|
77
|
+
|
78
|
+
libver = nil
|
79
|
+
if dir
|
80
|
+
if File.exist?(dir)
|
81
|
+
# Provided dir contains a .yardopts file
|
82
|
+
libver = create_library_version_if_yardopts_exist(library, dir)
|
83
|
+
libver ||= YARD::Server::LibraryVersion.new(library, nil, dir)
|
84
|
+
end
|
85
|
+
else
|
86
|
+
# Check if this dir contains a .yardopts file
|
87
|
+
pwd = Dir.pwd
|
88
|
+
libver = create_library_version_if_yardopts_exist(library, pwd)
|
89
|
+
|
90
|
+
# Check default location
|
91
|
+
yfile = File.join(pwd, Registry::DEFAULT_YARDOC_FILE)
|
92
|
+
libver ||= YARD::Server::LibraryVersion.new(library, nil, yfile)
|
93
|
+
end
|
94
|
+
|
95
|
+
# Register library
|
96
|
+
if libver
|
97
|
+
libver.yardoc_file = File.expand_path(libver.yardoc_file) if libver.yardoc_file
|
98
|
+
libver.source_path = File.expand_path(libver.source_path) if libver.source_path
|
99
|
+
libraries[library] ||= []
|
100
|
+
libraries[library] |= [libver]
|
101
|
+
else
|
102
|
+
log.warn "Cannot find yardoc db for #{library}: #{dir.inspect}"
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
# @param [String] library The library name.
|
108
|
+
# @param [String, nil] dir The argument provided on the CLI after the
|
109
|
+
# library name. Is supposed to point to either a project directory
|
110
|
+
# with a Yard options file, or a yardoc db.
|
111
|
+
# @return [LibraryVersion, nil]
|
112
|
+
def create_library_version_if_yardopts_exist(library, dir)
|
113
|
+
if dir
|
114
|
+
options_file = File.join(dir, Yardoc::DEFAULT_YARDOPTS_FILE)
|
115
|
+
if File.exist?(options_file)
|
116
|
+
# Found yardopts, extract db path
|
117
|
+
yfile = extract_db_from_options_file(options_file)
|
118
|
+
db = File.expand_path(yfile, dir)
|
119
|
+
|
120
|
+
# Create libver
|
121
|
+
libver = YARD::Server::LibraryVersion.new(library, nil, db)
|
122
|
+
libver.source_path = dir
|
123
|
+
libver
|
124
|
+
end
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
128
|
+
def add_gems
|
129
|
+
require 'rubygems'
|
130
|
+
YARD::GemIndex.each do |spec|
|
131
|
+
libraries[spec.name] ||= []
|
132
|
+
libraries[spec.name] |= [YARD::Server::LibraryVersion.new(spec.name, spec.version.to_s, nil, :gem)]
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
def add_gems_from_gemfile(gemfile = nil)
|
137
|
+
require 'bundler'
|
138
|
+
gemfile ||= "Gemfile"
|
139
|
+
if File.exist?("#{gemfile}.lock")
|
140
|
+
Bundler::LockfileParser.new(File.read("#{gemfile}.lock")).specs.each do |spec|
|
141
|
+
libraries[spec.name] ||= []
|
142
|
+
libraries[spec.name] |= [YARD::Server::LibraryVersion.new(spec.name, spec.version.to_s, nil, :gem)]
|
143
|
+
end
|
144
|
+
else
|
145
|
+
log.warn "Cannot find #{gemfile}.lock, ignoring --gemfile option"
|
146
|
+
end
|
147
|
+
rescue LoadError
|
148
|
+
log.error "Bundler not available, ignoring --gemfile option"
|
149
|
+
end
|
150
|
+
|
151
|
+
def optparse(*args)
|
152
|
+
opts = OptionParser.new
|
153
|
+
opts.banner = 'Usage: yard server [options] [[library yardoc_file] ...]'
|
154
|
+
opts.separator ''
|
155
|
+
opts.separator 'Example: yard server -m yard .yardoc ruby-core ../ruby/.yardoc'
|
156
|
+
opts.separator 'The above example serves documentation for YARD and Ruby-core'
|
157
|
+
opts.separator ''
|
158
|
+
opts.separator 'If no library/yardoc_file is specified, the server uses'
|
159
|
+
opts.separator 'the name of the current directory and `.yardoc` respectively'
|
160
|
+
opts.separator ''
|
161
|
+
opts.separator "General Options:"
|
162
|
+
opts.on('-m', '--multi-library', 'Serves documentation for multiple libraries') do
|
163
|
+
options[:single_library] = false
|
164
|
+
end
|
165
|
+
opts.on('-c', '--cache', 'Caches all documentation to document root (see --docroot)') do
|
166
|
+
options[:caching] = true
|
167
|
+
end
|
168
|
+
opts.on('-r', '--reload', 'Reparses the library code on each request') do
|
169
|
+
options[:incremental] = true
|
170
|
+
end
|
171
|
+
opts.on('-g', '--gems', 'Serves documentation for installed gems') do
|
172
|
+
add_gems
|
173
|
+
end
|
174
|
+
opts.on('-G', '--gemfile [GEMFILE]', 'Serves documentation for gems from Gemfile') do |gemfile|
|
175
|
+
add_gems_from_gemfile(gemfile)
|
176
|
+
end
|
177
|
+
opts.on('-t', '--template-path PATH',
|
178
|
+
'The template path to look for templates in. (used with -t).') do |path|
|
179
|
+
template_paths << path
|
180
|
+
end
|
181
|
+
opts.separator ''
|
182
|
+
opts.separator "Web Server Options:"
|
183
|
+
opts.on('-d', '--daemon', 'Daemonizes the server process') do
|
184
|
+
server_options[:daemonize] = true
|
185
|
+
end
|
186
|
+
opts.on('-B HOST', '--bind', 'The host address to bind to') do |host|
|
187
|
+
server_options[:Host] = host.to_s
|
188
|
+
end
|
189
|
+
opts.on('-p PORT', '--port', 'Serves documentation on PORT') do |port|
|
190
|
+
server_options[:Port] = port.to_i
|
191
|
+
end
|
192
|
+
opts.on('--docroot DOCROOT', 'Uses DOCROOT as document root') do |docroot|
|
193
|
+
server_options[:DocumentRoot] = File.expand_path(docroot)
|
194
|
+
end
|
195
|
+
opts.on('-a', '--adapter ADAPTER', 'Use the ADAPTER (full Ruby class) for web server') do |adapter|
|
196
|
+
if adapter.casecmp('webrick') == 0
|
197
|
+
self.adapter = YARD::Server::WebrickAdapter
|
198
|
+
elsif adapter.casecmp('rack') == 0
|
199
|
+
self.adapter = YARD::Server::RackAdapter
|
200
|
+
else
|
201
|
+
self.adapter = eval(adapter) # rubocop:disable Lint/Eval
|
202
|
+
end
|
203
|
+
end
|
204
|
+
opts.on('-s', '--server TYPE', 'Use a specific server type eg. thin,mongrel,cgi (Rack specific)') do |type|
|
205
|
+
server_options[:server] = type
|
206
|
+
end
|
207
|
+
opts.on('--fork', 'Use process forking when serving requests') do
|
208
|
+
options[:use_fork] = true
|
209
|
+
end
|
210
|
+
common_options(opts)
|
211
|
+
opts.on('-e', '--load FILE', 'A Ruby script to load before the source tree is parsed.') do |file|
|
212
|
+
scripts << file
|
213
|
+
end
|
214
|
+
parse_options(opts, args)
|
215
|
+
|
216
|
+
if args.empty? && libraries.empty?
|
217
|
+
# No args - try to use current dir
|
218
|
+
add_libraries([File.basename(Dir.pwd), nil])
|
219
|
+
|
220
|
+
# Generate doc for first time
|
221
|
+
# This is not necessary but makes for a better first-run experience
|
222
|
+
libver = libraries.empty? ? nil : libraries.values.first.first
|
223
|
+
generate_doc_for_first_time(libver) if libver && !libver.ready?
|
224
|
+
else
|
225
|
+
add_libraries(args)
|
226
|
+
options[:single_library] = false if libraries.size > 1
|
227
|
+
end
|
228
|
+
end
|
229
|
+
|
230
|
+
def generate_doc_for_first_time(libver)
|
231
|
+
log.enter_level(Logger::INFO) do
|
232
|
+
yardoc_file = libver.yardoc_file.sub(%r{^#{Regexp.quote Dir.pwd}[\\/]+}, '')
|
233
|
+
log.info "No yardoc db found in #{yardoc_file}, parsing source before starting server..."
|
234
|
+
end
|
235
|
+
Dir.chdir(libver.source_path) do
|
236
|
+
Yardoc.run('-n')
|
237
|
+
end
|
238
|
+
end
|
239
|
+
|
240
|
+
def extract_db_from_options_file(options_file)
|
241
|
+
args = File.read_binary(options_file).shell_split
|
242
|
+
db = YARD::Registry.yardoc_file
|
243
|
+
opts = OptionParser.new
|
244
|
+
opts.on('-b', '--db FILE') {|file| db = file }
|
245
|
+
|
246
|
+
begin
|
247
|
+
opts.parse!(args)
|
248
|
+
rescue OptionParser::ParseError
|
249
|
+
args.shift if args.first && args.first[0, 1] != '-'
|
250
|
+
retry
|
251
|
+
end
|
252
|
+
|
253
|
+
db
|
254
|
+
end
|
255
|
+
end
|
256
|
+
end
|
257
|
+
end
|