yard 0.7.5 → 0.8.0
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.
- data/.yardopts +10 -2
- data/ChangeLog +1263 -38
- data/LEGAL +5 -5
- data/LICENSE +1 -1
- data/README.md +91 -82
- data/Rakefile +6 -6
- data/benchmarks/builtins_vs_eval.rb +1 -1
- data/benchmarks/erb_vs_erubis.rb +4 -4
- data/benchmarks/generation.rb +5 -5
- data/benchmarks/parsing.rb +2 -2
- data/benchmarks/registry_store_types.rb +48 -0
- data/bin/yard +9 -1
- data/bin/yardoc +9 -1
- data/bin/yri +10 -2
- data/docs/CodeObjects.md +10 -10
- data/docs/GettingStarted.md +85 -83
- data/docs/Handlers.md +21 -21
- data/docs/Overview.md +7 -7
- data/docs/Parser.md +30 -30
- data/docs/Tags.md +250 -554
- data/docs/TagsArch.md +123 -0
- data/docs/Templates.md +58 -80
- data/docs/WhatsNew.md +378 -133
- data/docs/templates/default/fulldoc/html/full_list_tag.erb +7 -0
- data/docs/templates/default/fulldoc/html/setup.rb +6 -0
- data/docs/templates/default/layout/html/setup.rb +8 -0
- data/docs/templates/default/layout/html/tag_list.erb +11 -0
- data/docs/templates/default/yard_tags/html/list.erb +18 -0
- data/docs/templates/default/yard_tags/html/setup.rb +27 -0
- data/docs/templates/plugin.rb +65 -0
- data/lib/yard.rb +1 -10
- data/lib/yard/autoload.rb +75 -27
- data/lib/yard/cli/command.rb +5 -2
- data/lib/yard/cli/command_parser.rb +3 -2
- data/lib/yard/cli/diff.rb +1 -1
- data/lib/yard/cli/i18n.rb +69 -0
- data/lib/yard/cli/list.rb +1 -1
- data/lib/yard/cli/server.rb +30 -7
- data/lib/yard/cli/stats.rb +5 -6
- data/lib/yard/cli/yardoc.rb +95 -45
- data/lib/yard/cli/yri.rb +24 -3
- data/lib/yard/code_objects/base.rb +35 -4
- data/lib/yard/code_objects/extra_file_object.rb +1 -1
- data/lib/yard/code_objects/macro_object.rb +56 -99
- data/lib/yard/code_objects/method_object.rb +44 -6
- data/lib/yard/config.rb +18 -8
- data/lib/yard/core_ext/symbol_hash.rb +1 -1
- data/lib/yard/docstring.rb +45 -85
- data/lib/yard/docstring_parser.rb +269 -0
- data/lib/yard/handlers/base.rb +129 -118
- data/lib/yard/handlers/c/alias_handler.rb +15 -0
- data/lib/yard/handlers/c/attribute_handler.rb +13 -0
- data/lib/yard/handlers/c/base.rb +110 -0
- data/lib/yard/handlers/c/class_handler.rb +26 -0
- data/lib/yard/handlers/c/constant_handler.rb +12 -0
- data/lib/yard/handlers/c/handler_methods.rb +165 -0
- data/lib/yard/handlers/c/init_handler.rb +16 -0
- data/lib/yard/handlers/c/method_handler.rb +35 -0
- data/lib/yard/handlers/c/mixin_handler.rb +13 -0
- data/lib/yard/handlers/c/module_handler.rb +16 -0
- data/lib/yard/handlers/c/override_comment_handler.rb +22 -0
- data/lib/yard/handlers/c/path_handler.rb +10 -0
- data/lib/yard/handlers/c/struct_handler.rb +12 -0
- data/lib/yard/handlers/c/symbol_handler.rb +7 -0
- data/lib/yard/handlers/processor.rb +41 -30
- data/lib/yard/handlers/ruby/alias_handler.rb +0 -2
- data/lib/yard/handlers/ruby/attribute_handler.rb +16 -17
- data/lib/yard/handlers/ruby/base.rb +10 -6
- data/lib/yard/handlers/ruby/comment_handler.rb +9 -0
- data/lib/yard/handlers/ruby/dsl_handler.rb +14 -0
- data/lib/yard/handlers/ruby/dsl_handler_methods.rb +71 -0
- data/lib/yard/handlers/ruby/legacy/alias_handler.rb +0 -3
- data/lib/yard/handlers/ruby/legacy/attribute_handler.rb +16 -17
- data/lib/yard/handlers/ruby/legacy/base.rb +28 -6
- data/lib/yard/handlers/ruby/legacy/comment_handler.rb +9 -0
- data/lib/yard/handlers/ruby/legacy/dsl_handler.rb +16 -0
- data/lib/yard/handlers/ruby/legacy/method_handler.rb +0 -2
- data/lib/yard/handlers/ruby/legacy/mixin_handler.rb +1 -1
- data/lib/yard/handlers/ruby/legacy/module_function_handler.rb +18 -0
- data/lib/yard/handlers/ruby/method_handler.rb +10 -15
- data/lib/yard/handlers/ruby/mixin_handler.rb +1 -1
- data/lib/yard/handlers/ruby/module_function_handler.rb +26 -0
- data/lib/yard/handlers/ruby/struct_handler_methods.rb +3 -2
- data/lib/yard/i18n/pot_generator.rb +281 -0
- data/lib/yard/i18n/text.rb +72 -0
- data/lib/yard/logging.rb +3 -7
- data/lib/yard/options.rb +216 -0
- data/lib/yard/parser/c/c_parser.rb +225 -0
- data/lib/yard/parser/c/comment_parser.rb +131 -0
- data/lib/yard/parser/c/statement.rb +63 -0
- data/lib/yard/parser/ruby/ast_node.rb +91 -1
- data/lib/yard/parser/ruby/legacy/ruby_parser.rb +1 -0
- data/lib/yard/parser/ruby/legacy/statement.rb +7 -2
- data/lib/yard/parser/ruby/legacy/statement_list.rb +13 -22
- data/lib/yard/parser/ruby/ruby_parser.rb +87 -26
- data/lib/yard/parser/source_parser.rb +89 -88
- data/lib/yard/rake/yardoc_task.rb +1 -1
- data/lib/yard/registry.rb +21 -10
- data/lib/yard/registry_store.rb +48 -0
- data/lib/yard/serializers/file_system_serializer.rb +18 -20
- data/lib/yard/serializers/yardoc_serializer.rb +1 -0
- data/lib/yard/server/adapter.rb +2 -2
- data/lib/yard/server/commands/base.rb +1 -1
- data/lib/yard/server/commands/display_object_command.rb +13 -6
- data/lib/yard/server/commands/frames_command.rb +4 -21
- data/lib/yard/server/commands/library_command.rb +57 -11
- data/lib/yard/server/commands/list_command.rb +10 -34
- data/lib/yard/server/commands/search_command.rb +8 -2
- data/lib/yard/server/doc_server_helper.rb +34 -0
- data/lib/yard/server/rack_adapter.rb +5 -1
- data/lib/yard/server/router.rb +4 -10
- data/lib/yard/server/static_caching.rb +2 -2
- data/lib/yard/server/templates/default/fulldoc/html/css/custom.css +2 -2
- data/lib/yard/server/templates/default/fulldoc/html/js/live.js +0 -15
- data/lib/yard/server/templates/default/layout/html/breadcrumb.erb +3 -3
- data/lib/yard/server/templates/default/layout/html/script_setup.erb +8 -0
- data/lib/yard/server/templates/doc_server/processing/html/processing.erb +1 -1
- data/lib/yard/server/templates/doc_server/search/html/setup.rb +1 -1
- data/lib/yard/tags/default_factory.rb +31 -4
- data/lib/yard/tags/directives.rb +593 -0
- data/lib/yard/tags/library.rb +437 -35
- data/lib/yard/templates/engine.rb +17 -12
- data/lib/yard/templates/helpers/base_helper.rb +8 -2
- data/lib/yard/templates/helpers/html_helper.rb +57 -14
- data/lib/yard/templates/helpers/markup/rdoc_markup.rb +1 -1
- data/lib/yard/templates/helpers/markup_helper.rb +9 -9
- data/lib/yard/templates/helpers/text_helper.rb +2 -2
- data/lib/yard/templates/template.rb +42 -13
- data/lib/yard/templates/template_options.rb +81 -0
- data/spec/cli/command_parser_spec.rb +4 -4
- data/spec/cli/command_spec.rb +3 -3
- data/spec/cli/config_spec.rb +13 -13
- data/spec/cli/diff_spec.rb +13 -10
- data/spec/cli/gems_spec.rb +12 -12
- data/spec/cli/help_spec.rb +2 -2
- data/spec/cli/i18n_spec.rb +111 -0
- data/spec/cli/server_spec.rb +66 -18
- data/spec/cli/stats_spec.rb +15 -15
- data/spec/cli/yardoc_spec.rb +124 -97
- data/spec/cli/yri_spec.rb +14 -12
- data/spec/code_objects/base_spec.rb +104 -46
- data/spec/code_objects/class_object_spec.rb +33 -33
- data/spec/code_objects/code_object_list_spec.rb +5 -5
- data/spec/code_objects/constants_spec.rb +4 -3
- data/spec/code_objects/extra_file_object_spec.rb +19 -19
- data/spec/code_objects/macro_object_spec.rb +31 -37
- data/spec/code_objects/method_object_spec.rb +46 -23
- data/spec/code_objects/module_object_spec.rb +16 -16
- data/spec/code_objects/namespace_object_spec.rb +6 -6
- data/spec/code_objects/proxy_spec.rb +19 -19
- data/spec/config_spec.rb +33 -24
- data/spec/core_ext/array_spec.rb +1 -1
- data/spec/core_ext/file_spec.rb +8 -8
- data/spec/core_ext/hash_spec.rb +1 -1
- data/spec/core_ext/insertion_spec.rb +3 -3
- data/spec/core_ext/module_spec.rb +1 -1
- data/spec/core_ext/string_spec.rb +6 -6
- data/spec/core_ext/symbol_hash_spec.rb +11 -11
- data/spec/docstring_parser_spec.rb +207 -0
- data/spec/docstring_spec.rb +33 -146
- data/spec/handlers/alias_handler_spec.rb +14 -14
- data/spec/handlers/attribute_handler_spec.rb +20 -20
- data/spec/handlers/base_spec.rb +16 -16
- data/spec/handlers/c/alias_handler_spec.rb +33 -0
- data/spec/handlers/c/attribute_handler_spec.rb +40 -0
- data/spec/handlers/c/class_handler_spec.rb +64 -0
- data/spec/handlers/c/constant_handler_spec.rb +68 -0
- data/spec/handlers/c/init_handler_spec.rb +36 -0
- data/spec/handlers/c/method_handler_spec.rb +228 -0
- data/spec/handlers/c/mixin_handler_spec.rb +27 -0
- data/spec/handlers/c/module_handler_spec.rb +38 -0
- data/spec/handlers/c/override_comment_handler_spec.rb +43 -0
- data/spec/handlers/c/path_handler_spec.rb +35 -0
- data/spec/handlers/c/spec_helper.rb +11 -0
- data/spec/handlers/c/struct_handler_spec.rb +15 -0
- data/spec/handlers/class_condition_handler_spec.rb +10 -10
- data/spec/handlers/class_handler_spec.rb +38 -38
- data/spec/handlers/class_variable_handler_spec.rb +1 -1
- data/spec/handlers/constant_handler_spec.rb +7 -7
- data/spec/handlers/{macro_handler_spec.rb → dsl_handler_spec.rb} +72 -53
- data/spec/handlers/examples/alias_handler_001.rb.txt +5 -5
- data/spec/handlers/examples/class_condition_handler_001.rb.txt +9 -9
- data/spec/handlers/examples/class_handler_001.rb.txt +1 -1
- data/spec/handlers/examples/dsl_handler_001.rb.txt +110 -0
- data/spec/handlers/examples/exception_handler_001.rb.txt +14 -14
- data/spec/handlers/examples/method_condition_handler_001.rb.txt +2 -2
- data/spec/handlers/examples/method_handler_001.rb.txt +16 -16
- data/spec/handlers/examples/mixin_handler_001.rb.txt +8 -4
- data/spec/handlers/examples/private_constant_handler_001.rb.txt +1 -1
- data/spec/handlers/examples/visibility_handler_001.rb.txt +3 -3
- data/spec/handlers/examples/yield_handler_001.rb.txt +13 -14
- data/spec/handlers/exception_handler_spec.rb +9 -9
- data/spec/handlers/extend_handler_spec.rb +2 -2
- data/spec/handlers/legacy_base_spec.rb +34 -34
- data/spec/handlers/method_condition_handler_spec.rb +2 -2
- data/spec/handlers/method_handler_spec.rb +33 -33
- data/spec/handlers/mixin_handler_spec.rb +13 -9
- data/spec/handlers/module_function_handler_spec.rb +82 -0
- data/spec/handlers/module_handler_spec.rb +6 -6
- data/spec/handlers/private_constant_handler_spec.rb +3 -3
- data/spec/handlers/processor_spec.rb +5 -5
- data/spec/handlers/ruby/base_spec.rb +10 -6
- data/spec/handlers/ruby/legacy/base_spec.rb +11 -7
- data/spec/handlers/spec_helper.rb +2 -3
- data/spec/handlers/visibility_handler_spec.rb +6 -6
- data/spec/handlers/yield_handler_spec.rb +8 -8
- data/spec/i18n/pot_generator_spec.rb +244 -0
- data/spec/i18n/text_spec.rb +69 -0
- data/spec/options_spec.rb +160 -0
- data/spec/parser/base_spec.rb +3 -3
- data/spec/parser/c_parser_spec.rb +31 -257
- data/spec/parser/examples/array.c.txt +187 -187
- data/spec/parser/examples/extrafile.c.txt +1 -1
- data/spec/parser/examples/override.c.txt +1 -1
- data/spec/parser/ruby/ast_node_spec.rb +1 -1
- data/spec/parser/ruby/legacy/statement_list_spec.rb +24 -24
- data/spec/parser/ruby/legacy/token_list_spec.rb +7 -7
- data/spec/parser/ruby/ruby_parser_spec.rb +56 -34
- data/spec/parser/source_parser_spec.rb +125 -65
- data/spec/parser/tag_parsing_spec.rb +4 -4
- data/spec/rake/yardoc_task_spec.rb +10 -8
- data/spec/registry_spec.rb +65 -36
- data/spec/registry_store_spec.rb +90 -40
- data/spec/serializers/file_system_serializer_spec.rb +12 -12
- data/spec/serializers/yardoc_serializer_spec.rb +2 -2
- data/spec/server/adapter_spec.rb +3 -3
- data/spec/server/commands/base_spec.rb +8 -8
- data/spec/server/commands/library_command_spec.rb +3 -3
- data/spec/server/commands/static_file_command_spec.rb +7 -7
- data/spec/server/doc_server_helper_spec.rb +1 -1
- data/spec/server/doc_server_serializer_spec.rb +6 -6
- data/spec/server/rack_adapter_spec.rb +3 -3
- data/spec/server/router_spec.rb +19 -19
- data/spec/server/static_caching_spec.rb +4 -4
- data/spec/spec_helper.rb +7 -7
- data/spec/tags/default_factory_spec.rb +24 -16
- data/spec/tags/directives_spec.rb +422 -0
- data/spec/tags/library_spec.rb +15 -4
- data/spec/tags/overload_tag_spec.rb +6 -6
- data/spec/tags/ref_tag_list_spec.rb +8 -8
- data/spec/templates/class_spec.rb +7 -7
- data/spec/templates/constant_spec.rb +7 -7
- data/spec/templates/engine_spec.rb +28 -36
- data/spec/templates/examples/class001.html +108 -108
- data/spec/templates/examples/class002.html +17 -17
- data/spec/templates/examples/constant001.txt +1 -1
- data/spec/templates/examples/method001.html +45 -45
- data/spec/templates/examples/method002.html +25 -25
- data/spec/templates/examples/method003.html +60 -60
- data/spec/templates/examples/method004.html +7 -7
- data/spec/templates/examples/method005.html +28 -28
- data/spec/templates/examples/module001.html +321 -321
- data/spec/templates/examples/module001.txt +1 -1
- data/spec/templates/examples/module002.html +130 -130
- data/spec/templates/examples/module003.html +74 -74
- data/spec/templates/examples/module004.html +388 -0
- data/spec/templates/helpers/base_helper_spec.rb +32 -32
- data/spec/templates/helpers/html_helper_spec.rb +87 -68
- data/spec/templates/helpers/html_syntax_highlight_helper_spec.rb +9 -9
- data/spec/templates/helpers/markup/rdoc_markup_spec.rb +16 -16
- data/spec/templates/helpers/markup_helper_spec.rb +31 -28
- data/spec/templates/helpers/method_helper_spec.rb +7 -7
- data/spec/templates/helpers/shared_signature_examples.rb +9 -7
- data/spec/templates/helpers/text_helper_spec.rb +3 -3
- data/spec/templates/method_spec.rb +13 -13
- data/spec/templates/module_spec.rb +70 -24
- data/spec/templates/onefile_spec.rb +32 -15
- data/spec/templates/section_spec.rb +23 -23
- data/spec/templates/spec_helper.rb +31 -1
- data/spec/templates/tag_spec.rb +5 -5
- data/spec/templates/template_spec.rb +54 -46
- data/spec/verifier_spec.rb +5 -5
- data/templates/default/class/setup.rb +2 -2
- data/templates/default/docstring/html/abstract.erb +1 -1
- data/templates/default/docstring/html/note.erb +1 -1
- data/templates/default/docstring/html/private.erb +1 -1
- data/templates/default/docstring/html/todo.erb +1 -1
- data/templates/default/docstring/setup.rb +2 -2
- data/templates/default/fulldoc/html/css/full_list.css +4 -2
- data/templates/default/fulldoc/html/css/style.css +50 -44
- data/templates/default/fulldoc/html/frames.erb +21 -6
- data/templates/default/fulldoc/html/full_list.erb +5 -3
- data/templates/default/fulldoc/html/{full_list_files.erb → full_list_file.erb} +0 -0
- data/templates/default/fulldoc/html/js/app.js +29 -26
- data/templates/default/fulldoc/html/js/full_list.js +9 -9
- data/templates/default/fulldoc/html/js/jquery.js +4 -16
- data/templates/default/fulldoc/html/setup.rb +42 -38
- data/templates/default/layout/dot/header.erb +1 -1
- data/templates/default/layout/html/breadcrumb.erb +6 -6
- data/templates/default/layout/html/files.erb +1 -1
- data/templates/default/layout/html/footer.erb +1 -1
- data/templates/default/layout/html/headers.erb +3 -6
- data/templates/default/layout/html/index.erb +1 -1
- data/templates/default/layout/html/layout.erb +3 -7
- data/templates/default/layout/html/objects.erb +1 -1
- data/templates/default/layout/html/script_setup.erb +5 -0
- data/templates/default/layout/html/search.erb +4 -1
- data/templates/default/layout/html/setup.rb +8 -8
- data/templates/default/method_details/html/method_signature.erb +10 -3
- data/templates/default/method_details/setup.rb +1 -0
- data/templates/default/module/dot/info.erb +1 -1
- data/templates/default/module/dot/setup.rb +2 -2
- data/templates/default/module/html/attribute_details.erb +1 -1
- data/templates/default/module/html/children.erb +1 -1
- data/templates/default/module/html/defines.erb +1 -1
- data/templates/default/module/html/inherited_methods.erb +5 -4
- data/templates/default/module/html/item_summary.erb +15 -5
- data/templates/default/module/html/method_details_list.erb +2 -2
- data/templates/default/module/setup.rb +25 -12
- data/templates/default/module/text/setup.rb +1 -1
- data/templates/default/onefile/html/layout.erb +1 -1
- data/templates/default/onefile/html/setup.rb +2 -2
- data/templates/default/tags/html/example.erb +4 -2
- data/templates/default/tags/html/option.erb +1 -1
- data/templates/default/tags/html/overload.erb +1 -1
- data/templates/default/tags/html/see.erb +1 -1
- data/templates/default/tags/html/tag.erb +1 -1
- data/templates/default/tags/setup.rb +4 -3
- data/templates/guide/fulldoc/html/css/style.css +8 -8
- data/templates/guide/fulldoc/html/js/app.js +6 -6
- data/templates/guide/fulldoc/html/setup.rb +12 -12
- data/templates/guide/layout/html/layout.erb +11 -11
- data/templates/guide/layout/html/setup.rb +9 -9
- data/templates/guide/method/html/header.erb +2 -2
- data/templates/guide/method/html/setup.rb +1 -1
- metadata +68 -18
- data/bin/yard-graph +0 -4
- data/bin/yard-server +0 -4
- data/docs/Glossary.md +0 -12
- data/lib/yard/handlers/ruby/legacy/macro_handler.rb +0 -39
- data/lib/yard/handlers/ruby/macro_handler.rb +0 -40
- data/lib/yard/handlers/ruby/macro_handler_methods.rb +0 -131
- data/lib/yard/parser/c_parser.rb +0 -497
- data/lib/yard/server/templates/default/layout/html/headers.erb +0 -16
- data/lib/yard/server/templates/doc_server/frames/html/frames.erb +0 -13
- data/lib/yard/server/templates/doc_server/frames/html/setup.rb +0 -3
- data/lib/yard/server/templates/doc_server/full_list/html/full_list.erb +0 -34
- data/lib/yard/server/templates/doc_server/full_list/html/setup.rb +0 -20
- data/spec/handlers/examples/macro_handler_001.rb.txt +0 -83
@@ -406,7 +406,7 @@ void init_gmpz()
|
|
406
406
|
// Integer Arithmetic
|
407
407
|
rb_define_method(cGMP_Z, "+", r_gmpz_add, 1);
|
408
408
|
rb_define_method(cGMP_Z, "add!", r_gmpz_add_self, 1);
|
409
|
-
rb_define_method(cGMP_Z, "-", r_gmpz_sub, 1);
|
409
|
+
rb_define_method(cGMP_Z, "-", r_gmpz_sub, 1);
|
410
410
|
rb_define_method(cGMP_Z, "sub!", r_gmpz_sub_self, 1);
|
411
411
|
rb_define_method(cGMP_Z, "*", r_gmpz_mul, 1);
|
412
412
|
rb_define_method(cGMP_Z, "addmul!", r_gmpz_addmul_self, 2);
|
@@ -34,7 +34,7 @@ eof
|
|
34
34
|
s.tokens.to_s(true).should == "(foo; bar)"
|
35
35
|
s.block.should be_nil
|
36
36
|
end
|
37
|
-
|
37
|
+
|
38
38
|
it "should allow for non-block statements" do
|
39
39
|
s = stmt "hello_world(1, 2, 3)"
|
40
40
|
s.tokens.to_s.should == "hello_world(1, 2, 3)"
|
@@ -101,7 +101,7 @@ eof
|
|
101
101
|
s.tokens.to_s(true).should == "foo do\n ...\n end"
|
102
102
|
s.block.to_s.should == "puts 'hi'"
|
103
103
|
end
|
104
|
-
|
104
|
+
|
105
105
|
it "should parse blocks with {}" do
|
106
106
|
s = stmt "x { y }"
|
107
107
|
s.tokens.to_s(true).should == "x { ... }"
|
@@ -111,16 +111,16 @@ eof
|
|
111
111
|
s.tokens.to_s(true).should == "x() { ... }"
|
112
112
|
s.block.to_s.should == "y"
|
113
113
|
end
|
114
|
-
|
114
|
+
|
115
115
|
it "should parse blocks with begin/end" do
|
116
116
|
s = stmt "begin xyz end"
|
117
117
|
s.tokens.to_s(true).should == "begin ... end"
|
118
118
|
s.block.to_s.should == "xyz"
|
119
119
|
end
|
120
|
-
|
120
|
+
|
121
121
|
it "should parse nested blocks" do
|
122
122
|
s = stmt "foo(:x) { baz(:y) { skippy } }"
|
123
|
-
|
123
|
+
|
124
124
|
s.tokens.to_s(true).should == "foo(:x) { ... }"
|
125
125
|
s.block.to_s.should == "baz(:y) { skippy }"
|
126
126
|
end
|
@@ -152,7 +152,7 @@ eof
|
|
152
152
|
s.tokens.to_s(true).should == "[:foo, x {}]"
|
153
153
|
s.block.to_s.should == ""
|
154
154
|
end
|
155
|
-
|
155
|
+
|
156
156
|
it "should handle multiple methods" do
|
157
157
|
s = stmt <<-eof
|
158
158
|
def %; end
|
@@ -160,7 +160,7 @@ eof
|
|
160
160
|
eof
|
161
161
|
s.to_s.should == "def %; end"
|
162
162
|
end
|
163
|
-
|
163
|
+
|
164
164
|
it "should handle nested methods" do
|
165
165
|
s = stmt <<-eof
|
166
166
|
def *(o) def +@; end
|
@@ -178,7 +178,7 @@ eof
|
|
178
178
|
eof
|
179
179
|
s[1].to_s.should == "def method1\n def dynamic; end\n end"
|
180
180
|
end
|
181
|
-
|
181
|
+
|
182
182
|
it "should get comment line numbers" do
|
183
183
|
s = stmt <<-eof
|
184
184
|
# comment
|
@@ -220,68 +220,68 @@ eof
|
|
220
220
|
s.comments.should == ["comment"]
|
221
221
|
s.comments_range.should == (1..1)
|
222
222
|
end
|
223
|
-
|
223
|
+
|
224
224
|
it "should only look up to two lines back for comments" do
|
225
225
|
s = stmt <<-eof
|
226
226
|
# comments
|
227
|
-
|
227
|
+
|
228
228
|
# comments
|
229
|
-
|
229
|
+
|
230
230
|
def method; end
|
231
231
|
eof
|
232
232
|
s.comments.should == ["comments"]
|
233
|
-
|
233
|
+
|
234
234
|
s = stmt <<-eof
|
235
235
|
# comments
|
236
|
-
|
237
|
-
|
236
|
+
|
237
|
+
|
238
238
|
def method; end
|
239
239
|
eof
|
240
240
|
s.comments.should == nil
|
241
241
|
|
242
242
|
ss = stmts <<-eof
|
243
243
|
# comments
|
244
|
-
|
245
|
-
|
244
|
+
|
245
|
+
|
246
246
|
def method; end
|
247
|
-
|
247
|
+
|
248
248
|
# hello
|
249
249
|
def method2; end
|
250
250
|
eof
|
251
251
|
ss[0].comments.should == nil
|
252
252
|
ss[1].comments.should == ['hello']
|
253
253
|
end
|
254
|
-
|
254
|
+
|
255
255
|
it "should handle CRLF (Windows) newlines" do
|
256
256
|
s = stmts("require 'foo'\r\n\r\n# Test Test\r\n# \r\n# Example:\r\n# example code\r\ndef test\r\nend\r\n")
|
257
257
|
s[1].comments.should == ['Test Test', '', 'Example:', ' example code']
|
258
258
|
end
|
259
|
-
|
259
|
+
|
260
260
|
it "should handle elsif blocks" do
|
261
261
|
s = stmts(stmt("if 0\n foo\nelsif 2\n bar\nend\nbaz").block)
|
262
262
|
s.size.should == 2
|
263
263
|
s[1].tokens.to_s.should == "elsif 2"
|
264
264
|
s[1].block.to_s.should == "bar"
|
265
265
|
end
|
266
|
-
|
266
|
+
|
267
267
|
it "should handle else blocks" do
|
268
268
|
s = stmts(stmt("if 0\n foo\nelse\n bar\nend\nbaz").block)
|
269
269
|
s.size.should == 2
|
270
270
|
s[1].tokens.to_s.should == "else"
|
271
271
|
s[1].block.to_s.should == "bar"
|
272
272
|
end
|
273
|
-
|
273
|
+
|
274
274
|
it "should allow aliasing keywords" do
|
275
275
|
['do x', 'x do', 'end begin', 'begin end'].each do |a|
|
276
276
|
s = stmt("alias #{a}\ndef foo; end")
|
277
277
|
s.tokens.to_s.should == "alias #{a}"
|
278
278
|
s.block.should be_nil
|
279
279
|
end
|
280
|
-
|
280
|
+
|
281
281
|
s = stmt("alias do x if 2 ==\n 2")
|
282
282
|
s.tokens.to_s.should == "alias do x if 2 ==\n 2"
|
283
283
|
end
|
284
|
-
|
284
|
+
|
285
285
|
it "should not open a block on an aliased keyword block opener" do
|
286
286
|
s = stmts(<<-eof)
|
287
287
|
class A; alias x do end
|
@@ -290,7 +290,7 @@ eof
|
|
290
290
|
s[0].block.to_s.should == 'alias x do'
|
291
291
|
s.size.should > 1
|
292
292
|
end
|
293
|
-
|
293
|
+
|
294
294
|
it "should convert heredoc to string" do
|
295
295
|
src = "<<-XML\n foo\n\nXML"
|
296
296
|
s = stmt(src)
|
@@ -9,12 +9,12 @@ describe YARD::Parser::Ruby::Legacy::TokenList do
|
|
9
9
|
lambda { TokenList.new(TokenList.new) }.should_not raise_error(ArgumentError)
|
10
10
|
TokenList.new.push(TokenList.new("x = 2")).size.should == 6
|
11
11
|
end
|
12
|
-
|
12
|
+
|
13
13
|
it "accept a token (via constructor or push)" do
|
14
14
|
lambda { TokenList.new(Token.new(0, 0)) }.should_not raise_error(ArgumentError)
|
15
15
|
TokenList.new.push(Token.new(0, 0), Token.new(1, 1)).size.should == 2
|
16
16
|
end
|
17
|
-
|
17
|
+
|
18
18
|
it "should accept a string and parse it as code (via constructor or push)" do
|
19
19
|
lambda { TokenList.new("x = 2") }.should_not raise_error(ArgumentError)
|
20
20
|
x = TokenList.new
|
@@ -22,11 +22,11 @@ describe YARD::Parser::Ruby::Legacy::TokenList do
|
|
22
22
|
x.size.should == 6
|
23
23
|
x.to_s.should == "x\n=\n2\n"
|
24
24
|
end
|
25
|
-
|
25
|
+
|
26
26
|
it "should not accept any other input" do
|
27
27
|
lambda { TokenList.new(:notcode) }.should raise_error(ArgumentError)
|
28
28
|
end
|
29
|
-
|
29
|
+
|
30
30
|
it "should not interpolate string data" do
|
31
31
|
x = TokenList.new('x = "hello #{world}"')
|
32
32
|
x.size.should == 6
|
@@ -34,7 +34,7 @@ describe YARD::Parser::Ruby::Legacy::TokenList do
|
|
34
34
|
x.to_s.should == 'x = "hello #{world}"' + "\n"
|
35
35
|
end
|
36
36
|
end
|
37
|
-
|
37
|
+
|
38
38
|
describe '#to_s' do
|
39
39
|
before do
|
40
40
|
@t = TokenList.new
|
@@ -53,7 +53,7 @@ describe YARD::Parser::Ruby::Legacy::TokenList do
|
|
53
53
|
@t[7].set_text " "
|
54
54
|
@t[8].set_text "end"
|
55
55
|
end
|
56
|
-
|
56
|
+
|
57
57
|
it "should only show the statement portion of the tokens by default" do
|
58
58
|
@t.to_s.should == "def x"
|
59
59
|
end
|
@@ -61,7 +61,7 @@ describe YARD::Parser::Ruby::Legacy::TokenList do
|
|
61
61
|
it "should show ... for the block token if all of the tokens are shown" do
|
62
62
|
@t.to_s(true).should == "def x; ... end"
|
63
63
|
end
|
64
|
-
|
64
|
+
|
65
65
|
it "should ignore ... if show_block = false" do
|
66
66
|
@t.to_s(true, false).should == "def x; end"
|
67
67
|
end
|
@@ -1,18 +1,18 @@
|
|
1
1
|
require File.join(File.dirname(__FILE__), '..', '..', 'spec_helper')
|
2
2
|
|
3
3
|
describe YARD::Parser::Ruby::RubyParser do
|
4
|
-
def stmt(stmt)
|
4
|
+
def stmt(stmt)
|
5
5
|
YARD::Parser::Ruby::RubyParser.new(stmt, nil).parse.root.first
|
6
6
|
end
|
7
|
-
|
7
|
+
|
8
8
|
def stmts(stmts)
|
9
9
|
YARD::Parser::Ruby::RubyParser.new(stmts, nil).parse.root
|
10
10
|
end
|
11
|
-
|
11
|
+
|
12
12
|
def tokenize(stmt)
|
13
13
|
YARD::Parser::Ruby::RubyParser.new(stmt, nil).parse.tokens
|
14
14
|
end
|
15
|
-
|
15
|
+
|
16
16
|
describe '#parse' do
|
17
17
|
it "should get comment line numbers" do
|
18
18
|
s = stmt <<-eof
|
@@ -55,24 +55,24 @@ describe YARD::Parser::Ruby::RubyParser do
|
|
55
55
|
s.comments.should == "comment"
|
56
56
|
s.comments_range.should == (1..1)
|
57
57
|
end
|
58
|
-
|
58
|
+
|
59
59
|
it "should only look up to two lines back for comments" do
|
60
|
-
s =
|
60
|
+
s = stmts <<-eof
|
61
61
|
# comments
|
62
62
|
|
63
63
|
# comments
|
64
64
|
|
65
65
|
def method; end
|
66
66
|
eof
|
67
|
-
s.comments.should == "comments"
|
67
|
+
s[1].comments.should == "comments"
|
68
68
|
|
69
|
-
s =
|
69
|
+
s = stmts <<-eof
|
70
70
|
# comments
|
71
71
|
|
72
72
|
|
73
73
|
def method; end
|
74
74
|
eof
|
75
|
-
s.comments.should == nil
|
75
|
+
s[1].comments.should == nil
|
76
76
|
|
77
77
|
ss = stmts <<-eof
|
78
78
|
# comments
|
@@ -83,52 +83,52 @@ describe YARD::Parser::Ruby::RubyParser do
|
|
83
83
|
# hello
|
84
84
|
def method2; end
|
85
85
|
eof
|
86
|
-
ss[
|
87
|
-
ss[
|
86
|
+
ss[1].comments.should == nil
|
87
|
+
ss[2].comments.should == 'hello'
|
88
88
|
end
|
89
|
-
|
89
|
+
|
90
90
|
it "should handle 1.9 lambda syntax with args" do
|
91
91
|
src = "->(a,b,c=1,*args,&block) { hello_world }"
|
92
92
|
stmt(src).source.should == src
|
93
93
|
end
|
94
|
-
|
94
|
+
|
95
95
|
it "should handle 1.9 lambda syntax" do
|
96
96
|
src = "-> { hello_world }"
|
97
97
|
stmt(src).source.should == src
|
98
98
|
end
|
99
|
-
|
99
|
+
|
100
100
|
it "should handle standard lambda syntax" do
|
101
101
|
src = "lambda { hello_world }"
|
102
102
|
stmt(src).source.should == src
|
103
103
|
end
|
104
|
-
|
104
|
+
|
105
105
|
it "should throw a ParserSyntaxError on invalid code" do
|
106
106
|
lambda { stmt("Foo, bar.") }.should raise_error(YARD::Parser::ParserSyntaxError)
|
107
107
|
end
|
108
|
-
|
108
|
+
|
109
109
|
it "should handle bare hashes as method parameters" do
|
110
110
|
src = "command :a => 1, :b => 2, :c => 3"
|
111
111
|
stmt(src).jump(:command)[1].source.should == ":a => 1, :b => 2, :c => 3"
|
112
|
-
|
112
|
+
|
113
113
|
src = "command a: 1, b: 2, c: 3"
|
114
114
|
stmt(src).jump(:command)[1].source.should == "a: 1, b: 2, c: 3"
|
115
115
|
end
|
116
|
-
|
116
|
+
|
117
117
|
it "should handle source for hash syntax" do
|
118
118
|
src = "{ :a => 1, :b => 2, :c => 3 }"
|
119
119
|
stmt(src).jump(:hash).source.should == "{ :a => 1, :b => 2, :c => 3 }"
|
120
120
|
end
|
121
|
-
|
121
|
+
|
122
122
|
it "should handle an empty hash" do
|
123
123
|
stmt("{}").jump(:hash).source.should == "{}"
|
124
124
|
end
|
125
|
-
|
125
|
+
|
126
126
|
it "new hash label syntax should show label without colon" do
|
127
127
|
ast = stmt("{ a: 1 }").jump(:label)
|
128
128
|
ast[0].should == "a"
|
129
129
|
ast.source.should == "a:"
|
130
130
|
end
|
131
|
-
|
131
|
+
|
132
132
|
it "should handle begin/rescue blocks" do
|
133
133
|
ast = stmt("begin; X; rescue => e; Y end").jump(:rescue)
|
134
134
|
ast.source.should == "rescue => e; Y end"
|
@@ -139,19 +139,19 @@ describe YARD::Parser::Ruby::RubyParser do
|
|
139
139
|
ast = stmt("begin; X; rescue A, B => e; Y end").jump(:rescue)
|
140
140
|
ast.source.should == "rescue A, B => e; Y end"
|
141
141
|
end
|
142
|
-
|
142
|
+
|
143
143
|
it "should handle method rescue blocks" do
|
144
144
|
ast = stmt("def x; A; rescue Y; B end")
|
145
145
|
ast.source.should == "def x; A; rescue Y; B end"
|
146
146
|
ast.jump(:rescue).source.should == "rescue Y; B end"
|
147
147
|
end
|
148
|
-
|
148
|
+
|
149
149
|
it "should handle defs with keywords as method name" do
|
150
150
|
ast = stmt("# docstring\nclass A;\ndef class; end\nend")
|
151
151
|
ast.jump(:class).docstring.should == "docstring"
|
152
152
|
ast.jump(:class).line_range.should == (2..4)
|
153
153
|
end
|
154
|
-
|
154
|
+
|
155
155
|
it "should end source properly on array reference" do
|
156
156
|
ast = stmt("AS[0, 1 ] ")
|
157
157
|
ast.source.should == 'AS[0, 1 ]'
|
@@ -159,17 +159,17 @@ describe YARD::Parser::Ruby::RubyParser do
|
|
159
159
|
ast = stmt("def x(a = S[1]) end").jump(:default_arg)
|
160
160
|
ast.source.should == 'a = S[1]'
|
161
161
|
end
|
162
|
-
|
162
|
+
|
163
163
|
it "should end source properly on if/unless mod" do
|
164
164
|
%w(if unless while).each do |mod|
|
165
165
|
stmt("A=1 #{mod} true").source.should == "A=1 #{mod} true"
|
166
166
|
end
|
167
167
|
end
|
168
|
-
|
168
|
+
|
169
169
|
it "should show proper source for assignment" do
|
170
170
|
stmt("A=1").jump(:assign).source.should == "A=1"
|
171
171
|
end
|
172
|
-
|
172
|
+
|
173
173
|
it "should show proper source for a top_const_ref" do
|
174
174
|
s = stmt("::\nFoo::Bar")
|
175
175
|
s.jump(:top_const_ref).source.should == "::\nFoo"
|
@@ -178,7 +178,7 @@ describe YARD::Parser::Ruby::RubyParser do
|
|
178
178
|
s.source.should == "::\nFoo::Bar"
|
179
179
|
s.line_range.to_a.should == [1, 2]
|
180
180
|
end
|
181
|
-
|
181
|
+
|
182
182
|
it "should show proper source for inline heredoc" do
|
183
183
|
src = "def foo\n foo(<<-XML, 1, 2)\n bar\n\n XML\nend"
|
184
184
|
s = stmt(src)
|
@@ -186,7 +186,7 @@ describe YARD::Parser::Ruby::RubyParser do
|
|
186
186
|
s.source.should == src
|
187
187
|
t.map {|x| x[1] }.join.should == src
|
188
188
|
end
|
189
|
-
|
189
|
+
|
190
190
|
it "should show proper source for regular heredoc" do
|
191
191
|
src = "def foo\n x = <<-XML\n Hello \#{name}!\n Bye!\n XML\nend"
|
192
192
|
s = stmt(src)
|
@@ -202,7 +202,7 @@ describe YARD::Parser::Ruby::RubyParser do
|
|
202
202
|
s.source.should == src
|
203
203
|
t.map {|x| x[1] }.join.should == src
|
204
204
|
end
|
205
|
-
|
205
|
+
|
206
206
|
it "should show proper source for string" do
|
207
207
|
["'", '"'].each do |q|
|
208
208
|
src = "#{q}hello\n\nworld#{q}"
|
@@ -210,16 +210,16 @@ describe YARD::Parser::Ruby::RubyParser do
|
|
210
210
|
s.jump(:string_content).source.should == "hello\n\nworld"
|
211
211
|
s.source.should == src
|
212
212
|
end
|
213
|
-
|
213
|
+
|
214
214
|
src = '("this is a string")'
|
215
215
|
stmt(src).jump(:string_literal).source.should == '"this is a string"'
|
216
216
|
end
|
217
|
-
|
217
|
+
|
218
218
|
it "should show proper source for %w() array" do
|
219
219
|
src = "%w(\na b c\n d e f\n)"
|
220
220
|
stmt(src).jump(:qwords_literal).source.should == src
|
221
221
|
end
|
222
|
-
|
222
|
+
|
223
223
|
it "should show proper source for %w{} array" do
|
224
224
|
src = "%w{\na b c\n d e f\n}"
|
225
225
|
stmt(src).jump(:array).source.should == src
|
@@ -261,7 +261,7 @@ describe YARD::Parser::Ruby::RubyParser do
|
|
261
261
|
eof
|
262
262
|
s.jump(:array).source.should == "['foo', 'bar']"
|
263
263
|
end
|
264
|
-
|
264
|
+
|
265
265
|
it "should show source for unary minus" do
|
266
266
|
stmt("X = - 1").jump(:unary).source.should == '- 1'
|
267
267
|
end
|
@@ -269,5 +269,27 @@ describe YARD::Parser::Ruby::RubyParser do
|
|
269
269
|
it "should show source for unary exclamation" do
|
270
270
|
stmt("X = !1").jump(:unary).source.should == '!1'
|
271
271
|
end
|
272
|
+
|
273
|
+
it "should find lone comments" do
|
274
|
+
Registry.clear
|
275
|
+
ast = YARD.parse_string(<<-eof).enumerator
|
276
|
+
class Foo
|
277
|
+
##
|
278
|
+
# comment here
|
279
|
+
|
280
|
+
|
281
|
+
def foo; end
|
282
|
+
|
283
|
+
# end comment
|
284
|
+
end
|
285
|
+
eof
|
286
|
+
comment = ast.first.last.first
|
287
|
+
comment.type.should == :comment
|
288
|
+
comment.docstring_hash_flag.should be_true
|
289
|
+
comment.docstring.strip.should == "comment here"
|
290
|
+
|
291
|
+
ast.first.last.last.type.should == :comment
|
292
|
+
ast.first.last.last.docstring.should == "end comment"
|
293
|
+
end
|
272
294
|
end
|
273
295
|
end if HAVE_RIPPER
|