yard 0.9.16 → 0.9.17
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of yard might be problematic. Click here for more details.
- checksums.yaml +5 -5
- data/.yardopts +26 -26
- data/CHANGELOG.md +728 -728
- data/LEGAL +66 -66
- data/LICENSE +22 -22
- data/README.md +328 -328
- data/Rakefile +53 -47
- data/benchmarks/builtins_vs_eval.rb +24 -24
- data/benchmarks/concat_vs_join.rb +13 -13
- data/benchmarks/erb_vs_erubis.rb +54 -54
- data/benchmarks/format_args.rb +47 -47
- data/benchmarks/generation.rb +38 -38
- data/benchmarks/marshal_vs_dbm.rb +64 -64
- data/benchmarks/parsing.rb +46 -46
- data/benchmarks/pathname_vs_string.rb +50 -50
- data/benchmarks/rdoc_vs_yardoc.rb +11 -11
- data/benchmarks/registry_store_types.rb +49 -49
- data/benchmarks/ri_vs_yri.rb +19 -19
- data/benchmarks/ripper_parser.rb +13 -13
- data/benchmarks/splat_vs_flatten.rb +13 -13
- data/benchmarks/template_erb.rb +23 -23
- data/benchmarks/template_format.rb +7 -7
- data/benchmarks/template_profile.rb +18 -18
- data/benchmarks/yri_cache.rb +20 -20
- data/bin/yard +13 -13
- data/bin/yardoc +13 -13
- data/bin/yri +13 -13
- data/docs/CodeObjects.md +115 -115
- data/docs/GettingStarted.md +679 -679
- data/docs/Handlers.md +152 -152
- data/docs/Overview.md +61 -61
- data/docs/Parser.md +191 -191
- data/docs/Tags.md +283 -283
- data/docs/TagsArch.md +123 -123
- data/docs/Templates.md +496 -496
- data/docs/WhatsNew.md +1245 -1245
- data/docs/templates/default/fulldoc/html/full_list_tag.erb +8 -8
- data/docs/templates/default/fulldoc/html/setup.rb +6 -6
- data/docs/templates/default/layout/html/setup.rb +9 -9
- data/docs/templates/default/layout/html/tag_list.erb +11 -11
- data/docs/templates/default/yard_tags/html/list.erb +18 -18
- data/docs/templates/default/yard_tags/html/setup.rb +26 -26
- data/docs/templates/plugin.rb +70 -70
- data/lib/rubygems_plugin.rb +9 -9
- data/lib/yard.rb +69 -69
- data/lib/yard/autoload.rb +303 -303
- data/lib/yard/cli/command.rb +85 -85
- data/lib/yard/cli/command_parser.rb +93 -93
- data/lib/yard/cli/config.rb +198 -198
- data/lib/yard/cli/diff.rb +270 -270
- data/lib/yard/cli/display.rb +69 -69
- data/lib/yard/cli/gems.rb +84 -84
- data/lib/yard/cli/graph.rb +125 -125
- data/lib/yard/cli/help.rb +20 -20
- data/lib/yard/cli/i18n.rb +70 -70
- data/lib/yard/cli/list.rb +23 -23
- data/lib/yard/cli/markup_types.rb +32 -32
- data/lib/yard/cli/server.rb +257 -257
- data/lib/yard/cli/stats.rb +231 -231
- data/lib/yard/cli/yardoc.rb +788 -788
- data/lib/yard/cli/yardopts_command.rb +110 -110
- data/lib/yard/cli/yri.rb +215 -215
- data/lib/yard/code_objects/base.rb +615 -610
- data/lib/yard/code_objects/class_object.rb +146 -146
- data/lib/yard/code_objects/class_variable_object.rb +11 -11
- data/lib/yard/code_objects/constant_object.rb +16 -16
- data/lib/yard/code_objects/extended_method_object.rb +24 -24
- data/lib/yard/code_objects/extra_file_object.rb +131 -131
- data/lib/yard/code_objects/macro_object.rb +172 -172
- data/lib/yard/code_objects/method_object.rb +196 -196
- data/lib/yard/code_objects/module_object.rb +21 -21
- data/lib/yard/code_objects/namespace_mapper.rb +114 -114
- data/lib/yard/code_objects/namespace_object.rb +200 -200
- data/lib/yard/code_objects/proxy.rb +240 -240
- data/lib/yard/code_objects/root_object.rb +19 -19
- data/lib/yard/config.rb +270 -270
- data/lib/yard/core_ext/array.rb +16 -16
- data/lib/yard/core_ext/file.rb +69 -69
- data/lib/yard/core_ext/hash.rb +16 -16
- data/lib/yard/core_ext/insertion.rb +63 -63
- data/lib/yard/core_ext/module.rb +20 -20
- data/lib/yard/core_ext/string.rb +68 -68
- data/lib/yard/core_ext/symbol_hash.rb +75 -75
- data/lib/yard/docstring.rb +386 -378
- data/lib/yard/docstring_parser.rb +345 -345
- data/lib/yard/gem_index.rb +29 -29
- data/lib/yard/globals.rb +22 -22
- data/lib/yard/handlers/base.rb +595 -595
- data/lib/yard/handlers/c/alias_handler.rb +16 -16
- data/lib/yard/handlers/c/attribute_handler.rb +13 -13
- data/lib/yard/handlers/c/base.rb +129 -129
- data/lib/yard/handlers/c/class_handler.rb +27 -27
- data/lib/yard/handlers/c/constant_handler.rb +13 -13
- data/lib/yard/handlers/c/handler_methods.rb +211 -211
- data/lib/yard/handlers/c/init_handler.rb +20 -20
- data/lib/yard/handlers/c/method_handler.rb +45 -36
- data/lib/yard/handlers/c/mixin_handler.rb +21 -21
- data/lib/yard/handlers/c/module_handler.rb +17 -17
- data/lib/yard/handlers/c/override_comment_handler.rb +31 -31
- data/lib/yard/handlers/c/path_handler.rb +11 -11
- data/lib/yard/handlers/c/struct_handler.rb +13 -13
- data/lib/yard/handlers/c/symbol_handler.rb +8 -8
- data/lib/yard/handlers/processor.rb +200 -200
- data/lib/yard/handlers/ruby/alias_handler.rb +44 -44
- data/lib/yard/handlers/ruby/attribute_handler.rb +87 -87
- data/lib/yard/handlers/ruby/base.rb +165 -165
- data/lib/yard/handlers/ruby/class_condition_handler.rb +92 -92
- data/lib/yard/handlers/ruby/class_handler.rb +119 -119
- data/lib/yard/handlers/ruby/class_variable_handler.rb +17 -17
- data/lib/yard/handlers/ruby/comment_handler.rb +10 -10
- data/lib/yard/handlers/ruby/constant_handler.rb +59 -59
- data/lib/yard/handlers/ruby/decorator_handler_methods.rb +123 -123
- data/lib/yard/handlers/ruby/dsl_handler.rb +15 -15
- data/lib/yard/handlers/ruby/dsl_handler_methods.rb +96 -95
- data/lib/yard/handlers/ruby/exception_handler.rb +27 -27
- data/lib/yard/handlers/ruby/extend_handler.rb +22 -22
- data/lib/yard/handlers/ruby/legacy/alias_handler.rb +37 -37
- data/lib/yard/handlers/ruby/legacy/attribute_handler.rb +65 -65
- data/lib/yard/handlers/ruby/legacy/base.rb +245 -245
- data/lib/yard/handlers/ruby/legacy/class_condition_handler.rb +83 -83
- data/lib/yard/handlers/ruby/legacy/class_handler.rb +113 -113
- data/lib/yard/handlers/ruby/legacy/class_variable_handler.rb +15 -15
- data/lib/yard/handlers/ruby/legacy/comment_handler.rb +10 -10
- data/lib/yard/handlers/ruby/legacy/constant_handler.rb +29 -29
- data/lib/yard/handlers/ruby/legacy/dsl_handler.rb +17 -17
- data/lib/yard/handlers/ruby/legacy/exception_handler.rb +13 -13
- data/lib/yard/handlers/ruby/legacy/extend_handler.rb +21 -21
- data/lib/yard/handlers/ruby/legacy/method_handler.rb +90 -90
- data/lib/yard/handlers/ruby/legacy/mixin_handler.rb +39 -39
- data/lib/yard/handlers/ruby/legacy/module_function_handler.rb +19 -19
- data/lib/yard/handlers/ruby/legacy/module_handler.rb +12 -12
- data/lib/yard/handlers/ruby/legacy/private_class_method_handler.rb +22 -22
- data/lib/yard/handlers/ruby/legacy/private_constant_handler.rb +22 -22
- data/lib/yard/handlers/ruby/legacy/visibility_handler.rb +17 -17
- data/lib/yard/handlers/ruby/legacy/yield_handler.rb +29 -29
- data/lib/yard/handlers/ruby/method_condition_handler.rb +9 -9
- data/lib/yard/handlers/ruby/method_handler.rb +118 -118
- data/lib/yard/handlers/ruby/mixin_handler.rb +37 -37
- data/lib/yard/handlers/ruby/module_function_handler.rb +27 -27
- data/lib/yard/handlers/ruby/module_handler.rb +12 -12
- data/lib/yard/handlers/ruby/private_class_method_handler.rb +14 -14
- data/lib/yard/handlers/ruby/private_constant_handler.rb +43 -43
- data/lib/yard/handlers/ruby/public_class_method_handler.rb +14 -14
- data/lib/yard/handlers/ruby/struct_handler_methods.rb +143 -143
- data/lib/yard/handlers/ruby/visibility_handler.rb +22 -22
- data/lib/yard/handlers/ruby/yield_handler.rb +31 -31
- data/lib/yard/i18n/locale.rb +67 -67
- data/lib/yard/i18n/message.rb +57 -57
- data/lib/yard/i18n/messages.rb +56 -56
- data/lib/yard/i18n/po_parser.rb +61 -61
- data/lib/yard/i18n/pot_generator.rb +290 -290
- data/lib/yard/i18n/text.rb +173 -173
- data/lib/yard/logging.rb +205 -205
- data/lib/yard/options.rb +217 -217
- data/lib/yard/parser/base.rb +57 -57
- data/lib/yard/parser/c/c_parser.rb +235 -235
- data/lib/yard/parser/c/comment_parser.rb +134 -134
- data/lib/yard/parser/c/statement.rb +64 -64
- data/lib/yard/parser/ruby/ast_node.rb +540 -540
- data/lib/yard/parser/ruby/legacy/ruby_lex.rb +1354 -1354
- data/lib/yard/parser/ruby/legacy/ruby_parser.rb +32 -32
- data/lib/yard/parser/ruby/legacy/statement.rb +66 -66
- data/lib/yard/parser/ruby/legacy/statement_list.rb +394 -394
- data/lib/yard/parser/ruby/legacy/token_list.rb +74 -74
- data/lib/yard/parser/ruby/ruby_parser.rb +687 -687
- data/lib/yard/parser/ruby/token_resolver.rb +156 -156
- data/lib/yard/parser/source_parser.rb +526 -526
- data/lib/yard/rake/yardoc_task.rb +81 -81
- data/lib/yard/registry.rb +439 -439
- data/lib/yard/registry_resolver.rb +189 -189
- data/lib/yard/registry_store.rb +337 -337
- data/lib/yard/rubygems/backports.rb +10 -10
- data/lib/yard/rubygems/backports/LICENSE.txt +57 -57
- data/lib/yard/rubygems/backports/MIT.txt +20 -20
- data/lib/yard/rubygems/backports/gem.rb +10 -10
- data/lib/yard/rubygems/backports/source_index.rb +365 -365
- data/lib/yard/rubygems/doc_manager.rb +90 -90
- data/lib/yard/rubygems/hook.rb +197 -197
- data/lib/yard/rubygems/specification.rb +50 -50
- data/lib/yard/serializers/base.rb +83 -83
- data/lib/yard/serializers/file_system_serializer.rb +123 -123
- data/lib/yard/serializers/process_serializer.rb +24 -24
- data/lib/yard/serializers/stdout_serializer.rb +34 -34
- data/lib/yard/serializers/yardoc_serializer.rb +152 -152
- data/lib/yard/server.rb +13 -13
- data/lib/yard/server/adapter.rb +100 -100
- data/lib/yard/server/commands/base.rb +209 -209
- data/lib/yard/server/commands/display_file_command.rb +29 -29
- data/lib/yard/server/commands/display_object_command.rb +65 -65
- data/lib/yard/server/commands/frames_command.rb +16 -16
- data/lib/yard/server/commands/library_command.rb +187 -187
- data/lib/yard/server/commands/library_index_command.rb +28 -28
- data/lib/yard/server/commands/list_command.rb +25 -25
- data/lib/yard/server/commands/root_request_command.rb +15 -15
- data/lib/yard/server/commands/search_command.rb +79 -79
- data/lib/yard/server/commands/static_file_command.rb +23 -23
- data/lib/yard/server/commands/static_file_helpers.rb +62 -62
- data/lib/yard/server/doc_server_helper.rb +91 -91
- data/lib/yard/server/doc_server_serializer.rb +39 -39
- data/lib/yard/server/library_version.rb +277 -277
- data/lib/yard/server/rack_adapter.rb +89 -89
- data/lib/yard/server/router.rb +187 -187
- data/lib/yard/server/static_caching.rb +46 -46
- data/lib/yard/server/templates/default/fulldoc/html/css/custom.css +127 -127
- data/lib/yard/server/templates/default/fulldoc/html/js/autocomplete.js +11 -11
- data/lib/yard/server/templates/default/layout/html/breadcrumb.erb +37 -37
- data/lib/yard/server/templates/default/layout/html/script_setup.erb +7 -7
- data/lib/yard/server/templates/default/layout/html/setup.rb +8 -8
- data/lib/yard/server/templates/default/method_details/html/permalink.erb +4 -4
- data/lib/yard/server/templates/default/method_details/html/setup.rb +5 -5
- data/lib/yard/server/templates/doc_server/library_list/html/headers.erb +8 -8
- data/lib/yard/server/templates/doc_server/library_list/html/library_list.erb +14 -14
- data/lib/yard/server/templates/doc_server/library_list/html/listing.erb +13 -13
- data/lib/yard/server/templates/doc_server/library_list/html/setup.rb +6 -6
- data/lib/yard/server/templates/doc_server/library_list/html/title.erb +2 -2
- data/lib/yard/server/templates/doc_server/processing/html/processing.erb +52 -52
- data/lib/yard/server/templates/doc_server/processing/html/setup.rb +4 -4
- data/lib/yard/server/templates/doc_server/search/html/search.erb +18 -18
- data/lib/yard/server/templates/doc_server/search/html/setup.rb +9 -9
- data/lib/yard/server/webrick_adapter.rb +45 -45
- data/lib/yard/tags/default_factory.rb +191 -191
- data/lib/yard/tags/default_tag.rb +13 -13
- data/lib/yard/tags/directives.rb +616 -616
- data/lib/yard/tags/library.rb +633 -633
- data/lib/yard/tags/option_tag.rb +13 -13
- data/lib/yard/tags/overload_tag.rb +71 -71
- data/lib/yard/tags/ref_tag.rb +8 -8
- data/lib/yard/tags/ref_tag_list.rb +28 -28
- data/lib/yard/tags/tag.rb +71 -71
- data/lib/yard/tags/tag_format_error.rb +7 -7
- data/lib/yard/tags/types_explainer.rb +162 -162
- data/lib/yard/templates/engine.rb +186 -186
- data/lib/yard/templates/erb_cache.rb +23 -23
- data/lib/yard/templates/helpers/base_helper.rb +215 -215
- data/lib/yard/templates/helpers/filter_helper.rb +27 -27
- data/lib/yard/templates/helpers/html_helper.rb +646 -642
- data/lib/yard/templates/helpers/html_syntax_highlight_helper.rb +78 -78
- data/lib/yard/templates/helpers/markup/rdoc_markdown.rb +23 -23
- data/lib/yard/templates/helpers/markup/rdoc_markup.rb +109 -109
- data/lib/yard/templates/helpers/markup_helper.rb +172 -172
- data/lib/yard/templates/helpers/method_helper.rb +75 -75
- data/lib/yard/templates/helpers/module_helper.rb +21 -21
- data/lib/yard/templates/helpers/text_helper.rb +112 -112
- data/lib/yard/templates/helpers/uml_helper.rb +47 -47
- data/lib/yard/templates/section.rb +105 -105
- data/lib/yard/templates/template.rb +418 -418
- data/lib/yard/templates/template_options.rb +92 -92
- data/lib/yard/verifier.rb +151 -151
- data/lib/yard/version.rb +3 -1
- data/spec/cli/command_parser_spec.rb +43 -43
- data/spec/cli/command_spec.rb +36 -36
- data/spec/cli/config_spec.rb +148 -148
- data/spec/cli/diff_spec.rb +254 -254
- data/spec/cli/display_spec.rb +30 -30
- data/spec/cli/gems_spec.rb +81 -81
- data/spec/cli/graph_spec.rb +18 -18
- data/spec/cli/help_spec.rb +22 -22
- data/spec/cli/i18n_spec.rb +107 -107
- data/spec/cli/list_spec.rb +8 -8
- data/spec/cli/markup_types_spec.rb +22 -22
- data/spec/cli/server_spec.rb +324 -324
- data/spec/cli/stats_spec.rb +96 -96
- data/spec/cli/yard_on_yard_spec.rb +38 -38
- data/spec/cli/yardoc_spec.rb +862 -849
- data/spec/cli/yri_spec.rb +101 -101
- data/spec/code_objects/base_spec.rb +470 -460
- data/spec/code_objects/class_object_spec.rb +226 -226
- data/spec/code_objects/code_object_list_spec.rb +36 -36
- data/spec/code_objects/constants_spec.rb +116 -116
- data/spec/code_objects/extra_file_object_spec.rb +160 -160
- data/spec/code_objects/macro_object_spec.rb +150 -150
- data/spec/code_objects/method_object_spec.rb +184 -184
- data/spec/code_objects/module_object_spec.rb +142 -142
- data/spec/code_objects/namespace_object_spec.rb +171 -171
- data/spec/code_objects/proxy_spec.rb +141 -141
- data/spec/code_objects/spec_helper.rb +3 -3
- data/spec/config_spec.rb +171 -171
- data/spec/core_ext/array_spec.rb +13 -13
- data/spec/core_ext/file_spec.rb +72 -72
- data/spec/core_ext/hash_spec.rb +14 -14
- data/spec/core_ext/insertion_spec.rb +37 -37
- data/spec/core_ext/module_spec.rb +15 -15
- data/spec/core_ext/string_spec.rb +42 -42
- data/spec/core_ext/symbol_hash_spec.rb +89 -89
- data/spec/docstring_parser_spec.rb +280 -262
- data/spec/docstring_spec.rb +373 -364
- data/spec/examples.txt +1875 -1871
- data/spec/handlers/alias_handler_spec.rb +82 -82
- data/spec/handlers/attribute_handler_spec.rb +96 -96
- data/spec/handlers/base_spec.rb +216 -216
- data/spec/handlers/c/alias_handler_spec.rb +34 -34
- data/spec/handlers/c/attribute_handler_spec.rb +41 -41
- data/spec/handlers/c/class_handler_spec.rb +78 -78
- data/spec/handlers/c/constant_handler_spec.rb +71 -71
- data/spec/handlers/c/init_handler_spec.rb +48 -48
- data/spec/handlers/c/method_handler_spec.rb +325 -325
- data/spec/handlers/c/mixin_handler_spec.rb +44 -44
- data/spec/handlers/c/module_handler_spec.rb +71 -71
- data/spec/handlers/c/override_comment_handler_spec.rb +47 -47
- data/spec/handlers/c/path_handler_spec.rb +36 -36
- data/spec/handlers/c/spec_helper.rb +23 -23
- data/spec/handlers/c/struct_handler_spec.rb +16 -16
- data/spec/handlers/class_condition_handler_spec.rb +87 -87
- data/spec/handlers/class_handler_spec.rb +247 -247
- data/spec/handlers/class_method_handler_shared_examples.rb +133 -133
- data/spec/handlers/class_variable_handler_spec.rb +12 -12
- data/spec/handlers/constant_handler_spec.rb +112 -112
- data/spec/handlers/decorator_handler_methods_spec.rb +393 -393
- data/spec/handlers/dsl_handler_spec.rb +219 -219
- data/spec/handlers/examples/alias_handler_001.rb.txt +45 -45
- data/spec/handlers/examples/attribute_handler_001.rb.txt +31 -31
- data/spec/handlers/examples/class_condition_handler_001.rb.txt +68 -68
- data/spec/handlers/examples/class_handler_001.rb.txt +120 -120
- data/spec/handlers/examples/class_variable_handler_001.rb.txt +9 -9
- data/spec/handlers/examples/constant_handler_001.rb.txt +35 -35
- data/spec/handlers/examples/dsl_handler_001.rb.txt +154 -154
- data/spec/handlers/examples/exception_handler_001.rb.txt +58 -58
- data/spec/handlers/examples/extend_handler_001.rb.txt +15 -15
- data/spec/handlers/examples/method_condition_handler_001.rb.txt +9 -9
- data/spec/handlers/examples/method_handler_001.rb.txt +128 -128
- data/spec/handlers/examples/mixin_handler_001.rb.txt +37 -37
- data/spec/handlers/examples/module_handler_001.rb.txt +29 -29
- data/spec/handlers/examples/private_constant_handler_001.rb.txt +8 -8
- data/spec/handlers/examples/process_handler_001.rb.txt +11 -11
- data/spec/handlers/examples/visibility_handler_001.rb.txt +35 -35
- data/spec/handlers/examples/yield_handler_001.rb.txt +54 -54
- data/spec/handlers/exception_handler_spec.rb +49 -49
- data/spec/handlers/extend_handler_spec.rb +24 -24
- data/spec/handlers/legacy_base_spec.rb +128 -128
- data/spec/handlers/method_condition_handler_spec.rb +15 -15
- data/spec/handlers/method_handler_spec.rb +190 -190
- data/spec/handlers/mixin_handler_spec.rb +56 -56
- data/spec/handlers/module_function_handler_spec.rb +106 -106
- data/spec/handlers/module_handler_spec.rb +35 -35
- data/spec/handlers/private_class_method_handler_spec.rb +11 -11
- data/spec/handlers/private_constant_handler_spec.rb +25 -25
- data/spec/handlers/processor_spec.rb +35 -35
- data/spec/handlers/public_class_method_handler_spec.rb +11 -11
- data/spec/handlers/ruby/base_spec.rb +95 -95
- data/spec/handlers/ruby/legacy/base_spec.rb +84 -84
- data/spec/handlers/spec_helper.rb +33 -33
- data/spec/handlers/visibility_handler_spec.rb +44 -44
- data/spec/handlers/yield_handler_spec.rb +52 -52
- data/spec/i18n/locale_spec.rb +81 -81
- data/spec/i18n/message_spec.rb +52 -52
- data/spec/i18n/messages_spec.rb +67 -67
- data/spec/i18n/pot_generator_spec.rb +295 -295
- data/spec/i18n/text_spec.rb +184 -184
- data/spec/logging_spec.rb +44 -44
- data/spec/options_spec.rb +171 -171
- data/spec/parser/base_spec.rb +24 -24
- data/spec/parser/c_parser_spec.rb +236 -223
- data/spec/parser/examples/array.c.txt +6267 -6267
- data/spec/parser/examples/example1.rb.txt +7 -7
- data/spec/parser/examples/extrafile.c.txt +8 -8
- data/spec/parser/examples/file.c.txt +28 -0
- data/spec/parser/examples/multifile.c.txt +22 -22
- data/spec/parser/examples/namespace.cpp.txt +68 -68
- data/spec/parser/examples/override.c.txt +424 -424
- data/spec/parser/examples/parse_in_order_001.rb.txt +2 -2
- data/spec/parser/examples/parse_in_order_002.rb.txt +1 -1
- data/spec/parser/examples/tag_handler_001.rb.txt +7 -7
- data/spec/parser/ruby/ast_node_spec.rb +33 -33
- data/spec/parser/ruby/legacy/statement_list_spec.rb +299 -299
- data/spec/parser/ruby/legacy/token_list_spec.rb +79 -79
- data/spec/parser/ruby/ruby_parser_spec.rb +508 -508
- data/spec/parser/ruby/token_resolver_spec.rb +165 -165
- data/spec/parser/source_parser_spec.rb +727 -727
- data/spec/parser/tag_parsing_spec.rb +17 -17
- data/spec/rake/yardoc_task_spec.rb +118 -118
- data/spec/registry_spec.rb +463 -463
- data/spec/registry_store_spec.rb +316 -316
- data/spec/rubygems/doc_manager_spec.rb +112 -112
- data/spec/serializers/data/serialized_yardoc/checksums +1 -1
- data/spec/serializers/file_system_serializer_spec.rb +145 -145
- data/spec/serializers/spec_helper.rb +2 -2
- data/spec/serializers/yardoc_serializer_spec.rb +78 -78
- data/spec/server/adapter_spec.rb +39 -39
- data/spec/server/commands/base_spec.rb +91 -91
- data/spec/server/commands/library_command_spec.rb +39 -39
- data/spec/server/doc_server_helper_spec.rb +72 -72
- data/spec/server/doc_server_serializer_spec.rb +60 -60
- data/spec/server/rack_adapter_spec.rb +21 -21
- data/spec/server/router_spec.rb +123 -123
- data/spec/server/spec_helper.rb +22 -22
- data/spec/server/static_caching_spec.rb +47 -47
- data/spec/server/webrick_servlet_spec.rb +20 -20
- data/spec/server_spec.rb +19 -19
- data/spec/spec_helper.rb +212 -212
- data/spec/tags/default_factory_spec.rb +168 -168
- data/spec/tags/default_tag_spec.rb +11 -11
- data/spec/tags/directives_spec.rb +463 -463
- data/spec/tags/library_spec.rb +48 -48
- data/spec/tags/overload_tag_spec.rb +53 -53
- data/spec/tags/ref_tag_list_spec.rb +53 -53
- data/spec/tags/types_explainer_spec.rb +203 -203
- data/spec/templates/class_spec.rb +45 -45
- data/spec/templates/constant_spec.rb +41 -41
- data/spec/templates/engine_spec.rb +131 -131
- data/spec/templates/examples/class001.html +308 -308
- data/spec/templates/examples/class001.txt +36 -36
- data/spec/templates/examples/class002.html +39 -39
- data/spec/templates/examples/constant001.txt +24 -24
- data/spec/templates/examples/constant002.txt +6 -6
- data/spec/templates/examples/constant003.txt +10 -10
- data/spec/templates/examples/method001.html +137 -137
- data/spec/templates/examples/method001.txt +35 -35
- data/spec/templates/examples/method002.html +91 -91
- data/spec/templates/examples/method002.txt +20 -20
- data/spec/templates/examples/method003.html +165 -165
- data/spec/templates/examples/method003.txt +45 -45
- data/spec/templates/examples/method004.html +48 -48
- data/spec/templates/examples/method004.txt +10 -10
- data/spec/templates/examples/method005.html +105 -105
- data/spec/templates/examples/method005.txt +33 -33
- data/spec/templates/examples/method006.html +107 -107
- data/spec/templates/examples/method006.txt +20 -20
- data/spec/templates/examples/module001.dot +33 -33
- data/spec/templates/examples/module001.html +833 -833
- data/spec/templates/examples/module001.txt +33 -33
- data/spec/templates/examples/module002.html +341 -341
- data/spec/templates/examples/module003.html +202 -202
- data/spec/templates/examples/module004.html +394 -394
- data/spec/templates/examples/module005.html +81 -81
- data/spec/templates/examples/tag001.txt +82 -82
- data/spec/templates/helpers/base_helper_spec.rb +171 -171
- data/spec/templates/helpers/html_helper_spec.rb +668 -653
- data/spec/templates/helpers/html_syntax_highlight_helper_spec.rb +65 -65
- data/spec/templates/helpers/markup/rdoc_markup_spec.rb +84 -84
- data/spec/templates/helpers/markup_helper_spec.rb +136 -136
- data/spec/templates/helpers/method_helper_spec.rb +107 -107
- data/spec/templates/helpers/module_helper_spec.rb +35 -35
- data/spec/templates/helpers/shared_signature_examples.rb +126 -126
- data/spec/templates/helpers/text_helper_spec.rb +65 -65
- data/spec/templates/method_spec.rb +118 -118
- data/spec/templates/module_spec.rb +203 -203
- data/spec/templates/onefile_spec.rb +66 -66
- data/spec/templates/section_spec.rb +144 -144
- data/spec/templates/spec_helper.rb +76 -76
- data/spec/templates/tag_spec.rb +52 -52
- data/spec/templates/template_spec.rb +410 -410
- data/spec/verifier_spec.rb +106 -106
- data/templates/default/class/dot/setup.rb +7 -7
- data/templates/default/class/dot/superklass.erb +2 -2
- data/templates/default/class/html/constructor_details.erb +8 -8
- data/templates/default/class/html/setup.rb +2 -2
- data/templates/default/class/html/subclasses.erb +4 -4
- data/templates/default/class/setup.rb +36 -36
- data/templates/default/class/text/setup.rb +12 -12
- data/templates/default/class/text/subclasses.erb +5 -5
- data/templates/default/constant/text/header.erb +11 -11
- data/templates/default/constant/text/setup.rb +4 -4
- data/templates/default/docstring/html/abstract.erb +4 -4
- data/templates/default/docstring/html/deprecated.erb +1 -1
- data/templates/default/docstring/html/index.erb +5 -5
- data/templates/default/docstring/html/note.erb +6 -6
- data/templates/default/docstring/html/private.erb +4 -4
- data/templates/default/docstring/html/text.erb +1 -1
- data/templates/default/docstring/html/todo.erb +6 -6
- data/templates/default/docstring/setup.rb +52 -52
- data/templates/default/docstring/text/abstract.erb +2 -2
- data/templates/default/docstring/text/deprecated.erb +2 -2
- data/templates/default/docstring/text/index.erb +2 -2
- data/templates/default/docstring/text/note.erb +3 -3
- data/templates/default/docstring/text/private.erb +2 -2
- data/templates/default/docstring/text/text.erb +1 -1
- data/templates/default/docstring/text/todo.erb +3 -3
- data/templates/default/fulldoc/html/css/full_list.css +58 -58
- data/templates/default/fulldoc/html/css/style.css +496 -496
- data/templates/default/fulldoc/html/frames.erb +17 -17
- data/templates/default/fulldoc/html/full_list.erb +37 -37
- data/templates/default/fulldoc/html/full_list_class.erb +2 -2
- data/templates/default/fulldoc/html/full_list_file.erb +7 -7
- data/templates/default/fulldoc/html/full_list_method.erb +10 -10
- data/templates/default/fulldoc/html/js/app.js +292 -292
- data/templates/default/fulldoc/html/js/full_list.js +216 -216
- data/templates/default/fulldoc/html/js/jquery.js +3 -3
- data/templates/default/fulldoc/html/setup.rb +241 -241
- data/templates/default/layout/dot/header.erb +5 -5
- data/templates/default/layout/dot/setup.rb +15 -15
- data/templates/default/layout/html/breadcrumb.erb +11 -11
- data/templates/default/layout/html/files.erb +11 -11
- data/templates/default/layout/html/footer.erb +5 -5
- data/templates/default/layout/html/headers.erb +15 -15
- data/templates/default/layout/html/index.erb +2 -2
- data/templates/default/layout/html/layout.erb +23 -23
- data/templates/default/layout/html/listing.erb +4 -4
- data/templates/default/layout/html/objects.erb +32 -32
- data/templates/default/layout/html/script_setup.erb +4 -4
- data/templates/default/layout/html/search.erb +12 -12
- data/templates/default/layout/html/setup.rb +89 -89
- data/templates/default/method/html/header.erb +16 -16
- data/templates/default/method/setup.rb +4 -4
- data/templates/default/method_details/html/header.erb +2 -2
- data/templates/default/method_details/html/method_signature.erb +24 -24
- data/templates/default/method_details/html/source.erb +9 -9
- data/templates/default/method_details/setup.rb +11 -11
- data/templates/default/method_details/text/header.erb +10 -10
- data/templates/default/method_details/text/method_signature.erb +12 -12
- data/templates/default/method_details/text/setup.rb +11 -11
- data/templates/default/module/dot/child.erb +1 -1
- data/templates/default/module/dot/dependencies.erb +2 -2
- data/templates/default/module/dot/header.erb +6 -6
- data/templates/default/module/dot/info.erb +13 -13
- data/templates/default/module/dot/setup.rb +15 -15
- data/templates/default/module/html/attribute_details.erb +10 -10
- data/templates/default/module/html/attribute_summary.erb +8 -8
- data/templates/default/module/html/box_info.erb +43 -43
- data/templates/default/module/html/children.erb +8 -8
- data/templates/default/module/html/constant_summary.erb +17 -17
- data/templates/default/module/html/defines.erb +2 -2
- data/templates/default/module/html/header.erb +5 -5
- data/templates/default/module/html/inherited_attributes.erb +14 -14
- data/templates/default/module/html/inherited_constants.erb +8 -8
- data/templates/default/module/html/inherited_methods.erb +18 -18
- data/templates/default/module/html/item_summary.erb +40 -40
- data/templates/default/module/html/method_details_list.erb +9 -9
- data/templates/default/module/html/method_summary.erb +13 -13
- data/templates/default/module/html/methodmissing.erb +12 -12
- data/templates/default/module/setup.rb +167 -167
- data/templates/default/module/text/children.erb +9 -9
- data/templates/default/module/text/class_meths_list.erb +7 -7
- data/templates/default/module/text/extends.erb +7 -7
- data/templates/default/module/text/header.erb +7 -7
- data/templates/default/module/text/includes.erb +7 -7
- data/templates/default/module/text/instance_meths_list.erb +7 -7
- data/templates/default/module/text/setup.rb +13 -13
- data/templates/default/onefile/html/files.erb +4 -4
- data/templates/default/onefile/html/headers.erb +6 -6
- data/templates/default/onefile/html/layout.erb +17 -17
- data/templates/default/onefile/html/readme.erb +2 -2
- data/templates/default/onefile/html/setup.rb +62 -62
- data/templates/default/root/dot/child.erb +2 -2
- data/templates/default/root/dot/setup.rb +6 -6
- data/templates/default/root/html/setup.rb +2 -2
- data/templates/default/tags/html/example.erb +10 -10
- data/templates/default/tags/html/index.erb +2 -2
- data/templates/default/tags/html/option.erb +24 -24
- data/templates/default/tags/html/overload.erb +13 -13
- data/templates/default/tags/html/see.erb +7 -7
- data/templates/default/tags/html/tag.erb +20 -20
- data/templates/default/tags/setup.rb +57 -57
- data/templates/default/tags/text/example.erb +12 -12
- data/templates/default/tags/text/index.erb +1 -1
- data/templates/default/tags/text/option.erb +20 -20
- data/templates/default/tags/text/overload.erb +19 -19
- data/templates/default/tags/text/see.erb +11 -11
- data/templates/default/tags/text/tag.erb +13 -13
- data/templates/guide/class/html/setup.rb +2 -2
- data/templates/guide/docstring/html/setup.rb +2 -2
- data/templates/guide/fulldoc/html/css/style.css +108 -108
- data/templates/guide/fulldoc/html/js/app.js +33 -33
- data/templates/guide/fulldoc/html/setup.rb +74 -74
- data/templates/guide/layout/html/layout.erb +81 -81
- data/templates/guide/layout/html/setup.rb +25 -25
- data/templates/guide/method/html/header.erb +17 -17
- data/templates/guide/method/html/setup.rb +22 -22
- data/templates/guide/module/html/header.erb +6 -6
- data/templates/guide/module/html/method_list.erb +4 -4
- data/templates/guide/module/html/setup.rb +27 -27
- data/templates/guide/onefile/html/files.erb +4 -4
- data/templates/guide/onefile/html/setup.rb +6 -6
- data/templates/guide/onefile/html/toc.erb +3 -3
- data/templates/guide/tags/html/setup.rb +9 -9
- data/yard.gemspec +43 -43
- metadata +4 -4
@@ -1,186 +1,186 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require 'ostruct'
|
3
|
-
|
4
|
-
module YARD
|
5
|
-
module Templates
|
6
|
-
# This module manages all creation, handling and rendering of {Template}
|
7
|
-
# objects.
|
8
|
-
#
|
9
|
-
# * To create a template object at a path, use {template}.
|
10
|
-
# * To render a template, call {render}.
|
11
|
-
# * To register a template path in the lookup paths, call {register_template_path}.
|
12
|
-
module Engine
|
13
|
-
class << self
|
14
|
-
# @return [Array<String>] the list of registered template paths
|
15
|
-
attr_accessor :template_paths
|
16
|
-
|
17
|
-
# Registers a new template path in {template_paths}
|
18
|
-
#
|
19
|
-
# @param [String] path a new template path
|
20
|
-
# @return [void]
|
21
|
-
def register_template_path(path)
|
22
|
-
template_paths.push(path) unless template_paths.include?(path)
|
23
|
-
end
|
24
|
-
|
25
|
-
# Creates a template module representing the path. Searches on disk
|
26
|
-
# for the first directory named +path+ (joined by '/') within the
|
27
|
-
# template paths and builds a template module for. All other matching
|
28
|
-
# directories in other template paths will be included in the
|
29
|
-
# generated module as mixins (for overriding).
|
30
|
-
#
|
31
|
-
# @param [Array<String, Symbol>] path a list of path components
|
32
|
-
# @raise [ArgumentError] if the path does not exist within one of the
|
33
|
-
# {template_paths} on disk.
|
34
|
-
# @return [Template] the module representing the template
|
35
|
-
def template(*path)
|
36
|
-
from_template = nil
|
37
|
-
from_template = path.shift if path.first.is_a?(Template)
|
38
|
-
path = path.join('/')
|
39
|
-
full_paths = find_template_paths(from_template, path)
|
40
|
-
|
41
|
-
path = File.cleanpath(path).gsub('../', '')
|
42
|
-
raise ArgumentError, "No such template for #{path}" if full_paths.empty?
|
43
|
-
mod = template!(path, full_paths)
|
44
|
-
|
45
|
-
mod
|
46
|
-
end
|
47
|
-
|
48
|
-
# Forces creation of a template at +path+ within a +full_path+.
|
49
|
-
#
|
50
|
-
# @param [String] path the path name of the template
|
51
|
-
# @param [Array<String>] full_paths the full path on disk of the template
|
52
|
-
# @return [Template] the template module representing the +path+
|
53
|
-
def template!(path, full_paths = nil)
|
54
|
-
full_paths ||= [path]
|
55
|
-
full_paths = [full_paths] unless full_paths.is_a?(Array)
|
56
|
-
name = template_module_name(full_paths.first)
|
57
|
-
begin; return const_get(name); rescue NameError; nil end
|
58
|
-
|
59
|
-
mod = const_set(name, Module.new)
|
60
|
-
mod.send(:include, Template)
|
61
|
-
mod.send(:initialize, path, full_paths)
|
62
|
-
mod
|
63
|
-
end
|
64
|
-
|
65
|
-
# Renders a template on a {CodeObjects::Base code object} using
|
66
|
-
# a set of default (overridable) options. Either the +:object+
|
67
|
-
# or +:type+ keys must be provided.
|
68
|
-
#
|
69
|
-
# If a +:serializer+ key is provided and +:serialize+ is not set to
|
70
|
-
# false, the rendered contents will be serialized through the {Serializers::Base}
|
71
|
-
# object. See {with_serializer}.
|
72
|
-
#
|
73
|
-
# @example Renders an object with html formatting
|
74
|
-
# Engine.render(:format => :html, :object => obj)
|
75
|
-
# @example Renders without an object
|
76
|
-
# Engine.render(:type => :fulldoc, :otheropts => somevalue)
|
77
|
-
# @param [Hash] options the options hash
|
78
|
-
# @option options [Symbol] :format (:text) the default format
|
79
|
-
# @option options [Symbol] :type (nil) the :object's type.
|
80
|
-
# @option options [Symbol] :template (:default) the default template
|
81
|
-
# @return [String] the rendered template
|
82
|
-
def render(options = {})
|
83
|
-
options = set_default_options(options)
|
84
|
-
mod = template(options.template, options.type, options.format)
|
85
|
-
|
86
|
-
if options.serializer && options.serialize != false
|
87
|
-
with_serializer(options.object, options.serializer) { mod.run(options) }
|
88
|
-
else
|
89
|
-
mod.run(options)
|
90
|
-
end
|
91
|
-
end
|
92
|
-
|
93
|
-
# Passes a set of objects to the +:fulldoc+ template for full documentation generation.
|
94
|
-
# This is called by {CLI::Yardoc} to most commonly perform HTML
|
95
|
-
# documentation generation.
|
96
|
-
#
|
97
|
-
# @param [Array<CodeObjects::Base>] objects a list of {CodeObjects::Base}
|
98
|
-
# objects to pass to the template
|
99
|
-
# @param [Hash] options (see {render})
|
100
|
-
# @return [void]
|
101
|
-
def generate(objects, options = {})
|
102
|
-
options = set_default_options(options)
|
103
|
-
options.objects = objects
|
104
|
-
options.object = Registry.root
|
105
|
-
template(options.template, :fulldoc, options.format).run(options)
|
106
|
-
end
|
107
|
-
|
108
|
-
# Serializes the results of a block with a +serializer+ object.
|
109
|
-
#
|
110
|
-
# @param [CodeObjects::Base] object the code object to serialize
|
111
|
-
# @param [Serializers::Base] serializer the serializer object
|
112
|
-
# @yield a block whose result will be serialize
|
113
|
-
# @yieldreturn [String] the contents to serialize
|
114
|
-
# @see Serializers::Base
|
115
|
-
def with_serializer(object, serializer)
|
116
|
-
output = nil
|
117
|
-
filename = serializer.serialized_path(object)
|
118
|
-
if serializer.respond_to?(:basepath)
|
119
|
-
filename = File.join(serializer.basepath, filename)
|
120
|
-
end
|
121
|
-
log.capture("Generating #{filename}", nil) do
|
122
|
-
serializer.before_serialize if serializer
|
123
|
-
output = yield
|
124
|
-
if serializer
|
125
|
-
serializer.serialize(object, output)
|
126
|
-
serializer.after_serialize(output)
|
127
|
-
end
|
128
|
-
end
|
129
|
-
output
|
130
|
-
end
|
131
|
-
|
132
|
-
private
|
133
|
-
|
134
|
-
# Sets default options on the options hash
|
135
|
-
#
|
136
|
-
# @param [Hash] options the options hash
|
137
|
-
# @option options [Symbol] :format (:text) the default format
|
138
|
-
# @option options [Symbol] :type (nil) the :object's type, if provided
|
139
|
-
# @option options [Symbol] :template (:default) the default template
|
140
|
-
# @return [void]
|
141
|
-
def set_default_options(options = {})
|
142
|
-
if options.is_a?(Hash)
|
143
|
-
options = TemplateOptions.new.tap do |o|
|
144
|
-
o.reset_defaults
|
145
|
-
o.update(options)
|
146
|
-
end
|
147
|
-
end
|
148
|
-
options.type ||= options.object.type if options.object
|
149
|
-
options
|
150
|
-
end
|
151
|
-
|
152
|
-
# Searches through the registered {template_paths} and returns
|
153
|
-
# all full directories that have the +path+ within them on disk.
|
154
|
-
#
|
155
|
-
# @param [Template] from_template if provided, allows a relative
|
156
|
-
# path to be specified from this template's full path.
|
157
|
-
# @param [String] path the path component to search for in the
|
158
|
-
# {template_paths}
|
159
|
-
# @return [Array<String>] a list of full paths that are existing
|
160
|
-
# candidates for a template module
|
161
|
-
def find_template_paths(from_template, path)
|
162
|
-
paths = template_paths.dup
|
163
|
-
paths = from_template.full_paths + paths if from_template
|
164
|
-
|
165
|
-
paths.inject([]) do |acc, tp|
|
166
|
-
full_path = File.cleanpath(File.join(tp, path))
|
167
|
-
acc.unshift(full_path) if File.directory?(full_path)
|
168
|
-
acc
|
169
|
-
end.uniq
|
170
|
-
end
|
171
|
-
|
172
|
-
# The name of the module that represents a +path+
|
173
|
-
#
|
174
|
-
# @param [String] path the path to generate a module name for
|
175
|
-
# @return [String] the module name
|
176
|
-
def template_module_name(path)
|
177
|
-
'Template_' + path.to_s.gsub(/[^a-z0-9]/i, '_')
|
178
|
-
end
|
179
|
-
end
|
180
|
-
|
181
|
-
self.template_paths = []
|
182
|
-
end
|
183
|
-
|
184
|
-
Engine.register_template_path(File.join(YARD::ROOT, '..', 'templates'))
|
185
|
-
end
|
186
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require 'ostruct'
|
3
|
+
|
4
|
+
module YARD
|
5
|
+
module Templates
|
6
|
+
# This module manages all creation, handling and rendering of {Template}
|
7
|
+
# objects.
|
8
|
+
#
|
9
|
+
# * To create a template object at a path, use {template}.
|
10
|
+
# * To render a template, call {render}.
|
11
|
+
# * To register a template path in the lookup paths, call {register_template_path}.
|
12
|
+
module Engine
|
13
|
+
class << self
|
14
|
+
# @return [Array<String>] the list of registered template paths
|
15
|
+
attr_accessor :template_paths
|
16
|
+
|
17
|
+
# Registers a new template path in {template_paths}
|
18
|
+
#
|
19
|
+
# @param [String] path a new template path
|
20
|
+
# @return [void]
|
21
|
+
def register_template_path(path)
|
22
|
+
template_paths.push(path) unless template_paths.include?(path)
|
23
|
+
end
|
24
|
+
|
25
|
+
# Creates a template module representing the path. Searches on disk
|
26
|
+
# for the first directory named +path+ (joined by '/') within the
|
27
|
+
# template paths and builds a template module for. All other matching
|
28
|
+
# directories in other template paths will be included in the
|
29
|
+
# generated module as mixins (for overriding).
|
30
|
+
#
|
31
|
+
# @param [Array<String, Symbol>] path a list of path components
|
32
|
+
# @raise [ArgumentError] if the path does not exist within one of the
|
33
|
+
# {template_paths} on disk.
|
34
|
+
# @return [Template] the module representing the template
|
35
|
+
def template(*path)
|
36
|
+
from_template = nil
|
37
|
+
from_template = path.shift if path.first.is_a?(Template)
|
38
|
+
path = path.join('/')
|
39
|
+
full_paths = find_template_paths(from_template, path)
|
40
|
+
|
41
|
+
path = File.cleanpath(path).gsub('../', '')
|
42
|
+
raise ArgumentError, "No such template for #{path}" if full_paths.empty?
|
43
|
+
mod = template!(path, full_paths)
|
44
|
+
|
45
|
+
mod
|
46
|
+
end
|
47
|
+
|
48
|
+
# Forces creation of a template at +path+ within a +full_path+.
|
49
|
+
#
|
50
|
+
# @param [String] path the path name of the template
|
51
|
+
# @param [Array<String>] full_paths the full path on disk of the template
|
52
|
+
# @return [Template] the template module representing the +path+
|
53
|
+
def template!(path, full_paths = nil)
|
54
|
+
full_paths ||= [path]
|
55
|
+
full_paths = [full_paths] unless full_paths.is_a?(Array)
|
56
|
+
name = template_module_name(full_paths.first)
|
57
|
+
begin; return const_get(name); rescue NameError; nil end
|
58
|
+
|
59
|
+
mod = const_set(name, Module.new)
|
60
|
+
mod.send(:include, Template)
|
61
|
+
mod.send(:initialize, path, full_paths)
|
62
|
+
mod
|
63
|
+
end
|
64
|
+
|
65
|
+
# Renders a template on a {CodeObjects::Base code object} using
|
66
|
+
# a set of default (overridable) options. Either the +:object+
|
67
|
+
# or +:type+ keys must be provided.
|
68
|
+
#
|
69
|
+
# If a +:serializer+ key is provided and +:serialize+ is not set to
|
70
|
+
# false, the rendered contents will be serialized through the {Serializers::Base}
|
71
|
+
# object. See {with_serializer}.
|
72
|
+
#
|
73
|
+
# @example Renders an object with html formatting
|
74
|
+
# Engine.render(:format => :html, :object => obj)
|
75
|
+
# @example Renders without an object
|
76
|
+
# Engine.render(:type => :fulldoc, :otheropts => somevalue)
|
77
|
+
# @param [Hash] options the options hash
|
78
|
+
# @option options [Symbol] :format (:text) the default format
|
79
|
+
# @option options [Symbol] :type (nil) the :object's type.
|
80
|
+
# @option options [Symbol] :template (:default) the default template
|
81
|
+
# @return [String] the rendered template
|
82
|
+
def render(options = {})
|
83
|
+
options = set_default_options(options)
|
84
|
+
mod = template(options.template, options.type, options.format)
|
85
|
+
|
86
|
+
if options.serializer && options.serialize != false
|
87
|
+
with_serializer(options.object, options.serializer) { mod.run(options) }
|
88
|
+
else
|
89
|
+
mod.run(options)
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
# Passes a set of objects to the +:fulldoc+ template for full documentation generation.
|
94
|
+
# This is called by {CLI::Yardoc} to most commonly perform HTML
|
95
|
+
# documentation generation.
|
96
|
+
#
|
97
|
+
# @param [Array<CodeObjects::Base>] objects a list of {CodeObjects::Base}
|
98
|
+
# objects to pass to the template
|
99
|
+
# @param [Hash] options (see {render})
|
100
|
+
# @return [void]
|
101
|
+
def generate(objects, options = {})
|
102
|
+
options = set_default_options(options)
|
103
|
+
options.objects = objects
|
104
|
+
options.object = Registry.root
|
105
|
+
template(options.template, :fulldoc, options.format).run(options)
|
106
|
+
end
|
107
|
+
|
108
|
+
# Serializes the results of a block with a +serializer+ object.
|
109
|
+
#
|
110
|
+
# @param [CodeObjects::Base] object the code object to serialize
|
111
|
+
# @param [Serializers::Base] serializer the serializer object
|
112
|
+
# @yield a block whose result will be serialize
|
113
|
+
# @yieldreturn [String] the contents to serialize
|
114
|
+
# @see Serializers::Base
|
115
|
+
def with_serializer(object, serializer)
|
116
|
+
output = nil
|
117
|
+
filename = serializer.serialized_path(object)
|
118
|
+
if serializer.respond_to?(:basepath)
|
119
|
+
filename = File.join(serializer.basepath, filename)
|
120
|
+
end
|
121
|
+
log.capture("Generating #{filename}", nil) do
|
122
|
+
serializer.before_serialize if serializer
|
123
|
+
output = yield
|
124
|
+
if serializer
|
125
|
+
serializer.serialize(object, output)
|
126
|
+
serializer.after_serialize(output)
|
127
|
+
end
|
128
|
+
end
|
129
|
+
output
|
130
|
+
end
|
131
|
+
|
132
|
+
private
|
133
|
+
|
134
|
+
# Sets default options on the options hash
|
135
|
+
#
|
136
|
+
# @param [Hash] options the options hash
|
137
|
+
# @option options [Symbol] :format (:text) the default format
|
138
|
+
# @option options [Symbol] :type (nil) the :object's type, if provided
|
139
|
+
# @option options [Symbol] :template (:default) the default template
|
140
|
+
# @return [void]
|
141
|
+
def set_default_options(options = {})
|
142
|
+
if options.is_a?(Hash)
|
143
|
+
options = TemplateOptions.new.tap do |o|
|
144
|
+
o.reset_defaults
|
145
|
+
o.update(options)
|
146
|
+
end
|
147
|
+
end
|
148
|
+
options.type ||= options.object.type if options.object
|
149
|
+
options
|
150
|
+
end
|
151
|
+
|
152
|
+
# Searches through the registered {template_paths} and returns
|
153
|
+
# all full directories that have the +path+ within them on disk.
|
154
|
+
#
|
155
|
+
# @param [Template] from_template if provided, allows a relative
|
156
|
+
# path to be specified from this template's full path.
|
157
|
+
# @param [String] path the path component to search for in the
|
158
|
+
# {template_paths}
|
159
|
+
# @return [Array<String>] a list of full paths that are existing
|
160
|
+
# candidates for a template module
|
161
|
+
def find_template_paths(from_template, path)
|
162
|
+
paths = template_paths.dup
|
163
|
+
paths = from_template.full_paths + paths if from_template
|
164
|
+
|
165
|
+
paths.inject([]) do |acc, tp|
|
166
|
+
full_path = File.cleanpath(File.join(tp, path))
|
167
|
+
acc.unshift(full_path) if File.directory?(full_path)
|
168
|
+
acc
|
169
|
+
end.uniq
|
170
|
+
end
|
171
|
+
|
172
|
+
# The name of the module that represents a +path+
|
173
|
+
#
|
174
|
+
# @param [String] path the path to generate a module name for
|
175
|
+
# @return [String] the module name
|
176
|
+
def template_module_name(path)
|
177
|
+
'Template_' + path.to_s.gsub(/[^a-z0-9]/i, '_')
|
178
|
+
end
|
179
|
+
end
|
180
|
+
|
181
|
+
self.template_paths = []
|
182
|
+
end
|
183
|
+
|
184
|
+
Engine.register_template_path(File.join(YARD::ROOT, '..', 'templates'))
|
185
|
+
end
|
186
|
+
end
|
@@ -1,23 +1,23 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module YARD
|
3
|
-
module Templates
|
4
|
-
# @since 0.5.4
|
5
|
-
module ErbCache
|
6
|
-
def self.method_for(filename)
|
7
|
-
@methods ||= {}
|
8
|
-
return @methods[filename] if @methods[filename]
|
9
|
-
@methods[filename] = name = "_erb_cache_#{@methods.size}"
|
10
|
-
erb = yield.src
|
11
|
-
encoding = erb[/\A(#coding[:=].*\r?\n)/, 1] || ''
|
12
|
-
module_eval "#{encoding}def #{name}; #{erb}; end", filename
|
13
|
-
|
14
|
-
name
|
15
|
-
end
|
16
|
-
|
17
|
-
def self.clear!
|
18
|
-
return unless defined?(@methods) && @methods
|
19
|
-
@methods.clear
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module YARD
|
3
|
+
module Templates
|
4
|
+
# @since 0.5.4
|
5
|
+
module ErbCache
|
6
|
+
def self.method_for(filename)
|
7
|
+
@methods ||= {}
|
8
|
+
return @methods[filename] if @methods[filename]
|
9
|
+
@methods[filename] = name = "_erb_cache_#{@methods.size}"
|
10
|
+
erb = yield.src
|
11
|
+
encoding = erb[/\A(#coding[:=].*\r?\n)/, 1] || ''
|
12
|
+
module_eval "#{encoding}def #{name}; #{erb}; end", filename
|
13
|
+
|
14
|
+
name
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.clear!
|
18
|
+
return unless defined?(@methods) && @methods
|
19
|
+
@methods.clear
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -1,215 +1,215 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module YARD::Templates::Helpers
|
3
|
-
# The base helper module included in all templates.
|
4
|
-
module BaseHelper
|
5
|
-
attr_accessor :object, :serializer
|
6
|
-
|
7
|
-
# @return [CodeObjects::Base] the object representing the current generated
|
8
|
-
# page. Might not be the current {#object} when inside sub-templates.
|
9
|
-
attr_reader :owner
|
10
|
-
undef owner
|
11
|
-
def owner; (defined?(@owner) && @owner) || object.namespace end
|
12
|
-
|
13
|
-
# @group Managing Global Template State
|
14
|
-
|
15
|
-
# An object that keeps track of global state throughout the entire template
|
16
|
-
# rendering process (including any sub-templates).
|
17
|
-
#
|
18
|
-
# @return [OpenStruct] a struct object that stores state
|
19
|
-
# @since 0.6.0
|
20
|
-
def globals; options.globals end
|
21
|
-
|
22
|
-
# @group Running the Verifier
|
23
|
-
|
24
|
-
# Runs a list of objects against the {Verifier} object passed into the
|
25
|
-
# template and returns the subset of verified objects.
|
26
|
-
#
|
27
|
-
# @param [Array<CodeObjects::Base>] list a list of code objects
|
28
|
-
# @return [Array<CodeObjects::Base>] a list of code objects that match
|
29
|
-
# the verifier. If no verifier is supplied, all objects are returned.
|
30
|
-
def run_verifier(list)
|
31
|
-
options.verifier ? options.verifier.run(list) : list
|
32
|
-
end
|
33
|
-
|
34
|
-
# @group Escaping Text
|
35
|
-
|
36
|
-
# Escapes text. This is used a lot by the HtmlHelper and there should
|
37
|
-
# be some helper to "clean up" text for whatever, this is it.
|
38
|
-
def h(text)
|
39
|
-
text
|
40
|
-
end
|
41
|
-
|
42
|
-
# @group Linking Objects and URLs
|
43
|
-
|
44
|
-
# Links objects or URLs. This method will delegate to the correct +link_+
|
45
|
-
# method depending on the arguments passed in.
|
46
|
-
#
|
47
|
-
# @example Linking a URL
|
48
|
-
# linkify('http://example.com')
|
49
|
-
# @example Including docstring contents of an object
|
50
|
-
# linkify('include:YARD::Docstring')
|
51
|
-
# @example Linking to an extra file
|
52
|
-
# linkify('file:README')
|
53
|
-
# @example Linking an object by path
|
54
|
-
# linkify('YARD::Docstring')
|
55
|
-
def linkify(*args)
|
56
|
-
if args.first.is_a?(String)
|
57
|
-
case args.first
|
58
|
-
when %r{://}, /^mailto:/
|
59
|
-
link_url(args[0], args[1], {:target => '_parent'}.merge(args[2] || {}))
|
60
|
-
when /^include:file:(\S+)/
|
61
|
-
file = $1
|
62
|
-
relpath = File.relative_path(Dir.pwd, File.expand_path(file))
|
63
|
-
if relpath =~ /^\.\./
|
64
|
-
log.warn "Cannot include file from path `#{file}'"
|
65
|
-
""
|
66
|
-
elsif File.file?(file)
|
67
|
-
link_include_file(file)
|
68
|
-
else
|
69
|
-
log.warn "Cannot find file at `#{file}' for inclusion"
|
70
|
-
""
|
71
|
-
end
|
72
|
-
when /^include:(\S+)/
|
73
|
-
path = $1
|
74
|
-
obj = YARD::Registry.resolve(object.namespace, path)
|
75
|
-
if obj
|
76
|
-
link_include_object(obj)
|
77
|
-
else
|
78
|
-
log.warn "Cannot find object at `#{path}' for inclusion"
|
79
|
-
""
|
80
|
-
end
|
81
|
-
when /^render:(\S+)/
|
82
|
-
path = $1
|
83
|
-
obj = YARD::Registry.resolve(object, path)
|
84
|
-
if obj
|
85
|
-
opts = options.dup
|
86
|
-
opts.delete(:serializer)
|
87
|
-
obj.format(opts)
|
88
|
-
else
|
89
|
-
''
|
90
|
-
end
|
91
|
-
when /^file:(\S+?)(?:#(\S+))?$/
|
92
|
-
link_file($1, args[1] ? args[1] : nil, $2)
|
93
|
-
else
|
94
|
-
link_object(*args)
|
95
|
-
end
|
96
|
-
else
|
97
|
-
link_object(*args)
|
98
|
-
end
|
99
|
-
end
|
100
|
-
|
101
|
-
# Includes an object's docstring into output.
|
102
|
-
# @since 0.6.0
|
103
|
-
# @param [CodeObjects::Base] obj the object to include
|
104
|
-
# @return [String] the object's docstring (no tags)
|
105
|
-
def link_include_object(obj)
|
106
|
-
obj.docstring
|
107
|
-
end
|
108
|
-
|
109
|
-
# Include a file as a docstring in output
|
110
|
-
# @since 0.7.0
|
111
|
-
# @param [String] file the filename to include
|
112
|
-
# @return [String] the file's contents
|
113
|
-
def link_include_file(file)
|
114
|
-
File.read(file)
|
115
|
-
end
|
116
|
-
|
117
|
-
# Links to an object with an optional title
|
118
|
-
#
|
119
|
-
# @param [CodeObjects::Base] obj the object to link to
|
120
|
-
# @param [String] title the title to use for the link
|
121
|
-
# @return [String] the linked object
|
122
|
-
def link_object(obj, title = nil)
|
123
|
-
return title if title
|
124
|
-
|
125
|
-
case obj
|
126
|
-
when YARD::CodeObjects::Base, YARD::CodeObjects::Proxy
|
127
|
-
obj.title
|
128
|
-
when String, Symbol
|
129
|
-
P(obj).title
|
130
|
-
else
|
131
|
-
obj
|
132
|
-
end
|
133
|
-
end
|
134
|
-
|
135
|
-
# Links to a URL
|
136
|
-
#
|
137
|
-
# @param [String] url the URL to link to
|
138
|
-
# @param [String] title the optional title to display the link as
|
139
|
-
# @param [Hash] params optional parameters for the link
|
140
|
-
# @return [String] the linked URL
|
141
|
-
def link_url(url, title = nil, params = nil) # rubocop:disable Lint/UnusedMethodArgument
|
142
|
-
url
|
143
|
-
end
|
144
|
-
|
145
|
-
# Links to an extra file
|
146
|
-
#
|
147
|
-
# @param [String] filename the filename to link to
|
148
|
-
# @param [String] title the title of the link
|
149
|
-
# @param [String] anchor optional anchor
|
150
|
-
# @return [String] the link to the file
|
151
|
-
# @since 0.5.5
|
152
|
-
def link_file(filename, title = nil, anchor = nil) # rubocop:disable Lint/UnusedMethodArgument
|
153
|
-
return filename.filename if CodeObjects::ExtraFileObject === filename
|
154
|
-
filename
|
155
|
-
end
|
156
|
-
|
157
|
-
# @group Formatting Object Attributes
|
158
|
-
|
159
|
-
# Formats a list of return types for output and links each type.
|
160
|
-
#
|
161
|
-
# @example Formatting types
|
162
|
-
# format_types(['String', 'Array']) #=> "(String, Array)"
|
163
|
-
# @example Formatting types without surrounding brackets
|
164
|
-
# format_types(['String', 'Array'], false) #=> "String, Array"
|
165
|
-
# @param [Array<String>] list a list of types
|
166
|
-
# @param [Boolean] brackets whether to surround the types in brackets
|
167
|
-
# @return [String] the formatted list of Ruby types
|
168
|
-
def format_types(list, brackets = true)
|
169
|
-
list.nil? || list.empty? ? "" : (brackets ? "(#{list.join(", ")})" : list.join(", "))
|
170
|
-
end
|
171
|
-
|
172
|
-
# @example Formatted type of an exception class
|
173
|
-
# o = ClassObject.new(:root, :MyError)
|
174
|
-
# o.superclass = P('RuntimeError')
|
175
|
-
# format_object_type(o) # => "Exception"
|
176
|
-
# @example Formatted type of a method
|
177
|
-
# o = MethodObject.new(:root, :to_s)
|
178
|
-
# format_object_type(o) # => "Method"
|
179
|
-
# @param [CodeObjects::Base] object the object to retrieve the type for
|
180
|
-
# @return [String] the human-readable formatted {CodeObjects::Base#type #type}
|
181
|
-
# for the object
|
182
|
-
def format_object_type(object)
|
183
|
-
case object
|
184
|
-
when YARD::CodeObjects::ClassObject
|
185
|
-
object.is_exception? ? "Exception" : "Class"
|
186
|
-
else
|
187
|
-
object.type.to_s.capitalize
|
188
|
-
end
|
189
|
-
end
|
190
|
-
|
191
|
-
# @example
|
192
|
-
# s = format_object_title ModuleObject.new(:root, :MyModuleName)
|
193
|
-
# s # => "Module: MyModuleName"
|
194
|
-
# @param [CodeObjects::Base] object the object to retrieve a title for
|
195
|
-
# @return [String] the page title name for a given object
|
196
|
-
def format_object_title(object)
|
197
|
-
case object
|
198
|
-
when YARD::CodeObjects::RootObject
|
199
|
-
"Top Level Namespace"
|
200
|
-
else
|
201
|
-
format_object_type(object) + ": " + object.title
|
202
|
-
end
|
203
|
-
end
|
204
|
-
|
205
|
-
# Indents and formats source code
|
206
|
-
#
|
207
|
-
# @param [String] value the input source code
|
208
|
-
# @return [String] formatted source code
|
209
|
-
def format_source(value)
|
210
|
-
sp = value.split("\n").last[/^(\s+)/, 1]
|
211
|
-
num = sp ? sp.size : 0
|
212
|
-
value.gsub(/^\s{#{num}}/, '')
|
213
|
-
end
|
214
|
-
end
|
215
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module YARD::Templates::Helpers
|
3
|
+
# The base helper module included in all templates.
|
4
|
+
module BaseHelper
|
5
|
+
attr_accessor :object, :serializer
|
6
|
+
|
7
|
+
# @return [CodeObjects::Base] the object representing the current generated
|
8
|
+
# page. Might not be the current {#object} when inside sub-templates.
|
9
|
+
attr_reader :owner
|
10
|
+
undef owner
|
11
|
+
def owner; (defined?(@owner) && @owner) || object.namespace end
|
12
|
+
|
13
|
+
# @group Managing Global Template State
|
14
|
+
|
15
|
+
# An object that keeps track of global state throughout the entire template
|
16
|
+
# rendering process (including any sub-templates).
|
17
|
+
#
|
18
|
+
# @return [OpenStruct] a struct object that stores state
|
19
|
+
# @since 0.6.0
|
20
|
+
def globals; options.globals end
|
21
|
+
|
22
|
+
# @group Running the Verifier
|
23
|
+
|
24
|
+
# Runs a list of objects against the {Verifier} object passed into the
|
25
|
+
# template and returns the subset of verified objects.
|
26
|
+
#
|
27
|
+
# @param [Array<CodeObjects::Base>] list a list of code objects
|
28
|
+
# @return [Array<CodeObjects::Base>] a list of code objects that match
|
29
|
+
# the verifier. If no verifier is supplied, all objects are returned.
|
30
|
+
def run_verifier(list)
|
31
|
+
options.verifier ? options.verifier.run(list) : list
|
32
|
+
end
|
33
|
+
|
34
|
+
# @group Escaping Text
|
35
|
+
|
36
|
+
# Escapes text. This is used a lot by the HtmlHelper and there should
|
37
|
+
# be some helper to "clean up" text for whatever, this is it.
|
38
|
+
def h(text)
|
39
|
+
text
|
40
|
+
end
|
41
|
+
|
42
|
+
# @group Linking Objects and URLs
|
43
|
+
|
44
|
+
# Links objects or URLs. This method will delegate to the correct +link_+
|
45
|
+
# method depending on the arguments passed in.
|
46
|
+
#
|
47
|
+
# @example Linking a URL
|
48
|
+
# linkify('http://example.com')
|
49
|
+
# @example Including docstring contents of an object
|
50
|
+
# linkify('include:YARD::Docstring')
|
51
|
+
# @example Linking to an extra file
|
52
|
+
# linkify('file:README')
|
53
|
+
# @example Linking an object by path
|
54
|
+
# linkify('YARD::Docstring')
|
55
|
+
def linkify(*args)
|
56
|
+
if args.first.is_a?(String)
|
57
|
+
case args.first
|
58
|
+
when %r{://}, /^mailto:/
|
59
|
+
link_url(args[0], args[1], {:target => '_parent'}.merge(args[2] || {}))
|
60
|
+
when /^include:file:(\S+)/
|
61
|
+
file = $1
|
62
|
+
relpath = File.relative_path(Dir.pwd, File.expand_path(file))
|
63
|
+
if relpath =~ /^\.\./
|
64
|
+
log.warn "Cannot include file from path `#{file}'"
|
65
|
+
""
|
66
|
+
elsif File.file?(file)
|
67
|
+
link_include_file(file)
|
68
|
+
else
|
69
|
+
log.warn "Cannot find file at `#{file}' for inclusion"
|
70
|
+
""
|
71
|
+
end
|
72
|
+
when /^include:(\S+)/
|
73
|
+
path = $1
|
74
|
+
obj = YARD::Registry.resolve(object.namespace, path)
|
75
|
+
if obj
|
76
|
+
link_include_object(obj)
|
77
|
+
else
|
78
|
+
log.warn "Cannot find object at `#{path}' for inclusion"
|
79
|
+
""
|
80
|
+
end
|
81
|
+
when /^render:(\S+)/
|
82
|
+
path = $1
|
83
|
+
obj = YARD::Registry.resolve(object, path)
|
84
|
+
if obj
|
85
|
+
opts = options.dup
|
86
|
+
opts.delete(:serializer)
|
87
|
+
obj.format(opts)
|
88
|
+
else
|
89
|
+
''
|
90
|
+
end
|
91
|
+
when /^file:(\S+?)(?:#(\S+))?$/
|
92
|
+
link_file($1, args[1] ? args[1] : nil, $2)
|
93
|
+
else
|
94
|
+
link_object(*args)
|
95
|
+
end
|
96
|
+
else
|
97
|
+
link_object(*args)
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
# Includes an object's docstring into output.
|
102
|
+
# @since 0.6.0
|
103
|
+
# @param [CodeObjects::Base] obj the object to include
|
104
|
+
# @return [String] the object's docstring (no tags)
|
105
|
+
def link_include_object(obj)
|
106
|
+
obj.docstring
|
107
|
+
end
|
108
|
+
|
109
|
+
# Include a file as a docstring in output
|
110
|
+
# @since 0.7.0
|
111
|
+
# @param [String] file the filename to include
|
112
|
+
# @return [String] the file's contents
|
113
|
+
def link_include_file(file)
|
114
|
+
File.read(file)
|
115
|
+
end
|
116
|
+
|
117
|
+
# Links to an object with an optional title
|
118
|
+
#
|
119
|
+
# @param [CodeObjects::Base] obj the object to link to
|
120
|
+
# @param [String] title the title to use for the link
|
121
|
+
# @return [String] the linked object
|
122
|
+
def link_object(obj, title = nil)
|
123
|
+
return title if title
|
124
|
+
|
125
|
+
case obj
|
126
|
+
when YARD::CodeObjects::Base, YARD::CodeObjects::Proxy
|
127
|
+
obj.title
|
128
|
+
when String, Symbol
|
129
|
+
P(obj).title
|
130
|
+
else
|
131
|
+
obj
|
132
|
+
end
|
133
|
+
end
|
134
|
+
|
135
|
+
# Links to a URL
|
136
|
+
#
|
137
|
+
# @param [String] url the URL to link to
|
138
|
+
# @param [String] title the optional title to display the link as
|
139
|
+
# @param [Hash] params optional parameters for the link
|
140
|
+
# @return [String] the linked URL
|
141
|
+
def link_url(url, title = nil, params = nil) # rubocop:disable Lint/UnusedMethodArgument
|
142
|
+
url
|
143
|
+
end
|
144
|
+
|
145
|
+
# Links to an extra file
|
146
|
+
#
|
147
|
+
# @param [String] filename the filename to link to
|
148
|
+
# @param [String] title the title of the link
|
149
|
+
# @param [String] anchor optional anchor
|
150
|
+
# @return [String] the link to the file
|
151
|
+
# @since 0.5.5
|
152
|
+
def link_file(filename, title = nil, anchor = nil) # rubocop:disable Lint/UnusedMethodArgument
|
153
|
+
return filename.filename if CodeObjects::ExtraFileObject === filename
|
154
|
+
filename
|
155
|
+
end
|
156
|
+
|
157
|
+
# @group Formatting Object Attributes
|
158
|
+
|
159
|
+
# Formats a list of return types for output and links each type.
|
160
|
+
#
|
161
|
+
# @example Formatting types
|
162
|
+
# format_types(['String', 'Array']) #=> "(String, Array)"
|
163
|
+
# @example Formatting types without surrounding brackets
|
164
|
+
# format_types(['String', 'Array'], false) #=> "String, Array"
|
165
|
+
# @param [Array<String>] list a list of types
|
166
|
+
# @param [Boolean] brackets whether to surround the types in brackets
|
167
|
+
# @return [String] the formatted list of Ruby types
|
168
|
+
def format_types(list, brackets = true)
|
169
|
+
list.nil? || list.empty? ? "" : (brackets ? "(#{list.join(", ")})" : list.join(", "))
|
170
|
+
end
|
171
|
+
|
172
|
+
# @example Formatted type of an exception class
|
173
|
+
# o = ClassObject.new(:root, :MyError)
|
174
|
+
# o.superclass = P('RuntimeError')
|
175
|
+
# format_object_type(o) # => "Exception"
|
176
|
+
# @example Formatted type of a method
|
177
|
+
# o = MethodObject.new(:root, :to_s)
|
178
|
+
# format_object_type(o) # => "Method"
|
179
|
+
# @param [CodeObjects::Base] object the object to retrieve the type for
|
180
|
+
# @return [String] the human-readable formatted {CodeObjects::Base#type #type}
|
181
|
+
# for the object
|
182
|
+
def format_object_type(object)
|
183
|
+
case object
|
184
|
+
when YARD::CodeObjects::ClassObject
|
185
|
+
object.is_exception? ? "Exception" : "Class"
|
186
|
+
else
|
187
|
+
object.type.to_s.capitalize
|
188
|
+
end
|
189
|
+
end
|
190
|
+
|
191
|
+
# @example
|
192
|
+
# s = format_object_title ModuleObject.new(:root, :MyModuleName)
|
193
|
+
# s # => "Module: MyModuleName"
|
194
|
+
# @param [CodeObjects::Base] object the object to retrieve a title for
|
195
|
+
# @return [String] the page title name for a given object
|
196
|
+
def format_object_title(object)
|
197
|
+
case object
|
198
|
+
when YARD::CodeObjects::RootObject
|
199
|
+
"Top Level Namespace"
|
200
|
+
else
|
201
|
+
format_object_type(object) + ": " + object.title
|
202
|
+
end
|
203
|
+
end
|
204
|
+
|
205
|
+
# Indents and formats source code
|
206
|
+
#
|
207
|
+
# @param [String] value the input source code
|
208
|
+
# @return [String] formatted source code
|
209
|
+
def format_source(value)
|
210
|
+
sp = value.split("\n").last[/^(\s+)/, 1]
|
211
|
+
num = sp ? sp.size : 0
|
212
|
+
value.gsub(/^\s{#{num}}/, '')
|
213
|
+
end
|
214
|
+
end
|
215
|
+
end
|