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,50 +1,50 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require 'rubygems/specification'
|
3
|
-
|
4
|
-
class Gem::Specification
|
5
|
-
# @since 0.5.3
|
6
|
-
def has_yardoc=(value)
|
7
|
-
@has_rdoc = value ? 'yard' : false
|
8
|
-
end
|
9
|
-
|
10
|
-
def has_yardoc
|
11
|
-
@has_rdoc == 'yard'
|
12
|
-
end
|
13
|
-
|
14
|
-
undef has_rdoc?
|
15
|
-
def has_rdoc?
|
16
|
-
(@has_rdoc ||= true) && @has_rdoc != 'yard'
|
17
|
-
end
|
18
|
-
|
19
|
-
alias has_yardoc? has_yardoc
|
20
|
-
|
21
|
-
# has_rdoc should not be ignored!
|
22
|
-
if respond_to?(:overwrite_accessor)
|
23
|
-
overwrite_accessor(:has_rdoc) { @has_rdoc ||= true }
|
24
|
-
overwrite_accessor(:has_rdoc=) {|v| @has_rdoc = v }
|
25
|
-
else
|
26
|
-
attr_accessor :has_rdoc
|
27
|
-
end
|
28
|
-
|
29
|
-
if defined?(Gem::VERSION) && Gem::VERSION >= '1.7.'
|
30
|
-
def _dump_with_rdoc(limit)
|
31
|
-
dmp = _dump_without_rdoc(limit)
|
32
|
-
dmp[15] = @has_rdoc if dmp[15] == true
|
33
|
-
dmp
|
34
|
-
end
|
35
|
-
alias _dump_without_rdoc _dump
|
36
|
-
alias _dump _dump_with_rdoc
|
37
|
-
|
38
|
-
if class_variable_defined?(:@@default_value)
|
39
|
-
if @@default_value.frozen?
|
40
|
-
t = @@default_value.dup
|
41
|
-
t[:has_rdoc] = true
|
42
|
-
@@default_value = t.freeze
|
43
|
-
else
|
44
|
-
@@default_value[:has_rdoc] = true
|
45
|
-
end
|
46
|
-
end
|
47
|
-
@@attributes << 'has_rdoc' if class_variable_defined?(:@@attributes)
|
48
|
-
@@nil_attributes << 'has_rdoc' if class_variable_defined?(:@@nil_attributes)
|
49
|
-
end
|
50
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require 'rubygems/specification'
|
3
|
+
|
4
|
+
class Gem::Specification
|
5
|
+
# @since 0.5.3
|
6
|
+
def has_yardoc=(value)
|
7
|
+
@has_rdoc = value ? 'yard' : false
|
8
|
+
end
|
9
|
+
|
10
|
+
def has_yardoc
|
11
|
+
@has_rdoc == 'yard'
|
12
|
+
end
|
13
|
+
|
14
|
+
undef has_rdoc?
|
15
|
+
def has_rdoc?
|
16
|
+
(@has_rdoc ||= true) && @has_rdoc != 'yard'
|
17
|
+
end
|
18
|
+
|
19
|
+
alias has_yardoc? has_yardoc
|
20
|
+
|
21
|
+
# has_rdoc should not be ignored!
|
22
|
+
if respond_to?(:overwrite_accessor)
|
23
|
+
overwrite_accessor(:has_rdoc) { @has_rdoc ||= true }
|
24
|
+
overwrite_accessor(:has_rdoc=) {|v| @has_rdoc = v }
|
25
|
+
else
|
26
|
+
attr_accessor :has_rdoc
|
27
|
+
end
|
28
|
+
|
29
|
+
if defined?(Gem::VERSION) && Gem::VERSION >= '1.7.'
|
30
|
+
def _dump_with_rdoc(limit)
|
31
|
+
dmp = _dump_without_rdoc(limit)
|
32
|
+
dmp[15] = @has_rdoc if dmp[15] == true
|
33
|
+
dmp
|
34
|
+
end
|
35
|
+
alias _dump_without_rdoc _dump
|
36
|
+
alias _dump _dump_with_rdoc
|
37
|
+
|
38
|
+
if class_variable_defined?(:@@default_value)
|
39
|
+
if @@default_value.frozen?
|
40
|
+
t = @@default_value.dup
|
41
|
+
t[:has_rdoc] = true
|
42
|
+
@@default_value = t.freeze
|
43
|
+
else
|
44
|
+
@@default_value[:has_rdoc] = true
|
45
|
+
end
|
46
|
+
end
|
47
|
+
@@attributes << 'has_rdoc' if class_variable_defined?(:@@attributes)
|
48
|
+
@@nil_attributes << 'has_rdoc' if class_variable_defined?(:@@nil_attributes)
|
49
|
+
end
|
50
|
+
end
|
@@ -1,83 +1,83 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module YARD
|
3
|
-
module Serializers
|
4
|
-
# The abstract base serializer. Serializers allow templates to be
|
5
|
-
# rendered to various endpoints. For instance, a {FileSystemSerializer}
|
6
|
-
# would allow template contents to be written to the filesystem
|
7
|
-
#
|
8
|
-
# To implement a custom serializer, override the following methods:
|
9
|
-
# * {#serialize}
|
10
|
-
# * {#serialized_path}
|
11
|
-
#
|
12
|
-
# Optionally, a serializer can implement before and after filters:
|
13
|
-
# * {#before_serialize}
|
14
|
-
# * {#after_serialize}
|
15
|
-
#
|
16
|
-
# @abstract Override this class to implement a custom serializer.
|
17
|
-
class Base
|
18
|
-
# All serializer options are saved so they can be passed to other serializers.
|
19
|
-
#
|
20
|
-
# @return [SymbolHash] the serializer options
|
21
|
-
attr_reader :options
|
22
|
-
|
23
|
-
# @group Creating a New Serializer
|
24
|
-
|
25
|
-
# Creates a new serializer with options
|
26
|
-
#
|
27
|
-
# @param [Hash] opts the options to assign to {#options}
|
28
|
-
def initialize(opts = {})
|
29
|
-
@options = SymbolHash.new(false).update(opts)
|
30
|
-
end
|
31
|
-
|
32
|
-
# @group Serializing an Object
|
33
|
-
|
34
|
-
# Serializes an object.
|
35
|
-
#
|
36
|
-
# @abstract This method should implement the logic that serializes
|
37
|
-
# +data+ to the respective endpoint. This method should also call
|
38
|
-
# the before and after callbacks {#before_serialize} and {#after_serialize}
|
39
|
-
# @param [CodeObjects::Base, String] object the object to serialize the
|
40
|
-
# data for. The object can also be a string (for non-object serialization)
|
41
|
-
# @param [String] data the contents that should be serialized
|
42
|
-
def serialize(object, data) end
|
43
|
-
|
44
|
-
# The serialized path of an object
|
45
|
-
#
|
46
|
-
# @abstract This method should return the path of the object on the
|
47
|
-
# endpoint. For instance, for a file serializer, this should return
|
48
|
-
# the filename that represents the object on disk.
|
49
|
-
# @param [CodeObjects::Base] object the object to return a path for
|
50
|
-
# @return [String] the serialized path of an object
|
51
|
-
def serialized_path(object) end
|
52
|
-
|
53
|
-
# Returns whether an object has been serialized
|
54
|
-
#
|
55
|
-
# @abstract This method should return whether the endpoint already exists.
|
56
|
-
# For instance, a file system serializer would check if the file exists
|
57
|
-
# on disk. You will most likely use +#basepath+ and {#serialized_path} to
|
58
|
-
# get the endpoint's location.
|
59
|
-
# @param [CodeObjects::Base] object the object to check existence of
|
60
|
-
# @return [Boolean] whether the endpoint exists.
|
61
|
-
# @since 0.6.0
|
62
|
-
def exists?(object) # rubocop:disable Lint/UnusedMethodArgument
|
63
|
-
false
|
64
|
-
end
|
65
|
-
|
66
|
-
# @group Callbacks
|
67
|
-
|
68
|
-
# Called before serialization.
|
69
|
-
#
|
70
|
-
# @abstract Should run code before serialization. Should return false
|
71
|
-
# if serialization should not occur.
|
72
|
-
# @return [Boolean] whether or not serialization should occur
|
73
|
-
def before_serialize; end
|
74
|
-
|
75
|
-
# Called after serialization.
|
76
|
-
#
|
77
|
-
# @abstract Should run code after serialization.
|
78
|
-
# @param [String] data the data that was serialized.
|
79
|
-
# @return [void]
|
80
|
-
def after_serialize(data); end
|
81
|
-
end
|
82
|
-
end
|
83
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module YARD
|
3
|
+
module Serializers
|
4
|
+
# The abstract base serializer. Serializers allow templates to be
|
5
|
+
# rendered to various endpoints. For instance, a {FileSystemSerializer}
|
6
|
+
# would allow template contents to be written to the filesystem
|
7
|
+
#
|
8
|
+
# To implement a custom serializer, override the following methods:
|
9
|
+
# * {#serialize}
|
10
|
+
# * {#serialized_path}
|
11
|
+
#
|
12
|
+
# Optionally, a serializer can implement before and after filters:
|
13
|
+
# * {#before_serialize}
|
14
|
+
# * {#after_serialize}
|
15
|
+
#
|
16
|
+
# @abstract Override this class to implement a custom serializer.
|
17
|
+
class Base
|
18
|
+
# All serializer options are saved so they can be passed to other serializers.
|
19
|
+
#
|
20
|
+
# @return [SymbolHash] the serializer options
|
21
|
+
attr_reader :options
|
22
|
+
|
23
|
+
# @group Creating a New Serializer
|
24
|
+
|
25
|
+
# Creates a new serializer with options
|
26
|
+
#
|
27
|
+
# @param [Hash] opts the options to assign to {#options}
|
28
|
+
def initialize(opts = {})
|
29
|
+
@options = SymbolHash.new(false).update(opts)
|
30
|
+
end
|
31
|
+
|
32
|
+
# @group Serializing an Object
|
33
|
+
|
34
|
+
# Serializes an object.
|
35
|
+
#
|
36
|
+
# @abstract This method should implement the logic that serializes
|
37
|
+
# +data+ to the respective endpoint. This method should also call
|
38
|
+
# the before and after callbacks {#before_serialize} and {#after_serialize}
|
39
|
+
# @param [CodeObjects::Base, String] object the object to serialize the
|
40
|
+
# data for. The object can also be a string (for non-object serialization)
|
41
|
+
# @param [String] data the contents that should be serialized
|
42
|
+
def serialize(object, data) end
|
43
|
+
|
44
|
+
# The serialized path of an object
|
45
|
+
#
|
46
|
+
# @abstract This method should return the path of the object on the
|
47
|
+
# endpoint. For instance, for a file serializer, this should return
|
48
|
+
# the filename that represents the object on disk.
|
49
|
+
# @param [CodeObjects::Base] object the object to return a path for
|
50
|
+
# @return [String] the serialized path of an object
|
51
|
+
def serialized_path(object) end
|
52
|
+
|
53
|
+
# Returns whether an object has been serialized
|
54
|
+
#
|
55
|
+
# @abstract This method should return whether the endpoint already exists.
|
56
|
+
# For instance, a file system serializer would check if the file exists
|
57
|
+
# on disk. You will most likely use +#basepath+ and {#serialized_path} to
|
58
|
+
# get the endpoint's location.
|
59
|
+
# @param [CodeObjects::Base] object the object to check existence of
|
60
|
+
# @return [Boolean] whether the endpoint exists.
|
61
|
+
# @since 0.6.0
|
62
|
+
def exists?(object) # rubocop:disable Lint/UnusedMethodArgument
|
63
|
+
false
|
64
|
+
end
|
65
|
+
|
66
|
+
# @group Callbacks
|
67
|
+
|
68
|
+
# Called before serialization.
|
69
|
+
#
|
70
|
+
# @abstract Should run code before serialization. Should return false
|
71
|
+
# if serialization should not occur.
|
72
|
+
# @return [Boolean] whether or not serialization should occur
|
73
|
+
def before_serialize; end
|
74
|
+
|
75
|
+
# Called after serialization.
|
76
|
+
#
|
77
|
+
# @abstract Should run code after serialization.
|
78
|
+
# @param [String] data the data that was serialized.
|
79
|
+
# @return [void]
|
80
|
+
def after_serialize(data); end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
@@ -1,123 +1,123 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module YARD
|
3
|
-
module Serializers
|
4
|
-
# Implements a serializer that reads from and writes to the filesystem.
|
5
|
-
class FileSystemSerializer < Base
|
6
|
-
# The base path to write data to.
|
7
|
-
# @return [String] a base path
|
8
|
-
attr_reader :basepath
|
9
|
-
|
10
|
-
def basepath=(value)
|
11
|
-
@basepath = options[:basepath] = value
|
12
|
-
end
|
13
|
-
|
14
|
-
# The extension of the filename (defaults to +html+)
|
15
|
-
#
|
16
|
-
# @return [String] the extension of the file. Empty string for no extension.
|
17
|
-
attr_reader :extension
|
18
|
-
|
19
|
-
def extension=(value)
|
20
|
-
@extension = options[:extension] = value
|
21
|
-
end
|
22
|
-
|
23
|
-
# Creates a new FileSystemSerializer with options
|
24
|
-
#
|
25
|
-
# @option opts [String] :basepath ('doc') the base path to write data to
|
26
|
-
# @option opts [String] :extension ('html') the extension of the serialized
|
27
|
-
# path filename. If this is set to the empty string, no extension is used.
|
28
|
-
def initialize(opts = {})
|
29
|
-
super
|
30
|
-
@name_map = nil
|
31
|
-
@basepath = (options[:basepath] || 'doc').to_s
|
32
|
-
@extension = (options.key?(:extension) ? options[:extension] : 'html').to_s
|
33
|
-
end
|
34
|
-
|
35
|
-
# Serializes object with data to its serialized path (prefixed by the +#basepath+).
|
36
|
-
#
|
37
|
-
# @return [String] the written data (for chaining)
|
38
|
-
def serialize(object, data)
|
39
|
-
path = File.join(basepath, serialized_path(object))
|
40
|
-
log.debug "Serializing to #{path}"
|
41
|
-
File.open!(path, "wb") {|f| f.write data }
|
42
|
-
end
|
43
|
-
|
44
|
-
# Implements the serialized path of a code object.
|
45
|
-
#
|
46
|
-
# @param [CodeObjects::Base, CodeObjects::ExtraFileObject, String] object
|
47
|
-
# the object to get a path for. The path of a string is the string itself.
|
48
|
-
# @return [String] if object is a String, returns
|
49
|
-
# object, otherwise the path on disk (without the basepath).
|
50
|
-
def serialized_path(object)
|
51
|
-
return object if object.is_a?(String)
|
52
|
-
|
53
|
-
if object.is_a?(CodeObjects::ExtraFileObject)
|
54
|
-
fspath = ['file.' + object.name + (extension.empty? ? '' : ".#{extension}")]
|
55
|
-
else
|
56
|
-
objname = object != YARD::Registry.root ? mapped_name(object) : "top-level-namespace"
|
57
|
-
objname += '_' + object.scope.to_s[0, 1] if object.is_a?(CodeObjects::MethodObject)
|
58
|
-
fspath = [objname + (extension.empty? ? '' : ".#{extension}")]
|
59
|
-
if object.namespace && object.namespace.path != ""
|
60
|
-
fspath.unshift(*object.namespace.path.split(CodeObjects::NSEP))
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
File.join(encode_path_components(*fspath))
|
65
|
-
end
|
66
|
-
|
67
|
-
# Checks the disk for an object and returns whether it was serialized.
|
68
|
-
#
|
69
|
-
# @param [CodeObjects::Base] object the object to check
|
70
|
-
# @return [Boolean] whether an object has been serialized to disk
|
71
|
-
def exists?(object)
|
72
|
-
File.exist?(File.join(basepath, serialized_path(object)))
|
73
|
-
end
|
74
|
-
|
75
|
-
private
|
76
|
-
|
77
|
-
# Builds a filename mapping from object paths to filesystem path names.
|
78
|
-
# Needed to handle case sensitive YARD objects mapped into a case
|
79
|
-
# insensitive filesystem. Uses with {#mapped_name} to determine the
|
80
|
-
# mapping name for a given object.
|
81
|
-
#
|
82
|
-
# @note In order to use filesystem name mapping, you must initialize
|
83
|
-
# the serializer object after preparing the {YARD::Registry}.
|
84
|
-
def build_filename_map
|
85
|
-
@name_map = {}
|
86
|
-
YARD::Registry.all.each do |object|
|
87
|
-
lpath = nil
|
88
|
-
if object.parent && object.parent.type != :root
|
89
|
-
lpath = object.parent.path + "::" + object.name.to_s.downcase
|
90
|
-
else
|
91
|
-
lpath = object.path.downcase
|
92
|
-
end
|
93
|
-
|
94
|
-
@name_map[lpath] ||= {}
|
95
|
-
size = @name_map[lpath].size
|
96
|
-
name = "#{object.name}#{size > 0 ? "_" * size : ""}"
|
97
|
-
@name_map[lpath][object.name] = name
|
98
|
-
end
|
99
|
-
end
|
100
|
-
|
101
|
-
# @return [String] the filesystem mapped name of a given object.
|
102
|
-
def mapped_name(object)
|
103
|
-
build_filename_map unless @name_map
|
104
|
-
map = @name_map[object.path.downcase]
|
105
|
-
map && map[object.name] ? map[object.name] : object.name.to_s
|
106
|
-
end
|
107
|
-
|
108
|
-
# Remove special chars from filenames.
|
109
|
-
# Windows disallows \ / : * ? " < > | but we will just remove any
|
110
|
-
# non alphanumeric (plus period, underscore and dash).
|
111
|
-
def encode_path_components(*components)
|
112
|
-
components.map! do |p|
|
113
|
-
p.gsub(/[^\w\.-]/) do |x|
|
114
|
-
encoded = String.new('_')
|
115
|
-
|
116
|
-
x.each_byte {|b| encoded << ("%X" % b) }
|
117
|
-
encoded
|
118
|
-
end
|
119
|
-
end
|
120
|
-
end
|
121
|
-
end
|
122
|
-
end
|
123
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module YARD
|
3
|
+
module Serializers
|
4
|
+
# Implements a serializer that reads from and writes to the filesystem.
|
5
|
+
class FileSystemSerializer < Base
|
6
|
+
# The base path to write data to.
|
7
|
+
# @return [String] a base path
|
8
|
+
attr_reader :basepath
|
9
|
+
|
10
|
+
def basepath=(value)
|
11
|
+
@basepath = options[:basepath] = value
|
12
|
+
end
|
13
|
+
|
14
|
+
# The extension of the filename (defaults to +html+)
|
15
|
+
#
|
16
|
+
# @return [String] the extension of the file. Empty string for no extension.
|
17
|
+
attr_reader :extension
|
18
|
+
|
19
|
+
def extension=(value)
|
20
|
+
@extension = options[:extension] = value
|
21
|
+
end
|
22
|
+
|
23
|
+
# Creates a new FileSystemSerializer with options
|
24
|
+
#
|
25
|
+
# @option opts [String] :basepath ('doc') the base path to write data to
|
26
|
+
# @option opts [String] :extension ('html') the extension of the serialized
|
27
|
+
# path filename. If this is set to the empty string, no extension is used.
|
28
|
+
def initialize(opts = {})
|
29
|
+
super
|
30
|
+
@name_map = nil
|
31
|
+
@basepath = (options[:basepath] || 'doc').to_s
|
32
|
+
@extension = (options.key?(:extension) ? options[:extension] : 'html').to_s
|
33
|
+
end
|
34
|
+
|
35
|
+
# Serializes object with data to its serialized path (prefixed by the +#basepath+).
|
36
|
+
#
|
37
|
+
# @return [String] the written data (for chaining)
|
38
|
+
def serialize(object, data)
|
39
|
+
path = File.join(basepath, serialized_path(object))
|
40
|
+
log.debug "Serializing to #{path}"
|
41
|
+
File.open!(path, "wb") {|f| f.write data }
|
42
|
+
end
|
43
|
+
|
44
|
+
# Implements the serialized path of a code object.
|
45
|
+
#
|
46
|
+
# @param [CodeObjects::Base, CodeObjects::ExtraFileObject, String] object
|
47
|
+
# the object to get a path for. The path of a string is the string itself.
|
48
|
+
# @return [String] if object is a String, returns
|
49
|
+
# object, otherwise the path on disk (without the basepath).
|
50
|
+
def serialized_path(object)
|
51
|
+
return object if object.is_a?(String)
|
52
|
+
|
53
|
+
if object.is_a?(CodeObjects::ExtraFileObject)
|
54
|
+
fspath = ['file.' + object.name + (extension.empty? ? '' : ".#{extension}")]
|
55
|
+
else
|
56
|
+
objname = object != YARD::Registry.root ? mapped_name(object) : "top-level-namespace"
|
57
|
+
objname += '_' + object.scope.to_s[0, 1] if object.is_a?(CodeObjects::MethodObject)
|
58
|
+
fspath = [objname + (extension.empty? ? '' : ".#{extension}")]
|
59
|
+
if object.namespace && object.namespace.path != ""
|
60
|
+
fspath.unshift(*object.namespace.path.split(CodeObjects::NSEP))
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
File.join(encode_path_components(*fspath))
|
65
|
+
end
|
66
|
+
|
67
|
+
# Checks the disk for an object and returns whether it was serialized.
|
68
|
+
#
|
69
|
+
# @param [CodeObjects::Base] object the object to check
|
70
|
+
# @return [Boolean] whether an object has been serialized to disk
|
71
|
+
def exists?(object)
|
72
|
+
File.exist?(File.join(basepath, serialized_path(object)))
|
73
|
+
end
|
74
|
+
|
75
|
+
private
|
76
|
+
|
77
|
+
# Builds a filename mapping from object paths to filesystem path names.
|
78
|
+
# Needed to handle case sensitive YARD objects mapped into a case
|
79
|
+
# insensitive filesystem. Uses with {#mapped_name} to determine the
|
80
|
+
# mapping name for a given object.
|
81
|
+
#
|
82
|
+
# @note In order to use filesystem name mapping, you must initialize
|
83
|
+
# the serializer object after preparing the {YARD::Registry}.
|
84
|
+
def build_filename_map
|
85
|
+
@name_map = {}
|
86
|
+
YARD::Registry.all.each do |object|
|
87
|
+
lpath = nil
|
88
|
+
if object.parent && object.parent.type != :root
|
89
|
+
lpath = object.parent.path + "::" + object.name.to_s.downcase
|
90
|
+
else
|
91
|
+
lpath = object.path.downcase
|
92
|
+
end
|
93
|
+
|
94
|
+
@name_map[lpath] ||= {}
|
95
|
+
size = @name_map[lpath].size
|
96
|
+
name = "#{object.name}#{size > 0 ? "_" * size : ""}"
|
97
|
+
@name_map[lpath][object.name] = name
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
# @return [String] the filesystem mapped name of a given object.
|
102
|
+
def mapped_name(object)
|
103
|
+
build_filename_map unless @name_map
|
104
|
+
map = @name_map[object.path.downcase]
|
105
|
+
map && map[object.name] ? map[object.name] : object.name.to_s
|
106
|
+
end
|
107
|
+
|
108
|
+
# Remove special chars from filenames.
|
109
|
+
# Windows disallows \ / : * ? " < > | but we will just remove any
|
110
|
+
# non alphanumeric (plus period, underscore and dash).
|
111
|
+
def encode_path_components(*components)
|
112
|
+
components.map! do |p|
|
113
|
+
p.gsub(/[^\w\.-]/) do |x|
|
114
|
+
encoded = String.new('_')
|
115
|
+
|
116
|
+
x.each_byte {|b| encoded << ("%X" % b) }
|
117
|
+
encoded
|
118
|
+
end
|
119
|
+
end
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|
123
|
+
end
|