yard 0.9.16 → 0.9.17
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of yard might be problematic. Click here for more details.
- checksums.yaml +5 -5
- data/.yardopts +26 -26
- data/CHANGELOG.md +728 -728
- data/LEGAL +66 -66
- data/LICENSE +22 -22
- data/README.md +328 -328
- data/Rakefile +53 -47
- data/benchmarks/builtins_vs_eval.rb +24 -24
- data/benchmarks/concat_vs_join.rb +13 -13
- data/benchmarks/erb_vs_erubis.rb +54 -54
- data/benchmarks/format_args.rb +47 -47
- data/benchmarks/generation.rb +38 -38
- data/benchmarks/marshal_vs_dbm.rb +64 -64
- data/benchmarks/parsing.rb +46 -46
- data/benchmarks/pathname_vs_string.rb +50 -50
- data/benchmarks/rdoc_vs_yardoc.rb +11 -11
- data/benchmarks/registry_store_types.rb +49 -49
- data/benchmarks/ri_vs_yri.rb +19 -19
- data/benchmarks/ripper_parser.rb +13 -13
- data/benchmarks/splat_vs_flatten.rb +13 -13
- data/benchmarks/template_erb.rb +23 -23
- data/benchmarks/template_format.rb +7 -7
- data/benchmarks/template_profile.rb +18 -18
- data/benchmarks/yri_cache.rb +20 -20
- data/bin/yard +13 -13
- data/bin/yardoc +13 -13
- data/bin/yri +13 -13
- data/docs/CodeObjects.md +115 -115
- data/docs/GettingStarted.md +679 -679
- data/docs/Handlers.md +152 -152
- data/docs/Overview.md +61 -61
- data/docs/Parser.md +191 -191
- data/docs/Tags.md +283 -283
- data/docs/TagsArch.md +123 -123
- data/docs/Templates.md +496 -496
- data/docs/WhatsNew.md +1245 -1245
- data/docs/templates/default/fulldoc/html/full_list_tag.erb +8 -8
- data/docs/templates/default/fulldoc/html/setup.rb +6 -6
- data/docs/templates/default/layout/html/setup.rb +9 -9
- data/docs/templates/default/layout/html/tag_list.erb +11 -11
- data/docs/templates/default/yard_tags/html/list.erb +18 -18
- data/docs/templates/default/yard_tags/html/setup.rb +26 -26
- data/docs/templates/plugin.rb +70 -70
- data/lib/rubygems_plugin.rb +9 -9
- data/lib/yard.rb +69 -69
- data/lib/yard/autoload.rb +303 -303
- data/lib/yard/cli/command.rb +85 -85
- data/lib/yard/cli/command_parser.rb +93 -93
- data/lib/yard/cli/config.rb +198 -198
- data/lib/yard/cli/diff.rb +270 -270
- data/lib/yard/cli/display.rb +69 -69
- data/lib/yard/cli/gems.rb +84 -84
- data/lib/yard/cli/graph.rb +125 -125
- data/lib/yard/cli/help.rb +20 -20
- data/lib/yard/cli/i18n.rb +70 -70
- data/lib/yard/cli/list.rb +23 -23
- data/lib/yard/cli/markup_types.rb +32 -32
- data/lib/yard/cli/server.rb +257 -257
- data/lib/yard/cli/stats.rb +231 -231
- data/lib/yard/cli/yardoc.rb +788 -788
- data/lib/yard/cli/yardopts_command.rb +110 -110
- data/lib/yard/cli/yri.rb +215 -215
- data/lib/yard/code_objects/base.rb +615 -610
- data/lib/yard/code_objects/class_object.rb +146 -146
- data/lib/yard/code_objects/class_variable_object.rb +11 -11
- data/lib/yard/code_objects/constant_object.rb +16 -16
- data/lib/yard/code_objects/extended_method_object.rb +24 -24
- data/lib/yard/code_objects/extra_file_object.rb +131 -131
- data/lib/yard/code_objects/macro_object.rb +172 -172
- data/lib/yard/code_objects/method_object.rb +196 -196
- data/lib/yard/code_objects/module_object.rb +21 -21
- data/lib/yard/code_objects/namespace_mapper.rb +114 -114
- data/lib/yard/code_objects/namespace_object.rb +200 -200
- data/lib/yard/code_objects/proxy.rb +240 -240
- data/lib/yard/code_objects/root_object.rb +19 -19
- data/lib/yard/config.rb +270 -270
- data/lib/yard/core_ext/array.rb +16 -16
- data/lib/yard/core_ext/file.rb +69 -69
- data/lib/yard/core_ext/hash.rb +16 -16
- data/lib/yard/core_ext/insertion.rb +63 -63
- data/lib/yard/core_ext/module.rb +20 -20
- data/lib/yard/core_ext/string.rb +68 -68
- data/lib/yard/core_ext/symbol_hash.rb +75 -75
- data/lib/yard/docstring.rb +386 -378
- data/lib/yard/docstring_parser.rb +345 -345
- data/lib/yard/gem_index.rb +29 -29
- data/lib/yard/globals.rb +22 -22
- data/lib/yard/handlers/base.rb +595 -595
- data/lib/yard/handlers/c/alias_handler.rb +16 -16
- data/lib/yard/handlers/c/attribute_handler.rb +13 -13
- data/lib/yard/handlers/c/base.rb +129 -129
- data/lib/yard/handlers/c/class_handler.rb +27 -27
- data/lib/yard/handlers/c/constant_handler.rb +13 -13
- data/lib/yard/handlers/c/handler_methods.rb +211 -211
- data/lib/yard/handlers/c/init_handler.rb +20 -20
- data/lib/yard/handlers/c/method_handler.rb +45 -36
- data/lib/yard/handlers/c/mixin_handler.rb +21 -21
- data/lib/yard/handlers/c/module_handler.rb +17 -17
- data/lib/yard/handlers/c/override_comment_handler.rb +31 -31
- data/lib/yard/handlers/c/path_handler.rb +11 -11
- data/lib/yard/handlers/c/struct_handler.rb +13 -13
- data/lib/yard/handlers/c/symbol_handler.rb +8 -8
- data/lib/yard/handlers/processor.rb +200 -200
- data/lib/yard/handlers/ruby/alias_handler.rb +44 -44
- data/lib/yard/handlers/ruby/attribute_handler.rb +87 -87
- data/lib/yard/handlers/ruby/base.rb +165 -165
- data/lib/yard/handlers/ruby/class_condition_handler.rb +92 -92
- data/lib/yard/handlers/ruby/class_handler.rb +119 -119
- data/lib/yard/handlers/ruby/class_variable_handler.rb +17 -17
- data/lib/yard/handlers/ruby/comment_handler.rb +10 -10
- data/lib/yard/handlers/ruby/constant_handler.rb +59 -59
- data/lib/yard/handlers/ruby/decorator_handler_methods.rb +123 -123
- data/lib/yard/handlers/ruby/dsl_handler.rb +15 -15
- data/lib/yard/handlers/ruby/dsl_handler_methods.rb +96 -95
- data/lib/yard/handlers/ruby/exception_handler.rb +27 -27
- data/lib/yard/handlers/ruby/extend_handler.rb +22 -22
- data/lib/yard/handlers/ruby/legacy/alias_handler.rb +37 -37
- data/lib/yard/handlers/ruby/legacy/attribute_handler.rb +65 -65
- data/lib/yard/handlers/ruby/legacy/base.rb +245 -245
- data/lib/yard/handlers/ruby/legacy/class_condition_handler.rb +83 -83
- data/lib/yard/handlers/ruby/legacy/class_handler.rb +113 -113
- data/lib/yard/handlers/ruby/legacy/class_variable_handler.rb +15 -15
- data/lib/yard/handlers/ruby/legacy/comment_handler.rb +10 -10
- data/lib/yard/handlers/ruby/legacy/constant_handler.rb +29 -29
- data/lib/yard/handlers/ruby/legacy/dsl_handler.rb +17 -17
- data/lib/yard/handlers/ruby/legacy/exception_handler.rb +13 -13
- data/lib/yard/handlers/ruby/legacy/extend_handler.rb +21 -21
- data/lib/yard/handlers/ruby/legacy/method_handler.rb +90 -90
- data/lib/yard/handlers/ruby/legacy/mixin_handler.rb +39 -39
- data/lib/yard/handlers/ruby/legacy/module_function_handler.rb +19 -19
- data/lib/yard/handlers/ruby/legacy/module_handler.rb +12 -12
- data/lib/yard/handlers/ruby/legacy/private_class_method_handler.rb +22 -22
- data/lib/yard/handlers/ruby/legacy/private_constant_handler.rb +22 -22
- data/lib/yard/handlers/ruby/legacy/visibility_handler.rb +17 -17
- data/lib/yard/handlers/ruby/legacy/yield_handler.rb +29 -29
- data/lib/yard/handlers/ruby/method_condition_handler.rb +9 -9
- data/lib/yard/handlers/ruby/method_handler.rb +118 -118
- data/lib/yard/handlers/ruby/mixin_handler.rb +37 -37
- data/lib/yard/handlers/ruby/module_function_handler.rb +27 -27
- data/lib/yard/handlers/ruby/module_handler.rb +12 -12
- data/lib/yard/handlers/ruby/private_class_method_handler.rb +14 -14
- data/lib/yard/handlers/ruby/private_constant_handler.rb +43 -43
- data/lib/yard/handlers/ruby/public_class_method_handler.rb +14 -14
- data/lib/yard/handlers/ruby/struct_handler_methods.rb +143 -143
- data/lib/yard/handlers/ruby/visibility_handler.rb +22 -22
- data/lib/yard/handlers/ruby/yield_handler.rb +31 -31
- data/lib/yard/i18n/locale.rb +67 -67
- data/lib/yard/i18n/message.rb +57 -57
- data/lib/yard/i18n/messages.rb +56 -56
- data/lib/yard/i18n/po_parser.rb +61 -61
- data/lib/yard/i18n/pot_generator.rb +290 -290
- data/lib/yard/i18n/text.rb +173 -173
- data/lib/yard/logging.rb +205 -205
- data/lib/yard/options.rb +217 -217
- data/lib/yard/parser/base.rb +57 -57
- data/lib/yard/parser/c/c_parser.rb +235 -235
- data/lib/yard/parser/c/comment_parser.rb +134 -134
- data/lib/yard/parser/c/statement.rb +64 -64
- data/lib/yard/parser/ruby/ast_node.rb +540 -540
- data/lib/yard/parser/ruby/legacy/ruby_lex.rb +1354 -1354
- data/lib/yard/parser/ruby/legacy/ruby_parser.rb +32 -32
- data/lib/yard/parser/ruby/legacy/statement.rb +66 -66
- data/lib/yard/parser/ruby/legacy/statement_list.rb +394 -394
- data/lib/yard/parser/ruby/legacy/token_list.rb +74 -74
- data/lib/yard/parser/ruby/ruby_parser.rb +687 -687
- data/lib/yard/parser/ruby/token_resolver.rb +156 -156
- data/lib/yard/parser/source_parser.rb +526 -526
- data/lib/yard/rake/yardoc_task.rb +81 -81
- data/lib/yard/registry.rb +439 -439
- data/lib/yard/registry_resolver.rb +189 -189
- data/lib/yard/registry_store.rb +337 -337
- data/lib/yard/rubygems/backports.rb +10 -10
- data/lib/yard/rubygems/backports/LICENSE.txt +57 -57
- data/lib/yard/rubygems/backports/MIT.txt +20 -20
- data/lib/yard/rubygems/backports/gem.rb +10 -10
- data/lib/yard/rubygems/backports/source_index.rb +365 -365
- data/lib/yard/rubygems/doc_manager.rb +90 -90
- data/lib/yard/rubygems/hook.rb +197 -197
- data/lib/yard/rubygems/specification.rb +50 -50
- data/lib/yard/serializers/base.rb +83 -83
- data/lib/yard/serializers/file_system_serializer.rb +123 -123
- data/lib/yard/serializers/process_serializer.rb +24 -24
- data/lib/yard/serializers/stdout_serializer.rb +34 -34
- data/lib/yard/serializers/yardoc_serializer.rb +152 -152
- data/lib/yard/server.rb +13 -13
- data/lib/yard/server/adapter.rb +100 -100
- data/lib/yard/server/commands/base.rb +209 -209
- data/lib/yard/server/commands/display_file_command.rb +29 -29
- data/lib/yard/server/commands/display_object_command.rb +65 -65
- data/lib/yard/server/commands/frames_command.rb +16 -16
- data/lib/yard/server/commands/library_command.rb +187 -187
- data/lib/yard/server/commands/library_index_command.rb +28 -28
- data/lib/yard/server/commands/list_command.rb +25 -25
- data/lib/yard/server/commands/root_request_command.rb +15 -15
- data/lib/yard/server/commands/search_command.rb +79 -79
- data/lib/yard/server/commands/static_file_command.rb +23 -23
- data/lib/yard/server/commands/static_file_helpers.rb +62 -62
- data/lib/yard/server/doc_server_helper.rb +91 -91
- data/lib/yard/server/doc_server_serializer.rb +39 -39
- data/lib/yard/server/library_version.rb +277 -277
- data/lib/yard/server/rack_adapter.rb +89 -89
- data/lib/yard/server/router.rb +187 -187
- data/lib/yard/server/static_caching.rb +46 -46
- data/lib/yard/server/templates/default/fulldoc/html/css/custom.css +127 -127
- data/lib/yard/server/templates/default/fulldoc/html/js/autocomplete.js +11 -11
- data/lib/yard/server/templates/default/layout/html/breadcrumb.erb +37 -37
- data/lib/yard/server/templates/default/layout/html/script_setup.erb +7 -7
- data/lib/yard/server/templates/default/layout/html/setup.rb +8 -8
- data/lib/yard/server/templates/default/method_details/html/permalink.erb +4 -4
- data/lib/yard/server/templates/default/method_details/html/setup.rb +5 -5
- data/lib/yard/server/templates/doc_server/library_list/html/headers.erb +8 -8
- data/lib/yard/server/templates/doc_server/library_list/html/library_list.erb +14 -14
- data/lib/yard/server/templates/doc_server/library_list/html/listing.erb +13 -13
- data/lib/yard/server/templates/doc_server/library_list/html/setup.rb +6 -6
- data/lib/yard/server/templates/doc_server/library_list/html/title.erb +2 -2
- data/lib/yard/server/templates/doc_server/processing/html/processing.erb +52 -52
- data/lib/yard/server/templates/doc_server/processing/html/setup.rb +4 -4
- data/lib/yard/server/templates/doc_server/search/html/search.erb +18 -18
- data/lib/yard/server/templates/doc_server/search/html/setup.rb +9 -9
- data/lib/yard/server/webrick_adapter.rb +45 -45
- data/lib/yard/tags/default_factory.rb +191 -191
- data/lib/yard/tags/default_tag.rb +13 -13
- data/lib/yard/tags/directives.rb +616 -616
- data/lib/yard/tags/library.rb +633 -633
- data/lib/yard/tags/option_tag.rb +13 -13
- data/lib/yard/tags/overload_tag.rb +71 -71
- data/lib/yard/tags/ref_tag.rb +8 -8
- data/lib/yard/tags/ref_tag_list.rb +28 -28
- data/lib/yard/tags/tag.rb +71 -71
- data/lib/yard/tags/tag_format_error.rb +7 -7
- data/lib/yard/tags/types_explainer.rb +162 -162
- data/lib/yard/templates/engine.rb +186 -186
- data/lib/yard/templates/erb_cache.rb +23 -23
- data/lib/yard/templates/helpers/base_helper.rb +215 -215
- data/lib/yard/templates/helpers/filter_helper.rb +27 -27
- data/lib/yard/templates/helpers/html_helper.rb +646 -642
- data/lib/yard/templates/helpers/html_syntax_highlight_helper.rb +78 -78
- data/lib/yard/templates/helpers/markup/rdoc_markdown.rb +23 -23
- data/lib/yard/templates/helpers/markup/rdoc_markup.rb +109 -109
- data/lib/yard/templates/helpers/markup_helper.rb +172 -172
- data/lib/yard/templates/helpers/method_helper.rb +75 -75
- data/lib/yard/templates/helpers/module_helper.rb +21 -21
- data/lib/yard/templates/helpers/text_helper.rb +112 -112
- data/lib/yard/templates/helpers/uml_helper.rb +47 -47
- data/lib/yard/templates/section.rb +105 -105
- data/lib/yard/templates/template.rb +418 -418
- data/lib/yard/templates/template_options.rb +92 -92
- data/lib/yard/verifier.rb +151 -151
- data/lib/yard/version.rb +3 -1
- data/spec/cli/command_parser_spec.rb +43 -43
- data/spec/cli/command_spec.rb +36 -36
- data/spec/cli/config_spec.rb +148 -148
- data/spec/cli/diff_spec.rb +254 -254
- data/spec/cli/display_spec.rb +30 -30
- data/spec/cli/gems_spec.rb +81 -81
- data/spec/cli/graph_spec.rb +18 -18
- data/spec/cli/help_spec.rb +22 -22
- data/spec/cli/i18n_spec.rb +107 -107
- data/spec/cli/list_spec.rb +8 -8
- data/spec/cli/markup_types_spec.rb +22 -22
- data/spec/cli/server_spec.rb +324 -324
- data/spec/cli/stats_spec.rb +96 -96
- data/spec/cli/yard_on_yard_spec.rb +38 -38
- data/spec/cli/yardoc_spec.rb +862 -849
- data/spec/cli/yri_spec.rb +101 -101
- data/spec/code_objects/base_spec.rb +470 -460
- data/spec/code_objects/class_object_spec.rb +226 -226
- data/spec/code_objects/code_object_list_spec.rb +36 -36
- data/spec/code_objects/constants_spec.rb +116 -116
- data/spec/code_objects/extra_file_object_spec.rb +160 -160
- data/spec/code_objects/macro_object_spec.rb +150 -150
- data/spec/code_objects/method_object_spec.rb +184 -184
- data/spec/code_objects/module_object_spec.rb +142 -142
- data/spec/code_objects/namespace_object_spec.rb +171 -171
- data/spec/code_objects/proxy_spec.rb +141 -141
- data/spec/code_objects/spec_helper.rb +3 -3
- data/spec/config_spec.rb +171 -171
- data/spec/core_ext/array_spec.rb +13 -13
- data/spec/core_ext/file_spec.rb +72 -72
- data/spec/core_ext/hash_spec.rb +14 -14
- data/spec/core_ext/insertion_spec.rb +37 -37
- data/spec/core_ext/module_spec.rb +15 -15
- data/spec/core_ext/string_spec.rb +42 -42
- data/spec/core_ext/symbol_hash_spec.rb +89 -89
- data/spec/docstring_parser_spec.rb +280 -262
- data/spec/docstring_spec.rb +373 -364
- data/spec/examples.txt +1875 -1871
- data/spec/handlers/alias_handler_spec.rb +82 -82
- data/spec/handlers/attribute_handler_spec.rb +96 -96
- data/spec/handlers/base_spec.rb +216 -216
- data/spec/handlers/c/alias_handler_spec.rb +34 -34
- data/spec/handlers/c/attribute_handler_spec.rb +41 -41
- data/spec/handlers/c/class_handler_spec.rb +78 -78
- data/spec/handlers/c/constant_handler_spec.rb +71 -71
- data/spec/handlers/c/init_handler_spec.rb +48 -48
- data/spec/handlers/c/method_handler_spec.rb +325 -325
- data/spec/handlers/c/mixin_handler_spec.rb +44 -44
- data/spec/handlers/c/module_handler_spec.rb +71 -71
- data/spec/handlers/c/override_comment_handler_spec.rb +47 -47
- data/spec/handlers/c/path_handler_spec.rb +36 -36
- data/spec/handlers/c/spec_helper.rb +23 -23
- data/spec/handlers/c/struct_handler_spec.rb +16 -16
- data/spec/handlers/class_condition_handler_spec.rb +87 -87
- data/spec/handlers/class_handler_spec.rb +247 -247
- data/spec/handlers/class_method_handler_shared_examples.rb +133 -133
- data/spec/handlers/class_variable_handler_spec.rb +12 -12
- data/spec/handlers/constant_handler_spec.rb +112 -112
- data/spec/handlers/decorator_handler_methods_spec.rb +393 -393
- data/spec/handlers/dsl_handler_spec.rb +219 -219
- data/spec/handlers/examples/alias_handler_001.rb.txt +45 -45
- data/spec/handlers/examples/attribute_handler_001.rb.txt +31 -31
- data/spec/handlers/examples/class_condition_handler_001.rb.txt +68 -68
- data/spec/handlers/examples/class_handler_001.rb.txt +120 -120
- data/spec/handlers/examples/class_variable_handler_001.rb.txt +9 -9
- data/spec/handlers/examples/constant_handler_001.rb.txt +35 -35
- data/spec/handlers/examples/dsl_handler_001.rb.txt +154 -154
- data/spec/handlers/examples/exception_handler_001.rb.txt +58 -58
- data/spec/handlers/examples/extend_handler_001.rb.txt +15 -15
- data/spec/handlers/examples/method_condition_handler_001.rb.txt +9 -9
- data/spec/handlers/examples/method_handler_001.rb.txt +128 -128
- data/spec/handlers/examples/mixin_handler_001.rb.txt +37 -37
- data/spec/handlers/examples/module_handler_001.rb.txt +29 -29
- data/spec/handlers/examples/private_constant_handler_001.rb.txt +8 -8
- data/spec/handlers/examples/process_handler_001.rb.txt +11 -11
- data/spec/handlers/examples/visibility_handler_001.rb.txt +35 -35
- data/spec/handlers/examples/yield_handler_001.rb.txt +54 -54
- data/spec/handlers/exception_handler_spec.rb +49 -49
- data/spec/handlers/extend_handler_spec.rb +24 -24
- data/spec/handlers/legacy_base_spec.rb +128 -128
- data/spec/handlers/method_condition_handler_spec.rb +15 -15
- data/spec/handlers/method_handler_spec.rb +190 -190
- data/spec/handlers/mixin_handler_spec.rb +56 -56
- data/spec/handlers/module_function_handler_spec.rb +106 -106
- data/spec/handlers/module_handler_spec.rb +35 -35
- data/spec/handlers/private_class_method_handler_spec.rb +11 -11
- data/spec/handlers/private_constant_handler_spec.rb +25 -25
- data/spec/handlers/processor_spec.rb +35 -35
- data/spec/handlers/public_class_method_handler_spec.rb +11 -11
- data/spec/handlers/ruby/base_spec.rb +95 -95
- data/spec/handlers/ruby/legacy/base_spec.rb +84 -84
- data/spec/handlers/spec_helper.rb +33 -33
- data/spec/handlers/visibility_handler_spec.rb +44 -44
- data/spec/handlers/yield_handler_spec.rb +52 -52
- data/spec/i18n/locale_spec.rb +81 -81
- data/spec/i18n/message_spec.rb +52 -52
- data/spec/i18n/messages_spec.rb +67 -67
- data/spec/i18n/pot_generator_spec.rb +295 -295
- data/spec/i18n/text_spec.rb +184 -184
- data/spec/logging_spec.rb +44 -44
- data/spec/options_spec.rb +171 -171
- data/spec/parser/base_spec.rb +24 -24
- data/spec/parser/c_parser_spec.rb +236 -223
- data/spec/parser/examples/array.c.txt +6267 -6267
- data/spec/parser/examples/example1.rb.txt +7 -7
- data/spec/parser/examples/extrafile.c.txt +8 -8
- data/spec/parser/examples/file.c.txt +28 -0
- data/spec/parser/examples/multifile.c.txt +22 -22
- data/spec/parser/examples/namespace.cpp.txt +68 -68
- data/spec/parser/examples/override.c.txt +424 -424
- data/spec/parser/examples/parse_in_order_001.rb.txt +2 -2
- data/spec/parser/examples/parse_in_order_002.rb.txt +1 -1
- data/spec/parser/examples/tag_handler_001.rb.txt +7 -7
- data/spec/parser/ruby/ast_node_spec.rb +33 -33
- data/spec/parser/ruby/legacy/statement_list_spec.rb +299 -299
- data/spec/parser/ruby/legacy/token_list_spec.rb +79 -79
- data/spec/parser/ruby/ruby_parser_spec.rb +508 -508
- data/spec/parser/ruby/token_resolver_spec.rb +165 -165
- data/spec/parser/source_parser_spec.rb +727 -727
- data/spec/parser/tag_parsing_spec.rb +17 -17
- data/spec/rake/yardoc_task_spec.rb +118 -118
- data/spec/registry_spec.rb +463 -463
- data/spec/registry_store_spec.rb +316 -316
- data/spec/rubygems/doc_manager_spec.rb +112 -112
- data/spec/serializers/data/serialized_yardoc/checksums +1 -1
- data/spec/serializers/file_system_serializer_spec.rb +145 -145
- data/spec/serializers/spec_helper.rb +2 -2
- data/spec/serializers/yardoc_serializer_spec.rb +78 -78
- data/spec/server/adapter_spec.rb +39 -39
- data/spec/server/commands/base_spec.rb +91 -91
- data/spec/server/commands/library_command_spec.rb +39 -39
- data/spec/server/doc_server_helper_spec.rb +72 -72
- data/spec/server/doc_server_serializer_spec.rb +60 -60
- data/spec/server/rack_adapter_spec.rb +21 -21
- data/spec/server/router_spec.rb +123 -123
- data/spec/server/spec_helper.rb +22 -22
- data/spec/server/static_caching_spec.rb +47 -47
- data/spec/server/webrick_servlet_spec.rb +20 -20
- data/spec/server_spec.rb +19 -19
- data/spec/spec_helper.rb +212 -212
- data/spec/tags/default_factory_spec.rb +168 -168
- data/spec/tags/default_tag_spec.rb +11 -11
- data/spec/tags/directives_spec.rb +463 -463
- data/spec/tags/library_spec.rb +48 -48
- data/spec/tags/overload_tag_spec.rb +53 -53
- data/spec/tags/ref_tag_list_spec.rb +53 -53
- data/spec/tags/types_explainer_spec.rb +203 -203
- data/spec/templates/class_spec.rb +45 -45
- data/spec/templates/constant_spec.rb +41 -41
- data/spec/templates/engine_spec.rb +131 -131
- data/spec/templates/examples/class001.html +308 -308
- data/spec/templates/examples/class001.txt +36 -36
- data/spec/templates/examples/class002.html +39 -39
- data/spec/templates/examples/constant001.txt +24 -24
- data/spec/templates/examples/constant002.txt +6 -6
- data/spec/templates/examples/constant003.txt +10 -10
- data/spec/templates/examples/method001.html +137 -137
- data/spec/templates/examples/method001.txt +35 -35
- data/spec/templates/examples/method002.html +91 -91
- data/spec/templates/examples/method002.txt +20 -20
- data/spec/templates/examples/method003.html +165 -165
- data/spec/templates/examples/method003.txt +45 -45
- data/spec/templates/examples/method004.html +48 -48
- data/spec/templates/examples/method004.txt +10 -10
- data/spec/templates/examples/method005.html +105 -105
- data/spec/templates/examples/method005.txt +33 -33
- data/spec/templates/examples/method006.html +107 -107
- data/spec/templates/examples/method006.txt +20 -20
- data/spec/templates/examples/module001.dot +33 -33
- data/spec/templates/examples/module001.html +833 -833
- data/spec/templates/examples/module001.txt +33 -33
- data/spec/templates/examples/module002.html +341 -341
- data/spec/templates/examples/module003.html +202 -202
- data/spec/templates/examples/module004.html +394 -394
- data/spec/templates/examples/module005.html +81 -81
- data/spec/templates/examples/tag001.txt +82 -82
- data/spec/templates/helpers/base_helper_spec.rb +171 -171
- data/spec/templates/helpers/html_helper_spec.rb +668 -653
- data/spec/templates/helpers/html_syntax_highlight_helper_spec.rb +65 -65
- data/spec/templates/helpers/markup/rdoc_markup_spec.rb +84 -84
- data/spec/templates/helpers/markup_helper_spec.rb +136 -136
- data/spec/templates/helpers/method_helper_spec.rb +107 -107
- data/spec/templates/helpers/module_helper_spec.rb +35 -35
- data/spec/templates/helpers/shared_signature_examples.rb +126 -126
- data/spec/templates/helpers/text_helper_spec.rb +65 -65
- data/spec/templates/method_spec.rb +118 -118
- data/spec/templates/module_spec.rb +203 -203
- data/spec/templates/onefile_spec.rb +66 -66
- data/spec/templates/section_spec.rb +144 -144
- data/spec/templates/spec_helper.rb +76 -76
- data/spec/templates/tag_spec.rb +52 -52
- data/spec/templates/template_spec.rb +410 -410
- data/spec/verifier_spec.rb +106 -106
- data/templates/default/class/dot/setup.rb +7 -7
- data/templates/default/class/dot/superklass.erb +2 -2
- data/templates/default/class/html/constructor_details.erb +8 -8
- data/templates/default/class/html/setup.rb +2 -2
- data/templates/default/class/html/subclasses.erb +4 -4
- data/templates/default/class/setup.rb +36 -36
- data/templates/default/class/text/setup.rb +12 -12
- data/templates/default/class/text/subclasses.erb +5 -5
- data/templates/default/constant/text/header.erb +11 -11
- data/templates/default/constant/text/setup.rb +4 -4
- data/templates/default/docstring/html/abstract.erb +4 -4
- data/templates/default/docstring/html/deprecated.erb +1 -1
- data/templates/default/docstring/html/index.erb +5 -5
- data/templates/default/docstring/html/note.erb +6 -6
- data/templates/default/docstring/html/private.erb +4 -4
- data/templates/default/docstring/html/text.erb +1 -1
- data/templates/default/docstring/html/todo.erb +6 -6
- data/templates/default/docstring/setup.rb +52 -52
- data/templates/default/docstring/text/abstract.erb +2 -2
- data/templates/default/docstring/text/deprecated.erb +2 -2
- data/templates/default/docstring/text/index.erb +2 -2
- data/templates/default/docstring/text/note.erb +3 -3
- data/templates/default/docstring/text/private.erb +2 -2
- data/templates/default/docstring/text/text.erb +1 -1
- data/templates/default/docstring/text/todo.erb +3 -3
- data/templates/default/fulldoc/html/css/full_list.css +58 -58
- data/templates/default/fulldoc/html/css/style.css +496 -496
- data/templates/default/fulldoc/html/frames.erb +17 -17
- data/templates/default/fulldoc/html/full_list.erb +37 -37
- data/templates/default/fulldoc/html/full_list_class.erb +2 -2
- data/templates/default/fulldoc/html/full_list_file.erb +7 -7
- data/templates/default/fulldoc/html/full_list_method.erb +10 -10
- data/templates/default/fulldoc/html/js/app.js +292 -292
- data/templates/default/fulldoc/html/js/full_list.js +216 -216
- data/templates/default/fulldoc/html/js/jquery.js +3 -3
- data/templates/default/fulldoc/html/setup.rb +241 -241
- data/templates/default/layout/dot/header.erb +5 -5
- data/templates/default/layout/dot/setup.rb +15 -15
- data/templates/default/layout/html/breadcrumb.erb +11 -11
- data/templates/default/layout/html/files.erb +11 -11
- data/templates/default/layout/html/footer.erb +5 -5
- data/templates/default/layout/html/headers.erb +15 -15
- data/templates/default/layout/html/index.erb +2 -2
- data/templates/default/layout/html/layout.erb +23 -23
- data/templates/default/layout/html/listing.erb +4 -4
- data/templates/default/layout/html/objects.erb +32 -32
- data/templates/default/layout/html/script_setup.erb +4 -4
- data/templates/default/layout/html/search.erb +12 -12
- data/templates/default/layout/html/setup.rb +89 -89
- data/templates/default/method/html/header.erb +16 -16
- data/templates/default/method/setup.rb +4 -4
- data/templates/default/method_details/html/header.erb +2 -2
- data/templates/default/method_details/html/method_signature.erb +24 -24
- data/templates/default/method_details/html/source.erb +9 -9
- data/templates/default/method_details/setup.rb +11 -11
- data/templates/default/method_details/text/header.erb +10 -10
- data/templates/default/method_details/text/method_signature.erb +12 -12
- data/templates/default/method_details/text/setup.rb +11 -11
- data/templates/default/module/dot/child.erb +1 -1
- data/templates/default/module/dot/dependencies.erb +2 -2
- data/templates/default/module/dot/header.erb +6 -6
- data/templates/default/module/dot/info.erb +13 -13
- data/templates/default/module/dot/setup.rb +15 -15
- data/templates/default/module/html/attribute_details.erb +10 -10
- data/templates/default/module/html/attribute_summary.erb +8 -8
- data/templates/default/module/html/box_info.erb +43 -43
- data/templates/default/module/html/children.erb +8 -8
- data/templates/default/module/html/constant_summary.erb +17 -17
- data/templates/default/module/html/defines.erb +2 -2
- data/templates/default/module/html/header.erb +5 -5
- data/templates/default/module/html/inherited_attributes.erb +14 -14
- data/templates/default/module/html/inherited_constants.erb +8 -8
- data/templates/default/module/html/inherited_methods.erb +18 -18
- data/templates/default/module/html/item_summary.erb +40 -40
- data/templates/default/module/html/method_details_list.erb +9 -9
- data/templates/default/module/html/method_summary.erb +13 -13
- data/templates/default/module/html/methodmissing.erb +12 -12
- data/templates/default/module/setup.rb +167 -167
- data/templates/default/module/text/children.erb +9 -9
- data/templates/default/module/text/class_meths_list.erb +7 -7
- data/templates/default/module/text/extends.erb +7 -7
- data/templates/default/module/text/header.erb +7 -7
- data/templates/default/module/text/includes.erb +7 -7
- data/templates/default/module/text/instance_meths_list.erb +7 -7
- data/templates/default/module/text/setup.rb +13 -13
- data/templates/default/onefile/html/files.erb +4 -4
- data/templates/default/onefile/html/headers.erb +6 -6
- data/templates/default/onefile/html/layout.erb +17 -17
- data/templates/default/onefile/html/readme.erb +2 -2
- data/templates/default/onefile/html/setup.rb +62 -62
- data/templates/default/root/dot/child.erb +2 -2
- data/templates/default/root/dot/setup.rb +6 -6
- data/templates/default/root/html/setup.rb +2 -2
- data/templates/default/tags/html/example.erb +10 -10
- data/templates/default/tags/html/index.erb +2 -2
- data/templates/default/tags/html/option.erb +24 -24
- data/templates/default/tags/html/overload.erb +13 -13
- data/templates/default/tags/html/see.erb +7 -7
- data/templates/default/tags/html/tag.erb +20 -20
- data/templates/default/tags/setup.rb +57 -57
- data/templates/default/tags/text/example.erb +12 -12
- data/templates/default/tags/text/index.erb +1 -1
- data/templates/default/tags/text/option.erb +20 -20
- data/templates/default/tags/text/overload.erb +19 -19
- data/templates/default/tags/text/see.erb +11 -11
- data/templates/default/tags/text/tag.erb +13 -13
- data/templates/guide/class/html/setup.rb +2 -2
- data/templates/guide/docstring/html/setup.rb +2 -2
- data/templates/guide/fulldoc/html/css/style.css +108 -108
- data/templates/guide/fulldoc/html/js/app.js +33 -33
- data/templates/guide/fulldoc/html/setup.rb +74 -74
- data/templates/guide/layout/html/layout.erb +81 -81
- data/templates/guide/layout/html/setup.rb +25 -25
- data/templates/guide/method/html/header.erb +17 -17
- data/templates/guide/method/html/setup.rb +22 -22
- data/templates/guide/module/html/header.erb +6 -6
- data/templates/guide/module/html/method_list.erb +4 -4
- data/templates/guide/module/html/setup.rb +27 -27
- data/templates/guide/onefile/html/files.erb +4 -4
- data/templates/guide/onefile/html/setup.rb +6 -6
- data/templates/guide/onefile/html/toc.erb +3 -3
- data/templates/guide/tags/html/setup.rb +9 -9
- data/yard.gemspec +43 -43
- metadata +4 -4
data/lib/yard/core_ext/array.rb
CHANGED
@@ -1,16 +1,16 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
class Array
|
3
|
-
# Places values before or after another object (by value) in
|
4
|
-
# an array. This is used in tandem with the before and after
|
5
|
-
# methods of the {Insertion} class.
|
6
|
-
#
|
7
|
-
# @example Places an item before another
|
8
|
-
# [1, 2, 3].place(4).before(3) # => [1, 2, 4, 3]
|
9
|
-
# @example Places an item after another
|
10
|
-
# [:a, :b, :c].place(:x).after(:a) # => [:a, :x, :b, :c]
|
11
|
-
# @param [Array] values value to insert
|
12
|
-
# @return [Insertion] an insertion object to
|
13
|
-
# @see Insertion#before
|
14
|
-
# @see Insertion#after
|
15
|
-
def place(*values) Insertion.new(self, values) end
|
16
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
class Array
|
3
|
+
# Places values before or after another object (by value) in
|
4
|
+
# an array. This is used in tandem with the before and after
|
5
|
+
# methods of the {Insertion} class.
|
6
|
+
#
|
7
|
+
# @example Places an item before another
|
8
|
+
# [1, 2, 3].place(4).before(3) # => [1, 2, 4, 3]
|
9
|
+
# @example Places an item after another
|
10
|
+
# [:a, :b, :c].place(:x).after(:a) # => [:a, :x, :b, :c]
|
11
|
+
# @param [Array] values value to insert
|
12
|
+
# @return [Insertion] an insertion object to
|
13
|
+
# @see Insertion#before
|
14
|
+
# @see Insertion#after
|
15
|
+
def place(*values) Insertion.new(self, values) end
|
16
|
+
end
|
data/lib/yard/core_ext/file.rb
CHANGED
@@ -1,69 +1,69 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require 'fileutils'
|
3
|
-
|
4
|
-
class File
|
5
|
-
RELATIVE_PARENTDIR = '..'
|
6
|
-
RELATIVE_SAMEDIR = '.'
|
7
|
-
|
8
|
-
# @group Manipulating Paths
|
9
|
-
|
10
|
-
# Turns a path +to+ into a relative path from starting
|
11
|
-
# point +from+. The argument +from+ is assumed to be
|
12
|
-
# a filename. To treat it as a directory, make sure it
|
13
|
-
# ends in +File::SEPARATOR+ ('/' on UNIX filesystems).
|
14
|
-
#
|
15
|
-
# @param [String] from the starting filename
|
16
|
-
# (or directory with +from_isdir+ set to +true+).
|
17
|
-
# @param [String] to the final path that should be made relative.
|
18
|
-
# @return [String] the relative path from +from+ to +to+.
|
19
|
-
def self.relative_path(from, to)
|
20
|
-
from = expand_path(from).split(SEPARATOR)
|
21
|
-
to = expand_path(to).split(SEPARATOR)
|
22
|
-
from.length.times do
|
23
|
-
break if from[0] != to[0]
|
24
|
-
from.shift; to.shift
|
25
|
-
end
|
26
|
-
from.pop
|
27
|
-
join(*(from.map { RELATIVE_PARENTDIR } + to))
|
28
|
-
end
|
29
|
-
|
30
|
-
# Cleans a path by removing extraneous '..', '.' and '/' characters
|
31
|
-
#
|
32
|
-
# @example Clean a path
|
33
|
-
# File.cleanpath('a/b//./c/../e') # => "a/b/e"
|
34
|
-
# @param [String] path the path to clean
|
35
|
-
# @param [Boolean] rel_root allows relative path above root value
|
36
|
-
# @return [String] the sanitized path
|
37
|
-
def self.cleanpath(path, rel_root = false)
|
38
|
-
path = path.split(SEPARATOR)
|
39
|
-
path = path.inject([]) do |acc, comp|
|
40
|
-
next acc if comp == RELATIVE_SAMEDIR
|
41
|
-
if comp == RELATIVE_PARENTDIR && !acc.empty? && acc.last != RELATIVE_PARENTDIR
|
42
|
-
acc.pop
|
43
|
-
next acc
|
44
|
-
elsif !rel_root && comp == RELATIVE_PARENTDIR && acc.empty?
|
45
|
-
next acc
|
46
|
-
end
|
47
|
-
acc << comp
|
48
|
-
end
|
49
|
-
File.join(*path)
|
50
|
-
end
|
51
|
-
|
52
|
-
# @group Reading Files
|
53
|
-
|
54
|
-
# Forces opening a file (for writing) by first creating the file's directory
|
55
|
-
# @param [String] file the filename to open
|
56
|
-
# @since 0.5.2
|
57
|
-
def self.open!(file, *args, &block)
|
58
|
-
dir = dirname(file)
|
59
|
-
FileUtils.mkdir_p(dir) unless directory?(dir)
|
60
|
-
open(file, *args, &block)
|
61
|
-
end
|
62
|
-
|
63
|
-
# Reads a file with binary encoding
|
64
|
-
# @return [String] the ascii-8bit encoded data
|
65
|
-
# @since 0.5.3
|
66
|
-
def self.read_binary(file)
|
67
|
-
File.open(file, 'rb', &:read)
|
68
|
-
end
|
69
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require 'fileutils'
|
3
|
+
|
4
|
+
class File
|
5
|
+
RELATIVE_PARENTDIR = '..'
|
6
|
+
RELATIVE_SAMEDIR = '.'
|
7
|
+
|
8
|
+
# @group Manipulating Paths
|
9
|
+
|
10
|
+
# Turns a path +to+ into a relative path from starting
|
11
|
+
# point +from+. The argument +from+ is assumed to be
|
12
|
+
# a filename. To treat it as a directory, make sure it
|
13
|
+
# ends in +File::SEPARATOR+ ('/' on UNIX filesystems).
|
14
|
+
#
|
15
|
+
# @param [String] from the starting filename
|
16
|
+
# (or directory with +from_isdir+ set to +true+).
|
17
|
+
# @param [String] to the final path that should be made relative.
|
18
|
+
# @return [String] the relative path from +from+ to +to+.
|
19
|
+
def self.relative_path(from, to)
|
20
|
+
from = expand_path(from).split(SEPARATOR)
|
21
|
+
to = expand_path(to).split(SEPARATOR)
|
22
|
+
from.length.times do
|
23
|
+
break if from[0] != to[0]
|
24
|
+
from.shift; to.shift
|
25
|
+
end
|
26
|
+
from.pop
|
27
|
+
join(*(from.map { RELATIVE_PARENTDIR } + to))
|
28
|
+
end
|
29
|
+
|
30
|
+
# Cleans a path by removing extraneous '..', '.' and '/' characters
|
31
|
+
#
|
32
|
+
# @example Clean a path
|
33
|
+
# File.cleanpath('a/b//./c/../e') # => "a/b/e"
|
34
|
+
# @param [String] path the path to clean
|
35
|
+
# @param [Boolean] rel_root allows relative path above root value
|
36
|
+
# @return [String] the sanitized path
|
37
|
+
def self.cleanpath(path, rel_root = false)
|
38
|
+
path = path.split(SEPARATOR)
|
39
|
+
path = path.inject([]) do |acc, comp|
|
40
|
+
next acc if comp == RELATIVE_SAMEDIR
|
41
|
+
if comp == RELATIVE_PARENTDIR && !acc.empty? && acc.last != RELATIVE_PARENTDIR
|
42
|
+
acc.pop
|
43
|
+
next acc
|
44
|
+
elsif !rel_root && comp == RELATIVE_PARENTDIR && acc.empty?
|
45
|
+
next acc
|
46
|
+
end
|
47
|
+
acc << comp
|
48
|
+
end
|
49
|
+
File.join(*path)
|
50
|
+
end
|
51
|
+
|
52
|
+
# @group Reading Files
|
53
|
+
|
54
|
+
# Forces opening a file (for writing) by first creating the file's directory
|
55
|
+
# @param [String] file the filename to open
|
56
|
+
# @since 0.5.2
|
57
|
+
def self.open!(file, *args, &block)
|
58
|
+
dir = dirname(file)
|
59
|
+
FileUtils.mkdir_p(dir) unless directory?(dir)
|
60
|
+
open(file, *args, &block)
|
61
|
+
end
|
62
|
+
|
63
|
+
# Reads a file with binary encoding
|
64
|
+
# @return [String] the ascii-8bit encoded data
|
65
|
+
# @since 0.5.3
|
66
|
+
def self.read_binary(file)
|
67
|
+
File.open(file, 'rb', &:read)
|
68
|
+
end
|
69
|
+
end
|
data/lib/yard/core_ext/hash.rb
CHANGED
@@ -1,16 +1,16 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
class Hash
|
3
|
-
class << self
|
4
|
-
def create(*args)
|
5
|
-
if args.first.is_a?(Array) && args.size == 1
|
6
|
-
obj = new
|
7
|
-
args.first.each {|k, v| obj[k] = v }
|
8
|
-
obj
|
9
|
-
else
|
10
|
-
create_186(*args)
|
11
|
-
end
|
12
|
-
end
|
13
|
-
alias create_186 []
|
14
|
-
alias [] create
|
15
|
-
end
|
16
|
-
end if RUBY_VERSION < "1.8.7"
|
1
|
+
# frozen_string_literal: true
|
2
|
+
class Hash
|
3
|
+
class << self
|
4
|
+
def create(*args)
|
5
|
+
if args.first.is_a?(Array) && args.size == 1
|
6
|
+
obj = new
|
7
|
+
args.first.each {|k, v| obj[k] = v }
|
8
|
+
obj
|
9
|
+
else
|
10
|
+
create_186(*args)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
alias create_186 []
|
14
|
+
alias [] create
|
15
|
+
end
|
16
|
+
end if RUBY_VERSION < "1.8.7"
|
@@ -1,63 +1,63 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
# The Insertion class inserts a value before or after another
|
3
|
-
# value in a list.
|
4
|
-
#
|
5
|
-
# @example
|
6
|
-
# Insertion.new([1, 2, 3], 4).before(3) # => [1, 2, 4, 3]
|
7
|
-
class Insertion
|
8
|
-
# Creates an insertion object on a list with a value to be
|
9
|
-
# inserted. To finalize the insertion, call {#before} or
|
10
|
-
# {#after} on the object.
|
11
|
-
#
|
12
|
-
# @param [Array] list the list to perform the insertion on
|
13
|
-
# @param [Object] value the value to insert
|
14
|
-
def initialize(list, value)
|
15
|
-
@list = list
|
16
|
-
@values = (Array === value ? value : [value])
|
17
|
-
end
|
18
|
-
|
19
|
-
# Inserts the value before +val+
|
20
|
-
# @param [Object] val the object the value will be inserted before
|
21
|
-
# @param [Boolean] recursive look inside sublists
|
22
|
-
def before(val, recursive = false) insertion(val, 0, recursive) end
|
23
|
-
|
24
|
-
# Inserts the value after +val+.
|
25
|
-
#
|
26
|
-
# @example If subsections are ignored
|
27
|
-
# Insertion.new([1, [2], 3], :X).after(1) # => [1, [2], :X, 3]
|
28
|
-
# @param [Object] val the object the value will be inserted after
|
29
|
-
# @param [Boolean] recursive look inside sublists
|
30
|
-
def after(val, recursive = false) insertion(val, 1, recursive) end
|
31
|
-
|
32
|
-
# Alias for {#before} with +recursive+ set to true
|
33
|
-
# @since 0.6.0
|
34
|
-
def before_any(val) insertion(val, 0, true) end
|
35
|
-
|
36
|
-
# Alias for {#after} with +recursive+ set to true
|
37
|
-
# @since 0.6.0
|
38
|
-
def after_any(val) insertion(val, 1, true) end
|
39
|
-
|
40
|
-
private
|
41
|
-
|
42
|
-
# This method performs the actual insertion
|
43
|
-
#
|
44
|
-
# @param [Object] val the value to insert
|
45
|
-
# @param [Fixnum] rel the relative index (0 or 1) of where the object
|
46
|
-
# should be placed
|
47
|
-
# @param [Boolean] recursive look inside sublists
|
48
|
-
# @param [Array] list the list to place objects into
|
49
|
-
def insertion(val, rel, recursive = false, list = @list)
|
50
|
-
if recursive
|
51
|
-
list.each do |item|
|
52
|
-
next unless item.is_a?(Array)
|
53
|
-
tmp = item.dup
|
54
|
-
insertion(val, rel, recursive, item)
|
55
|
-
return(list) unless item == tmp
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
index = list.index(val)
|
60
|
-
list[index + rel, 0] = @values if index
|
61
|
-
list
|
62
|
-
end
|
63
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
# The Insertion class inserts a value before or after another
|
3
|
+
# value in a list.
|
4
|
+
#
|
5
|
+
# @example
|
6
|
+
# Insertion.new([1, 2, 3], 4).before(3) # => [1, 2, 4, 3]
|
7
|
+
class Insertion
|
8
|
+
# Creates an insertion object on a list with a value to be
|
9
|
+
# inserted. To finalize the insertion, call {#before} or
|
10
|
+
# {#after} on the object.
|
11
|
+
#
|
12
|
+
# @param [Array] list the list to perform the insertion on
|
13
|
+
# @param [Object] value the value to insert
|
14
|
+
def initialize(list, value)
|
15
|
+
@list = list
|
16
|
+
@values = (Array === value ? value : [value])
|
17
|
+
end
|
18
|
+
|
19
|
+
# Inserts the value before +val+
|
20
|
+
# @param [Object] val the object the value will be inserted before
|
21
|
+
# @param [Boolean] recursive look inside sublists
|
22
|
+
def before(val, recursive = false) insertion(val, 0, recursive) end
|
23
|
+
|
24
|
+
# Inserts the value after +val+.
|
25
|
+
#
|
26
|
+
# @example If subsections are ignored
|
27
|
+
# Insertion.new([1, [2], 3], :X).after(1) # => [1, [2], :X, 3]
|
28
|
+
# @param [Object] val the object the value will be inserted after
|
29
|
+
# @param [Boolean] recursive look inside sublists
|
30
|
+
def after(val, recursive = false) insertion(val, 1, recursive) end
|
31
|
+
|
32
|
+
# Alias for {#before} with +recursive+ set to true
|
33
|
+
# @since 0.6.0
|
34
|
+
def before_any(val) insertion(val, 0, true) end
|
35
|
+
|
36
|
+
# Alias for {#after} with +recursive+ set to true
|
37
|
+
# @since 0.6.0
|
38
|
+
def after_any(val) insertion(val, 1, true) end
|
39
|
+
|
40
|
+
private
|
41
|
+
|
42
|
+
# This method performs the actual insertion
|
43
|
+
#
|
44
|
+
# @param [Object] val the value to insert
|
45
|
+
# @param [Fixnum] rel the relative index (0 or 1) of where the object
|
46
|
+
# should be placed
|
47
|
+
# @param [Boolean] recursive look inside sublists
|
48
|
+
# @param [Array] list the list to place objects into
|
49
|
+
def insertion(val, rel, recursive = false, list = @list)
|
50
|
+
if recursive
|
51
|
+
list.each do |item|
|
52
|
+
next unless item.is_a?(Array)
|
53
|
+
tmp = item.dup
|
54
|
+
insertion(val, rel, recursive, item)
|
55
|
+
return(list) unless item == tmp
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
index = list.index(val)
|
60
|
+
list[index + rel, 0] = @values if index
|
61
|
+
list
|
62
|
+
end
|
63
|
+
end
|
data/lib/yard/core_ext/module.rb
CHANGED
@@ -1,20 +1,20 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
class Module
|
3
|
-
# Returns the class name of a full module namespace path
|
4
|
-
#
|
5
|
-
# @example
|
6
|
-
# module A::B::C; class_name end # => "C"
|
7
|
-
# @return [String] the last part of a module path
|
8
|
-
def class_name
|
9
|
-
name.split("::").last
|
10
|
-
end
|
11
|
-
|
12
|
-
# Returns the module namespace path minus the class/module name
|
13
|
-
#
|
14
|
-
# @example
|
15
|
-
# module A::B::C; namespace_name end # => "A::B"
|
16
|
-
# @return [String] the namespace minus the class/module name
|
17
|
-
def namespace_name
|
18
|
-
name.split("::")[0..-2].join("::")
|
19
|
-
end
|
20
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
class Module
|
3
|
+
# Returns the class name of a full module namespace path
|
4
|
+
#
|
5
|
+
# @example
|
6
|
+
# module A::B::C; class_name end # => "C"
|
7
|
+
# @return [String] the last part of a module path
|
8
|
+
def class_name
|
9
|
+
name.split("::").last
|
10
|
+
end
|
11
|
+
|
12
|
+
# Returns the module namespace path minus the class/module name
|
13
|
+
#
|
14
|
+
# @example
|
15
|
+
# module A::B::C; namespace_name end # => "A::B"
|
16
|
+
# @return [String] the namespace minus the class/module name
|
17
|
+
def namespace_name
|
18
|
+
name.split("::")[0..-2].join("::")
|
19
|
+
end
|
20
|
+
end
|
data/lib/yard/core_ext/string.rb
CHANGED
@@ -1,68 +1,68 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
class String
|
3
|
-
# Splits text into tokens the way a shell would, handling quoted
|
4
|
-
# text as a single token. Use '\"' and "\'" to escape quotes and
|
5
|
-
# '\\' to escape a backslash.
|
6
|
-
#
|
7
|
-
# @return [Array] an array representing the tokens
|
8
|
-
def shell_split
|
9
|
-
out = [String.new("")]
|
10
|
-
state = :none
|
11
|
-
escape_next = false
|
12
|
-
quote = String.new("")
|
13
|
-
strip.split(//).each do |char|
|
14
|
-
case state
|
15
|
-
when :none, :space
|
16
|
-
case char
|
17
|
-
when /\s/
|
18
|
-
out << String.new("") unless state == :space
|
19
|
-
state = :space
|
20
|
-
escape_next = false
|
21
|
-
when "\\"
|
22
|
-
if escape_next
|
23
|
-
out.last << char
|
24
|
-
escape_next = false
|
25
|
-
else
|
26
|
-
escape_next = true
|
27
|
-
end
|
28
|
-
when '"', "'"
|
29
|
-
if escape_next
|
30
|
-
out.last << char
|
31
|
-
escape_next = false
|
32
|
-
else
|
33
|
-
state = char
|
34
|
-
quote = String.new("")
|
35
|
-
end
|
36
|
-
else
|
37
|
-
state = :none
|
38
|
-
out.last << char
|
39
|
-
escape_next = false
|
40
|
-
end
|
41
|
-
when '"', "'"
|
42
|
-
case char
|
43
|
-
when '"', "'"
|
44
|
-
if escape_next
|
45
|
-
quote << char
|
46
|
-
escape_next = false
|
47
|
-
elsif char == state
|
48
|
-
out.last << quote
|
49
|
-
state = :none
|
50
|
-
else
|
51
|
-
quote << char
|
52
|
-
end
|
53
|
-
when '\\'
|
54
|
-
if escape_next
|
55
|
-
quote << char
|
56
|
-
escape_next = false
|
57
|
-
else
|
58
|
-
escape_next = true
|
59
|
-
end
|
60
|
-
else
|
61
|
-
quote << char
|
62
|
-
escape_next = false
|
63
|
-
end
|
64
|
-
end
|
65
|
-
end
|
66
|
-
out
|
67
|
-
end
|
68
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
class String
|
3
|
+
# Splits text into tokens the way a shell would, handling quoted
|
4
|
+
# text as a single token. Use '\"' and "\'" to escape quotes and
|
5
|
+
# '\\' to escape a backslash.
|
6
|
+
#
|
7
|
+
# @return [Array] an array representing the tokens
|
8
|
+
def shell_split
|
9
|
+
out = [String.new("")]
|
10
|
+
state = :none
|
11
|
+
escape_next = false
|
12
|
+
quote = String.new("")
|
13
|
+
strip.split(//).each do |char|
|
14
|
+
case state
|
15
|
+
when :none, :space
|
16
|
+
case char
|
17
|
+
when /\s/
|
18
|
+
out << String.new("") unless state == :space
|
19
|
+
state = :space
|
20
|
+
escape_next = false
|
21
|
+
when "\\"
|
22
|
+
if escape_next
|
23
|
+
out.last << char
|
24
|
+
escape_next = false
|
25
|
+
else
|
26
|
+
escape_next = true
|
27
|
+
end
|
28
|
+
when '"', "'"
|
29
|
+
if escape_next
|
30
|
+
out.last << char
|
31
|
+
escape_next = false
|
32
|
+
else
|
33
|
+
state = char
|
34
|
+
quote = String.new("")
|
35
|
+
end
|
36
|
+
else
|
37
|
+
state = :none
|
38
|
+
out.last << char
|
39
|
+
escape_next = false
|
40
|
+
end
|
41
|
+
when '"', "'"
|
42
|
+
case char
|
43
|
+
when '"', "'"
|
44
|
+
if escape_next
|
45
|
+
quote << char
|
46
|
+
escape_next = false
|
47
|
+
elsif char == state
|
48
|
+
out.last << quote
|
49
|
+
state = :none
|
50
|
+
else
|
51
|
+
quote << char
|
52
|
+
end
|
53
|
+
when '\\'
|
54
|
+
if escape_next
|
55
|
+
quote << char
|
56
|
+
escape_next = false
|
57
|
+
else
|
58
|
+
escape_next = true
|
59
|
+
end
|
60
|
+
else
|
61
|
+
quote << char
|
62
|
+
escape_next = false
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
out
|
67
|
+
end
|
68
|
+
end
|