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,8 +1,8 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
def javascripts
|
3
|
-
super + %w(js/autocomplete.js)
|
4
|
-
end
|
5
|
-
|
6
|
-
def stylesheets
|
7
|
-
super + %w(css/custom.css)
|
8
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
def javascripts
|
3
|
+
super + %w(js/autocomplete.js)
|
4
|
+
end
|
5
|
+
|
6
|
+
def stylesheets
|
7
|
+
super + %w(css/custom.css)
|
8
|
+
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
<script>
|
2
|
-
$(document.getElementById("<%= anchor_for(object) %>")).prepend(
|
3
|
-
'<a class="permalink" href="<%= abs_url base_path(router.docs_prefix) %>/<%= urlencode serializer.serialized_path(object) %>">permalink</a>');
|
4
|
-
</script>
|
1
|
+
<script>
|
2
|
+
$(document.getElementById("<%= anchor_for(object) %>")).prepend(
|
3
|
+
'<a class="permalink" href="<%= abs_url base_path(router.docs_prefix) %>/<%= urlencode serializer.serialized_path(object) %>">permalink</a>');
|
4
|
+
</script>
|
@@ -1,5 +1,5 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
def init
|
3
|
-
super
|
4
|
-
sections.place(:permalink).after_any(:method_signature)
|
5
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
def init
|
3
|
+
super
|
4
|
+
sections.place(:permalink).after_any(:method_signature)
|
5
|
+
end
|
@@ -1,8 +1,8 @@
|
|
1
|
-
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
2
|
-
<title>YARD Documentation Server <%= YARD::VERSION %> - Library Listing</title>
|
3
|
-
<link rel="stylesheet" href="<%= abs_url('css', 'style.css') %>?<%= mtime('css/style.css') %>" type="text/css" media="screen" charset="utf-8" />
|
4
|
-
<link rel="stylesheet" href="<%= abs_url('css', 'custom.css') %>?<%= mtime('css/custom.css') %>" type="text/css" media="screen" charset="utf-8" />
|
5
|
-
<style type="text/css" media="screen">
|
6
|
-
ul { list-style: circle inside none; padding: 0; }
|
7
|
-
li { font-size: 1.2em; line-height: 1.4em; padding: 3px 5px; }
|
8
|
-
</style>
|
1
|
+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
2
|
+
<title>YARD Documentation Server <%= YARD::VERSION %> - Library Listing</title>
|
3
|
+
<link rel="stylesheet" href="<%= abs_url('css', 'style.css') %>?<%= mtime('css/style.css') %>" type="text/css" media="screen" charset="utf-8" />
|
4
|
+
<link rel="stylesheet" href="<%= abs_url('css', 'custom.css') %>?<%= mtime('css/custom.css') %>" type="text/css" media="screen" charset="utf-8" />
|
5
|
+
<style type="text/css" media="screen">
|
6
|
+
ul { list-style: circle inside none; padding: 0; }
|
7
|
+
li { font-size: 1.2em; line-height: 1.4em; padding: 3px 5px; }
|
8
|
+
</style>
|
@@ -1,14 +1,14 @@
|
|
1
|
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
2
|
-
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
3
|
-
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
4
|
-
<head>
|
5
|
-
<%= erb(:headers) %>
|
6
|
-
</head>
|
7
|
-
<body>
|
8
|
-
<div id="main">
|
9
|
-
<div id="content">
|
10
|
-
<%= yieldall %>
|
11
|
-
</div>
|
12
|
-
</div>
|
13
|
-
</body>
|
14
|
-
</html>
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
4
|
+
<head>
|
5
|
+
<%= erb(:headers) %>
|
6
|
+
</head>
|
7
|
+
<body>
|
8
|
+
<div id="main">
|
9
|
+
<div id="content">
|
10
|
+
<%= yieldall %>
|
11
|
+
</div>
|
12
|
+
</div>
|
13
|
+
</body>
|
14
|
+
</html>
|
@@ -1,13 +1,13 @@
|
|
1
|
-
<ul>
|
2
|
-
<% @libraries.sort_by {|name, y| name.downcase }.each do |name, library_versions| %>
|
3
|
-
<li class="r<%= @row = (!defined?(@row) || @row == 1) ? 2 : 1 %>">
|
4
|
-
<% library_versions = library_versions.dup %>
|
5
|
-
<% first_lib = library_versions.pop %>
|
6
|
-
<a href="<%= abs_url(router.docs_prefix, first_lib.name) %>"><%= name %></a>
|
7
|
-
<% if first_lib.version %>
|
8
|
-
<small>(<%= first_lib.version %><% if library_versions.size > 0 %>,
|
9
|
-
<%= library_versions.reverse.map {|lib| "<a href=\"#{abs_url(router.docs_prefix, lib.to_s)}\">#{lib.version}</a>" }.join(', ') %><% end %>)</small>
|
10
|
-
<% end %>
|
11
|
-
</li>
|
12
|
-
<% end %>
|
13
|
-
</ul>
|
1
|
+
<ul>
|
2
|
+
<% @libraries.sort_by {|name, y| name.downcase }.each do |name, library_versions| %>
|
3
|
+
<li class="r<%= @row = (!defined?(@row) || @row == 1) ? 2 : 1 %>">
|
4
|
+
<% library_versions = library_versions.dup %>
|
5
|
+
<% first_lib = library_versions.pop %>
|
6
|
+
<a href="<%= abs_url(router.docs_prefix, first_lib.name) %>"><%= name %></a>
|
7
|
+
<% if first_lib.version %>
|
8
|
+
<small>(<%= first_lib.version %><% if library_versions.size > 0 %>,
|
9
|
+
<%= library_versions.reverse.map {|lib| "<a href=\"#{abs_url(router.docs_prefix, lib.to_s)}\">#{lib.version}</a>" }.join(', ') %><% end %>)</small>
|
10
|
+
<% end %>
|
11
|
+
</li>
|
12
|
+
<% end %>
|
13
|
+
</ul>
|
@@ -1,6 +1,6 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
include T('default/layout/html')
|
3
|
-
|
4
|
-
def init
|
5
|
-
sections :library_list, [:title, :listing, :footer]
|
6
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
include T('default/layout/html')
|
3
|
+
|
4
|
+
def init
|
5
|
+
sections :library_list, [:title, :listing, :footer]
|
6
|
+
end
|
@@ -1,2 +1,2 @@
|
|
1
|
-
<h1>YARD Documentation Server <%= YARD::VERSION %></h1>
|
2
|
-
<h2>Library Listing</h2>
|
1
|
+
<h1>YARD Documentation Server <%= YARD::VERSION %></h1>
|
2
|
+
<h2>Library Listing</h2>
|
@@ -1,52 +1,52 @@
|
|
1
|
-
<!DOCTYPE html>
|
2
|
-
<html>
|
3
|
-
<head>
|
4
|
-
<meta charset="utf-8">
|
5
|
-
<link rel="stylesheet" href="<%= abs_url('css', 'style.css') %>?<%= mtime('css/style.css') %>" type="text/css" media="screen" charset="utf-8" />
|
6
|
-
<link rel="stylesheet" href="<%= abs_url('css', 'custom.css') %>?<%= mtime('css/custom.css') %>" type="text/css" media="screen" charset="utf-8" />
|
7
|
-
<script type="text/javascript" charset="utf-8" src="<%= abs_url('js', 'jquery.js') %>?<%= mtime('js/jquery.js') %>"></script>
|
8
|
-
<script type="text/javascript" charset="utf-8">
|
9
|
-
function checkPage(process) {
|
10
|
-
$.ajax({cache: false, url: "<%= router.request.path %>" + (process ? "?process=true" : ""),
|
11
|
-
statusCode: { 200: function() { window.location.reload(true); } } });
|
12
|
-
setTimeout('checkPage()', 2000);
|
13
|
-
}
|
14
|
-
function setFade() {
|
15
|
-
centerMessage();
|
16
|
-
$(window).resize(function() { centerMessage(); });
|
17
|
-
$('#fade').fadeIn();
|
18
|
-
$('#processing').fadeIn();
|
19
|
-
}
|
20
|
-
function centerMessage() {
|
21
|
-
$('#fade').css('width', $(window).width() + 'px');
|
22
|
-
$('#fade').css('height', $(window).height() - parseInt($('#fade').css('top')) + 'px');
|
23
|
-
$('#processing').css('left', ($(window).width() / 2 - $('#processing').width() / 2) + 'px');
|
24
|
-
$('#processing').css('top', ($(window).height() / 2 - $('#processing').height() / 2) + 'px');
|
25
|
-
}
|
26
|
-
$(function() { checkPage(true); });
|
27
|
-
$(setFade);
|
28
|
-
</script>
|
29
|
-
<style type="text/css" media="screen">
|
30
|
-
body { overflow: hidden; margin: 12px; display: block; }
|
31
|
-
#menu { margin-top: 0 !important; padding-top: 0 !important; }
|
32
|
-
</style>
|
33
|
-
<title>Processing <%= @library.to_s(false) %></title>
|
34
|
-
</head>
|
35
|
-
<body>
|
36
|
-
<div id="menu">
|
37
|
-
<% unless @single_library %>
|
38
|
-
<a href="<%= abs_url(router.docs_prefix) %>" target="_top">Libraries</a> »
|
39
|
-
<span class="title"><%= @library.name %> <% if @library.version %><small>(<%= @library.version %>)</small><% end %></span>
|
40
|
-
<% end %>
|
41
|
-
</div>
|
42
|
-
<div id="fade"></div>
|
43
|
-
<div id="processing">
|
44
|
-
<h1>Processing <%= @library.name %></h1>
|
45
|
-
<p>
|
46
|
-
<strong><%= @library.name %></strong> <% if @library.version %>(<%= @library.version %>)<% end %> is being processed.
|
47
|
-
You'll be redirected when the pages are built, it shouldn't take much longer.
|
48
|
-
</p>
|
49
|
-
<img src="<%= abs_url('images', 'processing.gif') %>?<%= mtime('images/processing.gif') %>" align="center" />
|
50
|
-
</div>
|
51
|
-
</body>
|
52
|
-
</html>
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8">
|
5
|
+
<link rel="stylesheet" href="<%= abs_url('css', 'style.css') %>?<%= mtime('css/style.css') %>" type="text/css" media="screen" charset="utf-8" />
|
6
|
+
<link rel="stylesheet" href="<%= abs_url('css', 'custom.css') %>?<%= mtime('css/custom.css') %>" type="text/css" media="screen" charset="utf-8" />
|
7
|
+
<script type="text/javascript" charset="utf-8" src="<%= abs_url('js', 'jquery.js') %>?<%= mtime('js/jquery.js') %>"></script>
|
8
|
+
<script type="text/javascript" charset="utf-8">
|
9
|
+
function checkPage(process) {
|
10
|
+
$.ajax({cache: false, url: "<%= router.request.path %>" + (process ? "?process=true" : ""),
|
11
|
+
statusCode: { 200: function() { window.location.reload(true); } } });
|
12
|
+
setTimeout('checkPage()', 2000);
|
13
|
+
}
|
14
|
+
function setFade() {
|
15
|
+
centerMessage();
|
16
|
+
$(window).resize(function() { centerMessage(); });
|
17
|
+
$('#fade').fadeIn();
|
18
|
+
$('#processing').fadeIn();
|
19
|
+
}
|
20
|
+
function centerMessage() {
|
21
|
+
$('#fade').css('width', $(window).width() + 'px');
|
22
|
+
$('#fade').css('height', $(window).height() - parseInt($('#fade').css('top')) + 'px');
|
23
|
+
$('#processing').css('left', ($(window).width() / 2 - $('#processing').width() / 2) + 'px');
|
24
|
+
$('#processing').css('top', ($(window).height() / 2 - $('#processing').height() / 2) + 'px');
|
25
|
+
}
|
26
|
+
$(function() { checkPage(true); });
|
27
|
+
$(setFade);
|
28
|
+
</script>
|
29
|
+
<style type="text/css" media="screen">
|
30
|
+
body { overflow: hidden; margin: 12px; display: block; }
|
31
|
+
#menu { margin-top: 0 !important; padding-top: 0 !important; }
|
32
|
+
</style>
|
33
|
+
<title>Processing <%= @library.to_s(false) %></title>
|
34
|
+
</head>
|
35
|
+
<body>
|
36
|
+
<div id="menu">
|
37
|
+
<% unless @single_library %>
|
38
|
+
<a href="<%= abs_url(router.docs_prefix) %>" target="_top">Libraries</a> »
|
39
|
+
<span class="title"><%= @library.name %> <% if @library.version %><small>(<%= @library.version %>)</small><% end %></span>
|
40
|
+
<% end %>
|
41
|
+
</div>
|
42
|
+
<div id="fade"></div>
|
43
|
+
<div id="processing">
|
44
|
+
<h1>Processing <%= @library.name %></h1>
|
45
|
+
<p>
|
46
|
+
<strong><%= @library.name %></strong> <% if @library.version %>(<%= @library.version %>)<% end %> is being processed.
|
47
|
+
You'll be redirected when the pages are built, it shouldn't take much longer.
|
48
|
+
</p>
|
49
|
+
<img src="<%= abs_url('images', 'processing.gif') %>?<%= mtime('images/processing.gif') %>" align="center" />
|
50
|
+
</div>
|
51
|
+
</body>
|
52
|
+
</html>
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
def init
|
3
|
-
sections :processing
|
4
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
def init
|
3
|
+
sections :processing
|
4
|
+
end
|
@@ -1,18 +1,18 @@
|
|
1
|
-
<div id="search_results">
|
2
|
-
<h1>Search Results <small>(for '<%= h @query %>')</small></h1>
|
3
|
-
<p>Showing <%= @visible_results.size %> of <%= @results.size %> results</p>
|
4
|
-
<ul>
|
5
|
-
<% n = 1 %>
|
6
|
-
<% @visible_results.each do |result| %>
|
7
|
-
<% name = result.type == :method ? result.name(true).to_s : result.name.to_s %>
|
8
|
-
<% path = name.gsub(/(#{Regexp.quote @query})/i, '<strong>\1</strong>') %>
|
9
|
-
<li class="r<%= n %>">
|
10
|
-
<a href="<%= url_for(result) %>" title="<%= result.path %>"><%= path %></a>
|
11
|
-
<% if !result.namespace.root? %>
|
12
|
-
<small>(<%= result.namespace.path %>)</small>
|
13
|
-
<% end %>
|
14
|
-
</li>
|
15
|
-
<% n = n == 2 ? 1 : 2 %>
|
16
|
-
<% end %>
|
17
|
-
</ul>
|
18
|
-
</div>
|
1
|
+
<div id="search_results">
|
2
|
+
<h1>Search Results <small>(for '<%= h @query %>')</small></h1>
|
3
|
+
<p>Showing <%= @visible_results.size %> of <%= @results.size %> results</p>
|
4
|
+
<ul>
|
5
|
+
<% n = 1 %>
|
6
|
+
<% @visible_results.each do |result| %>
|
7
|
+
<% name = result.type == :method ? result.name(true).to_s : result.name.to_s %>
|
8
|
+
<% path = name.gsub(/(#{Regexp.quote @query})/i, '<strong>\1</strong>') %>
|
9
|
+
<li class="r<%= n %>">
|
10
|
+
<a href="<%= url_for(result) %>" title="<%= result.path %>"><%= path %></a>
|
11
|
+
<% if !result.namespace.root? %>
|
12
|
+
<small>(<%= result.namespace.path %>)</small>
|
13
|
+
<% end %>
|
14
|
+
</li>
|
15
|
+
<% n = n == 2 ? 1 : 2 %>
|
16
|
+
<% end %>
|
17
|
+
</ul>
|
18
|
+
</div>
|
@@ -1,9 +1,9 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
def init
|
3
|
-
sections :search, [T('../default/layout')]
|
4
|
-
end
|
5
|
-
|
6
|
-
def search
|
7
|
-
options.breadcrumb_title = h("Search for '#{@query}'")
|
8
|
-
yieldall :contents => erb(:search)
|
9
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
def init
|
3
|
+
sections :search, [T('../default/layout')]
|
4
|
+
end
|
5
|
+
|
6
|
+
def search
|
7
|
+
options.breadcrumb_title = h("Search for '#{@query}'")
|
8
|
+
yieldall :contents => erb(:search)
|
9
|
+
end
|
@@ -1,45 +1,45 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require 'webrick'
|
3
|
-
|
4
|
-
module YARD
|
5
|
-
module Server
|
6
|
-
# The main adapter to initialize a WEBrick server.
|
7
|
-
class WebrickAdapter < Adapter
|
8
|
-
# Initializes a WEBrick server. If {Adapter#server_options} contains a
|
9
|
-
# +:daemonize+ key set to true, the server will be daemonized.
|
10
|
-
def start
|
11
|
-
server_options[:ServerType] = WEBrick::Daemon if server_options[:daemonize]
|
12
|
-
server = WEBrick::HTTPServer.new(server_options)
|
13
|
-
server.mount('/', WebrickServlet, self)
|
14
|
-
trap("INT") { server.shutdown }
|
15
|
-
server.start
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
# The main WEBrick servlet implementation, accepting only GET requests.
|
20
|
-
class WebrickServlet < WEBrick::HTTPServlet::AbstractServlet
|
21
|
-
attr_accessor :adapter
|
22
|
-
|
23
|
-
def initialize(server, adapter)
|
24
|
-
super
|
25
|
-
self.adapter = adapter
|
26
|
-
end
|
27
|
-
|
28
|
-
# @private
|
29
|
-
def do_GET(request, response) # rubocop:disable Style/MethodName
|
30
|
-
status, headers, body = *adapter.router.call(request)
|
31
|
-
response.status = status
|
32
|
-
response.body = body.is_a?(Array) ? body[0] : body
|
33
|
-
headers.each do |key, value|
|
34
|
-
response[key] = value
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
# @private
|
42
|
-
class WEBrick::HTTPRequest
|
43
|
-
attr_accessor :version_supplied
|
44
|
-
def xhr?; (self['X-Requested-With'] || "").casecmp('xmlhttprequest') == 0 end
|
45
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require 'webrick'
|
3
|
+
|
4
|
+
module YARD
|
5
|
+
module Server
|
6
|
+
# The main adapter to initialize a WEBrick server.
|
7
|
+
class WebrickAdapter < Adapter
|
8
|
+
# Initializes a WEBrick server. If {Adapter#server_options} contains a
|
9
|
+
# +:daemonize+ key set to true, the server will be daemonized.
|
10
|
+
def start
|
11
|
+
server_options[:ServerType] = WEBrick::Daemon if server_options[:daemonize]
|
12
|
+
server = WEBrick::HTTPServer.new(server_options)
|
13
|
+
server.mount('/', WebrickServlet, self)
|
14
|
+
trap("INT") { server.shutdown }
|
15
|
+
server.start
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
# The main WEBrick servlet implementation, accepting only GET requests.
|
20
|
+
class WebrickServlet < WEBrick::HTTPServlet::AbstractServlet
|
21
|
+
attr_accessor :adapter
|
22
|
+
|
23
|
+
def initialize(server, adapter)
|
24
|
+
super
|
25
|
+
self.adapter = adapter
|
26
|
+
end
|
27
|
+
|
28
|
+
# @private
|
29
|
+
def do_GET(request, response) # rubocop:disable Style/MethodName
|
30
|
+
status, headers, body = *adapter.router.call(request)
|
31
|
+
response.status = status
|
32
|
+
response.body = body.is_a?(Array) ? body[0] : body
|
33
|
+
headers.each do |key, value|
|
34
|
+
response[key] = value
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
# @private
|
42
|
+
class WEBrick::HTTPRequest
|
43
|
+
attr_accessor :version_supplied
|
44
|
+
def xhr?; (self['X-Requested-With'] || "").casecmp('xmlhttprequest') == 0 end
|
45
|
+
end
|
@@ -1,191 +1,191 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module YARD
|
3
|
-
module Tags
|
4
|
-
class DefaultFactory
|
5
|
-
TYPELIST_OPENING_CHARS = '[({<'
|
6
|
-
TYPELIST_CLOSING_CHARS = '>})]'
|
7
|
-
|
8
|
-
# Parses tag text and creates a new tag with descriptive text
|
9
|
-
#
|
10
|
-
# @param tag_name the name of the tag to parse
|
11
|
-
# @param [String] text the raw tag text
|
12
|
-
# @return [Tag] a tag object with the tag_name and text values filled
|
13
|
-
def parse_tag(tag_name, text)
|
14
|
-
Tag.new(tag_name, text.strip)
|
15
|
-
end
|
16
|
-
|
17
|
-
# Parses tag text and creates a new tag with a key name and descriptive text
|
18
|
-
#
|
19
|
-
# @param tag_name the name of the tag to parse
|
20
|
-
# @param [String] text the raw tag text
|
21
|
-
# @return [Tag] a tag object with the tag_name, name and text values filled
|
22
|
-
def parse_tag_with_name(tag_name, text)
|
23
|
-
name, text = *extract_name_from_text(text)
|
24
|
-
Tag.new(tag_name, text, nil, name)
|
25
|
-
end
|
26
|
-
|
27
|
-
# Parses tag text and creates a new tag with formally declared types and
|
28
|
-
# descriptive text
|
29
|
-
#
|
30
|
-
# @param tag_name the name of the tag to parse
|
31
|
-
# @param [String] text the raw tag text
|
32
|
-
# @return [Tag] a tag object with the tag_name, types and text values filled
|
33
|
-
def parse_tag_with_types(tag_name, text)
|
34
|
-
name, types, text = *extract_types_and_name_from_text(text)
|
35
|
-
raise TagFormatError, "cannot specify a name before type list for '@#{tag_name}'" if name
|
36
|
-
Tag.new(tag_name, text, types)
|
37
|
-
end
|
38
|
-
|
39
|
-
# Parses tag text and creates a new tag with formally declared types, a key
|
40
|
-
# name and descriptive text
|
41
|
-
#
|
42
|
-
# @param tag_name the name of the tag to parse
|
43
|
-
# @param [String] text the raw tag text
|
44
|
-
# @return [Tag] a tag object with the tag_name, name, types and text values filled
|
45
|
-
def parse_tag_with_types_and_name(tag_name, text)
|
46
|
-
name, types, text = *extract_types_and_name_from_text(text)
|
47
|
-
name, text = *extract_name_from_text(text) unless name
|
48
|
-
Tag.new(tag_name, text, types, name)
|
49
|
-
end
|
50
|
-
|
51
|
-
# Parses tag text and creates a new tag with formally declared types, a title
|
52
|
-
# on the first line and descriptive text
|
53
|
-
#
|
54
|
-
# @param tag_name the name of the tag to parse
|
55
|
-
# @param [String] text the raw tag text
|
56
|
-
# @return [Tag] a tag object with the tag_name, name, types and text values filled
|
57
|
-
def parse_tag_with_types_and_title(tag_name, text)
|
58
|
-
name, types, text = *extract_types_and_name_from_text_unstripped(text)
|
59
|
-
if name
|
60
|
-
title = name
|
61
|
-
desc = text
|
62
|
-
else
|
63
|
-
title, desc = *extract_title_and_desc_from_text(text)
|
64
|
-
end
|
65
|
-
Tag.new(tag_name, desc, types, title)
|
66
|
-
rescue TagFormatError
|
67
|
-
Tag.new(tag_name, '', types, nil)
|
68
|
-
end
|
69
|
-
|
70
|
-
def parse_tag_with_title_and_text(tag_name, text)
|
71
|
-
title, desc = *extract_title_and_desc_from_text(text)
|
72
|
-
Tag.new(tag_name, desc, nil, title)
|
73
|
-
end
|
74
|
-
|
75
|
-
def parse_tag_with_types_name_and_default(tag_name, text)
|
76
|
-
# Can't allow () in a default tag, otherwise the grammar is too ambiguous when types is omitted.
|
77
|
-
open = TYPELIST_OPENING_CHARS.delete('(')
|
78
|
-
close = TYPELIST_CLOSING_CHARS.delete(')')
|
79
|
-
name, types, text = *extract_types_and_name_from_text(text, open, close)
|
80
|
-
name, text = *extract_name_from_text(text) unless name
|
81
|
-
if text && text.start_with?('(')
|
82
|
-
_, default, text = *extract_types_and_name_from_text(text, '(', ')')
|
83
|
-
DefaultTag.new(tag_name, text, types, name, default)
|
84
|
-
else
|
85
|
-
DefaultTag.new(tag_name, text, types, name, nil)
|
86
|
-
end
|
87
|
-
end
|
88
|
-
|
89
|
-
def parse_tag_with_options(tag_name, text)
|
90
|
-
name, text = *extract_name_from_text(text)
|
91
|
-
OptionTag.new(tag_name, name, parse_tag_with_types_name_and_default(tag_name, text))
|
92
|
-
end
|
93
|
-
|
94
|
-
private
|
95
|
-
|
96
|
-
# Extracts the name from raw tag text returning the name and remaining value
|
97
|
-
#
|
98
|
-
# @param [String] text the raw tag text
|
99
|
-
# @return [Array] an array holding the name as the first element and the
|
100
|
-
# value as the second element
|
101
|
-
def extract_name_from_text(text)
|
102
|
-
text.strip.split(/\s+/, 2)
|
103
|
-
end
|
104
|
-
|
105
|
-
def extract_title_and_desc_from_text(text)
|
106
|
-
raise TagFormatError if text.nil? || text.empty?
|
107
|
-
title = nil
|
108
|
-
desc = nil
|
109
|
-
if text =~ /\A[ \t]\n/
|
110
|
-
desc = text
|
111
|
-
else
|
112
|
-
text = text.split(/\r?\n/)
|
113
|
-
title = text.shift.squeeze(' ').strip
|
114
|
-
desc = text.join("\n")
|
115
|
-
end
|
116
|
-
[title, desc]
|
117
|
-
end
|
118
|
-
|
119
|
-
# Parses a [], <>, {} or () block at the beginning of a line of text
|
120
|
-
# into a list of comma delimited values.
|
121
|
-
#
|
122
|
-
# @example
|
123
|
-
# obj.parse_types('[String, Array<Hash, String>, nil]') # => [nil, ['String', 'Array<Hash, String>', 'nil'], ""]
|
124
|
-
# obj.parse_types('b<String> A string') # => ['b', ['String'], 'A string']
|
125
|
-
#
|
126
|
-
# @return [Array(String, Array<String>, String)] the text before the type
|
127
|
-
# list (or nil), followed by the type list parsed into an array of
|
128
|
-
# strings, followed by the text following the type list.
|
129
|
-
def extract_types_and_name_from_text(text, opening_types = TYPELIST_OPENING_CHARS, closing_types = TYPELIST_CLOSING_CHARS)
|
130
|
-
before, list, text = *extract_types_and_name_from_text_unstripped(text, opening_types, closing_types)
|
131
|
-
if list.nil?
|
132
|
-
[nil, nil, text.strip]
|
133
|
-
else
|
134
|
-
[before ? before.strip : nil, list.map(&:strip), text.strip]
|
135
|
-
end
|
136
|
-
end
|
137
|
-
|
138
|
-
def extract_types_and_name_from_text_unstripped(text, opening_types = TYPELIST_OPENING_CHARS, closing_types = TYPELIST_CLOSING_CHARS)
|
139
|
-
e = 0
|
140
|
-
before = String.new("")
|
141
|
-
list = [String.new("")]
|
142
|
-
level = 0
|
143
|
-
seen_space = false
|
144
|
-
i = 0
|
145
|
-
last_seen = ''
|
146
|
-
while i < text.length
|
147
|
-
c = text[i, 1]
|
148
|
-
|
149
|
-
if (c == '"' || c == "'") && text[i..-1] =~ /#{c}.+?#{c}/
|
150
|
-
list.last << $&
|
151
|
-
i += $&.length
|
152
|
-
next
|
153
|
-
end
|
154
|
-
|
155
|
-
if level > 0 && c == '#' && text[i + 1..-1] =~ CodeObjects::METHODNAMEMATCH
|
156
|
-
list.last << c + $&
|
157
|
-
i += $&.length + 1
|
158
|
-
next
|
159
|
-
elsif opening_types.include?(c)
|
160
|
-
list.last << c if level > 0
|
161
|
-
level += 1
|
162
|
-
elsif closing_types.include?(c)
|
163
|
-
level -= 1 unless last_seen == '=' && c == '>'
|
164
|
-
break e = i if level == 0
|
165
|
-
list.last << c
|
166
|
-
elsif c == ',' && level == 1
|
167
|
-
list.push String.new("")
|
168
|
-
elsif c =~ /\S/ && level == 0
|
169
|
-
break e = i if seen_space && list == ['']
|
170
|
-
before << c
|
171
|
-
elsif c =~ /[ \t]/ && level == 0 && !before.empty?
|
172
|
-
seen_space = true
|
173
|
-
elsif level >= 1
|
174
|
-
list.last << c
|
175
|
-
elsif level == 0 && c == "\n"
|
176
|
-
break e = i
|
177
|
-
end
|
178
|
-
last_seen = c
|
179
|
-
i += 1
|
180
|
-
end
|
181
|
-
|
182
|
-
before = before.empty? ? nil : before
|
183
|
-
if list.size == 1 && list.first == ''
|
184
|
-
[nil, nil, text]
|
185
|
-
else
|
186
|
-
[before, list, text[(e + 1)..-1]]
|
187
|
-
end
|
188
|
-
end
|
189
|
-
end
|
190
|
-
end
|
191
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module YARD
|
3
|
+
module Tags
|
4
|
+
class DefaultFactory
|
5
|
+
TYPELIST_OPENING_CHARS = '[({<'
|
6
|
+
TYPELIST_CLOSING_CHARS = '>})]'
|
7
|
+
|
8
|
+
# Parses tag text and creates a new tag with descriptive text
|
9
|
+
#
|
10
|
+
# @param tag_name the name of the tag to parse
|
11
|
+
# @param [String] text the raw tag text
|
12
|
+
# @return [Tag] a tag object with the tag_name and text values filled
|
13
|
+
def parse_tag(tag_name, text)
|
14
|
+
Tag.new(tag_name, text.strip)
|
15
|
+
end
|
16
|
+
|
17
|
+
# Parses tag text and creates a new tag with a key name and descriptive text
|
18
|
+
#
|
19
|
+
# @param tag_name the name of the tag to parse
|
20
|
+
# @param [String] text the raw tag text
|
21
|
+
# @return [Tag] a tag object with the tag_name, name and text values filled
|
22
|
+
def parse_tag_with_name(tag_name, text)
|
23
|
+
name, text = *extract_name_from_text(text)
|
24
|
+
Tag.new(tag_name, text, nil, name)
|
25
|
+
end
|
26
|
+
|
27
|
+
# Parses tag text and creates a new tag with formally declared types and
|
28
|
+
# descriptive text
|
29
|
+
#
|
30
|
+
# @param tag_name the name of the tag to parse
|
31
|
+
# @param [String] text the raw tag text
|
32
|
+
# @return [Tag] a tag object with the tag_name, types and text values filled
|
33
|
+
def parse_tag_with_types(tag_name, text)
|
34
|
+
name, types, text = *extract_types_and_name_from_text(text)
|
35
|
+
raise TagFormatError, "cannot specify a name before type list for '@#{tag_name}'" if name
|
36
|
+
Tag.new(tag_name, text, types)
|
37
|
+
end
|
38
|
+
|
39
|
+
# Parses tag text and creates a new tag with formally declared types, a key
|
40
|
+
# name and descriptive text
|
41
|
+
#
|
42
|
+
# @param tag_name the name of the tag to parse
|
43
|
+
# @param [String] text the raw tag text
|
44
|
+
# @return [Tag] a tag object with the tag_name, name, types and text values filled
|
45
|
+
def parse_tag_with_types_and_name(tag_name, text)
|
46
|
+
name, types, text = *extract_types_and_name_from_text(text)
|
47
|
+
name, text = *extract_name_from_text(text) unless name
|
48
|
+
Tag.new(tag_name, text, types, name)
|
49
|
+
end
|
50
|
+
|
51
|
+
# Parses tag text and creates a new tag with formally declared types, a title
|
52
|
+
# on the first line and descriptive text
|
53
|
+
#
|
54
|
+
# @param tag_name the name of the tag to parse
|
55
|
+
# @param [String] text the raw tag text
|
56
|
+
# @return [Tag] a tag object with the tag_name, name, types and text values filled
|
57
|
+
def parse_tag_with_types_and_title(tag_name, text)
|
58
|
+
name, types, text = *extract_types_and_name_from_text_unstripped(text)
|
59
|
+
if name
|
60
|
+
title = name
|
61
|
+
desc = text
|
62
|
+
else
|
63
|
+
title, desc = *extract_title_and_desc_from_text(text)
|
64
|
+
end
|
65
|
+
Tag.new(tag_name, desc, types, title)
|
66
|
+
rescue TagFormatError
|
67
|
+
Tag.new(tag_name, '', types, nil)
|
68
|
+
end
|
69
|
+
|
70
|
+
def parse_tag_with_title_and_text(tag_name, text)
|
71
|
+
title, desc = *extract_title_and_desc_from_text(text)
|
72
|
+
Tag.new(tag_name, desc, nil, title)
|
73
|
+
end
|
74
|
+
|
75
|
+
def parse_tag_with_types_name_and_default(tag_name, text)
|
76
|
+
# Can't allow () in a default tag, otherwise the grammar is too ambiguous when types is omitted.
|
77
|
+
open = TYPELIST_OPENING_CHARS.delete('(')
|
78
|
+
close = TYPELIST_CLOSING_CHARS.delete(')')
|
79
|
+
name, types, text = *extract_types_and_name_from_text(text, open, close)
|
80
|
+
name, text = *extract_name_from_text(text) unless name
|
81
|
+
if text && text.start_with?('(')
|
82
|
+
_, default, text = *extract_types_and_name_from_text(text, '(', ')')
|
83
|
+
DefaultTag.new(tag_name, text, types, name, default)
|
84
|
+
else
|
85
|
+
DefaultTag.new(tag_name, text, types, name, nil)
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
def parse_tag_with_options(tag_name, text)
|
90
|
+
name, text = *extract_name_from_text(text)
|
91
|
+
OptionTag.new(tag_name, name, parse_tag_with_types_name_and_default(tag_name, text))
|
92
|
+
end
|
93
|
+
|
94
|
+
private
|
95
|
+
|
96
|
+
# Extracts the name from raw tag text returning the name and remaining value
|
97
|
+
#
|
98
|
+
# @param [String] text the raw tag text
|
99
|
+
# @return [Array] an array holding the name as the first element and the
|
100
|
+
# value as the second element
|
101
|
+
def extract_name_from_text(text)
|
102
|
+
text.strip.split(/\s+/, 2)
|
103
|
+
end
|
104
|
+
|
105
|
+
def extract_title_and_desc_from_text(text)
|
106
|
+
raise TagFormatError if text.nil? || text.empty?
|
107
|
+
title = nil
|
108
|
+
desc = nil
|
109
|
+
if text =~ /\A[ \t]\n/
|
110
|
+
desc = text
|
111
|
+
else
|
112
|
+
text = text.split(/\r?\n/)
|
113
|
+
title = text.shift.squeeze(' ').strip
|
114
|
+
desc = text.join("\n")
|
115
|
+
end
|
116
|
+
[title, desc]
|
117
|
+
end
|
118
|
+
|
119
|
+
# Parses a [], <>, {} or () block at the beginning of a line of text
|
120
|
+
# into a list of comma delimited values.
|
121
|
+
#
|
122
|
+
# @example
|
123
|
+
# obj.parse_types('[String, Array<Hash, String>, nil]') # => [nil, ['String', 'Array<Hash, String>', 'nil'], ""]
|
124
|
+
# obj.parse_types('b<String> A string') # => ['b', ['String'], 'A string']
|
125
|
+
#
|
126
|
+
# @return [Array(String, Array<String>, String)] the text before the type
|
127
|
+
# list (or nil), followed by the type list parsed into an array of
|
128
|
+
# strings, followed by the text following the type list.
|
129
|
+
def extract_types_and_name_from_text(text, opening_types = TYPELIST_OPENING_CHARS, closing_types = TYPELIST_CLOSING_CHARS)
|
130
|
+
before, list, text = *extract_types_and_name_from_text_unstripped(text, opening_types, closing_types)
|
131
|
+
if list.nil?
|
132
|
+
[nil, nil, text.strip]
|
133
|
+
else
|
134
|
+
[before ? before.strip : nil, list.map(&:strip), text.strip]
|
135
|
+
end
|
136
|
+
end
|
137
|
+
|
138
|
+
def extract_types_and_name_from_text_unstripped(text, opening_types = TYPELIST_OPENING_CHARS, closing_types = TYPELIST_CLOSING_CHARS)
|
139
|
+
e = 0
|
140
|
+
before = String.new("")
|
141
|
+
list = [String.new("")]
|
142
|
+
level = 0
|
143
|
+
seen_space = false
|
144
|
+
i = 0
|
145
|
+
last_seen = ''
|
146
|
+
while i < text.length
|
147
|
+
c = text[i, 1]
|
148
|
+
|
149
|
+
if (c == '"' || c == "'") && text[i..-1] =~ /#{c}.+?#{c}/
|
150
|
+
list.last << $&
|
151
|
+
i += $&.length
|
152
|
+
next
|
153
|
+
end
|
154
|
+
|
155
|
+
if level > 0 && c == '#' && text[i + 1..-1] =~ CodeObjects::METHODNAMEMATCH
|
156
|
+
list.last << c + $&
|
157
|
+
i += $&.length + 1
|
158
|
+
next
|
159
|
+
elsif opening_types.include?(c)
|
160
|
+
list.last << c if level > 0
|
161
|
+
level += 1
|
162
|
+
elsif closing_types.include?(c)
|
163
|
+
level -= 1 unless last_seen == '=' && c == '>'
|
164
|
+
break e = i if level == 0
|
165
|
+
list.last << c
|
166
|
+
elsif c == ',' && level == 1
|
167
|
+
list.push String.new("")
|
168
|
+
elsif c =~ /\S/ && level == 0
|
169
|
+
break e = i if seen_space && list == ['']
|
170
|
+
before << c
|
171
|
+
elsif c =~ /[ \t]/ && level == 0 && !before.empty?
|
172
|
+
seen_space = true
|
173
|
+
elsif level >= 1
|
174
|
+
list.last << c
|
175
|
+
elsif level == 0 && c == "\n"
|
176
|
+
break e = i
|
177
|
+
end
|
178
|
+
last_seen = c
|
179
|
+
i += 1
|
180
|
+
end
|
181
|
+
|
182
|
+
before = before.empty? ? nil : before
|
183
|
+
if list.size == 1 && list.first == ''
|
184
|
+
[nil, nil, text]
|
185
|
+
else
|
186
|
+
[before, list, text[(e + 1)..-1]]
|
187
|
+
end
|
188
|
+
end
|
189
|
+
end
|
190
|
+
end
|
191
|
+
end
|