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
@@ -1,41 +1,41 @@
|
|
1
1
|
class Testing
|
2
2
|
# Ignore yields outside methods
|
3
3
|
raise NoMethodError, "reason"
|
4
|
-
|
4
|
+
|
5
5
|
# Should document this
|
6
6
|
def mymethod
|
7
7
|
raise ArgumentError, "Argument is missing"
|
8
8
|
end
|
9
|
-
|
9
|
+
|
10
10
|
# Don't document this
|
11
11
|
def mymethod2
|
12
|
-
raise(a)
|
12
|
+
raise(a)
|
13
13
|
end
|
14
|
-
|
14
|
+
|
15
15
|
# Don't document this (docstring takes precedence)
|
16
16
|
# @raise [A]
|
17
|
-
def mymethod3
|
17
|
+
def mymethod3
|
18
18
|
raise SomethingElse
|
19
19
|
end
|
20
|
-
|
20
|
+
|
21
21
|
# Only document the first one (limitation of exc handler)
|
22
|
-
def mymethod4
|
22
|
+
def mymethod4
|
23
23
|
raise(A)
|
24
24
|
raise B, "Argument", somethingelse
|
25
25
|
end
|
26
|
-
|
26
|
+
|
27
27
|
def mymethod5
|
28
28
|
raise YARD::Parser::UndocumentableError
|
29
29
|
end
|
30
|
-
|
30
|
+
|
31
31
|
def mymethod6
|
32
32
|
raise YARD::Handlers.constants("test")
|
33
33
|
end
|
34
|
-
|
34
|
+
|
35
35
|
def mymethod7
|
36
36
|
raise MethodCall('argument')
|
37
37
|
end
|
38
|
-
|
38
|
+
|
39
39
|
def mymethod8
|
40
40
|
raise ExceptionClass.new('blah')
|
41
41
|
end
|
@@ -44,15 +44,15 @@ class Testing
|
|
44
44
|
obj.raise IgnoreMe
|
45
45
|
obj.raise(IgnoreMe)
|
46
46
|
end
|
47
|
-
|
47
|
+
|
48
48
|
def mymethod10
|
49
49
|
raise ArgumentError 'Message' # actually a method call
|
50
50
|
end
|
51
|
-
|
51
|
+
|
52
52
|
def mymethod11
|
53
53
|
raise foo('bar')
|
54
54
|
end
|
55
|
-
|
55
|
+
|
56
56
|
def mymethod12
|
57
57
|
raise
|
58
58
|
end
|
@@ -13,7 +13,7 @@ class Foo
|
|
13
13
|
def initialize; end
|
14
14
|
|
15
15
|
def ==(other)
|
16
|
-
'hello'
|
16
|
+
'hello'
|
17
17
|
end
|
18
18
|
def /(other) 'hi' end
|
19
19
|
|
@@ -22,24 +22,24 @@ class Foo
|
|
22
22
|
def method1
|
23
23
|
def dynamic; end
|
24
24
|
end
|
25
|
-
|
25
|
+
|
26
26
|
def self.method2; end
|
27
27
|
|
28
28
|
# Docstring
|
29
29
|
def String :: hello; "" end
|
30
|
-
|
30
|
+
|
31
31
|
def self.new() end
|
32
32
|
|
33
33
|
def [](key = 'default') puts key end
|
34
34
|
def []=(key, value) end
|
35
|
-
def
|
35
|
+
def
|
36
36
|
allowed?
|
37
37
|
end
|
38
38
|
|
39
39
|
def ` param; end
|
40
40
|
def /(x = File.new('x', 'w'), y = 2) end
|
41
41
|
def |; end; def =~ ()
|
42
|
-
def -@; end;
|
42
|
+
def -@; end;
|
43
43
|
end
|
44
44
|
def *(o) def +@; end
|
45
45
|
def ~@
|
@@ -47,7 +47,7 @@ end
|
|
47
47
|
def &(o) end
|
48
48
|
def %(o) end
|
49
49
|
def ^(o) end
|
50
|
-
|
50
|
+
|
51
51
|
def optsmeth(x, opts = {}) end
|
52
52
|
def blockmeth(x, &block) end
|
53
53
|
|
@@ -91,35 +91,35 @@ def CONST2.meth2_on_const; end
|
|
91
91
|
|
92
92
|
class D
|
93
93
|
alias b a
|
94
|
-
|
94
|
+
|
95
95
|
# foo bar
|
96
96
|
def a; end
|
97
97
|
end
|
98
98
|
|
99
99
|
class E
|
100
|
-
#
|
101
|
-
#
|
100
|
+
# @!macro prop
|
101
|
+
# @!method $1(value)
|
102
102
|
# $3
|
103
103
|
# @return [$2]
|
104
104
|
def self.property(name, ret_type, docstring)
|
105
105
|
end
|
106
|
-
|
106
|
+
|
107
107
|
property :foo, String, "create a foo"
|
108
|
-
|
109
|
-
#
|
110
|
-
#
|
108
|
+
|
109
|
+
# @!macro xyz
|
110
|
+
# @!method $1
|
111
111
|
def xyz; end
|
112
|
-
|
112
|
+
|
113
113
|
xyz :a
|
114
114
|
end
|
115
115
|
|
116
116
|
module F
|
117
117
|
class A
|
118
118
|
def foo; end
|
119
|
-
|
119
|
+
|
120
120
|
def end
|
121
121
|
end
|
122
|
-
|
122
|
+
|
123
123
|
# PASS
|
124
124
|
def bar; end
|
125
125
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module A; end
|
2
|
-
module B;
|
3
|
-
module C; end
|
2
|
+
module B;
|
3
|
+
module C; end
|
4
4
|
module D; end
|
5
5
|
end
|
6
6
|
|
@@ -19,15 +19,19 @@ module Y
|
|
19
19
|
class << self; include A; end
|
20
20
|
end
|
21
21
|
|
22
|
+
module Z
|
23
|
+
include A, B
|
24
|
+
end
|
25
|
+
|
22
26
|
module ABC
|
23
27
|
module FOO; end
|
24
28
|
module DEF
|
25
29
|
module FOO
|
26
30
|
include ABC::FOO
|
27
31
|
end
|
28
|
-
|
32
|
+
|
29
33
|
module BAR
|
30
34
|
include ABC::BAR
|
31
35
|
end
|
32
36
|
end
|
33
|
-
end
|
37
|
+
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
class Testing
|
2
2
|
def pub; end
|
3
|
-
|
3
|
+
|
4
4
|
private
|
5
5
|
|
6
6
|
def priv; end
|
@@ -17,11 +17,11 @@ class Testing
|
|
17
17
|
def pub2; end
|
18
18
|
|
19
19
|
protected :notpriv, 'notpriv2', :notpriv?
|
20
|
-
|
20
|
+
|
21
21
|
private name
|
22
22
|
private *argument
|
23
23
|
private *(method_call)
|
24
|
-
|
24
|
+
|
25
25
|
def Foo; end
|
26
26
|
private :Foo
|
27
27
|
end
|
@@ -1,12 +1,12 @@
|
|
1
1
|
class Testing
|
2
2
|
# Ignore yields outside methods
|
3
|
-
yield x, y, z
|
4
|
-
|
3
|
+
yield x, y, z
|
4
|
+
|
5
5
|
# Should document this
|
6
6
|
def mymethod
|
7
7
|
yield
|
8
8
|
end
|
9
|
-
|
9
|
+
|
10
10
|
# Has yield and yieldparam documentation
|
11
11
|
# @yield [a, b] Blah
|
12
12
|
# @yieldparam a Blah
|
@@ -14,42 +14,41 @@ class Testing
|
|
14
14
|
def mymethod2
|
15
15
|
yield(b, a) # Yield something else
|
16
16
|
end
|
17
|
-
|
17
|
+
|
18
18
|
# Has yield documentation only
|
19
19
|
# @yield [a, b]
|
20
|
-
def mymethod3
|
20
|
+
def mymethod3
|
21
21
|
yield self # Should not be changed
|
22
22
|
end
|
23
|
-
|
23
|
+
|
24
24
|
# Has yieldparam documentation only
|
25
25
|
# @yieldparam _self BLAH
|
26
26
|
def mymethod4
|
27
27
|
yield self
|
28
28
|
end
|
29
|
-
|
29
|
+
|
30
30
|
# Some weird possibilities..
|
31
31
|
# Document it all.
|
32
|
-
|
33
|
-
|
32
|
+
|
33
|
+
|
34
34
|
def mymethod5
|
35
35
|
yield :a, b, self, File.read('file', 'w'), CONSTANT if x == 2
|
36
36
|
end
|
37
|
-
|
37
|
+
|
38
38
|
def mymethod6
|
39
39
|
yield(b, a)
|
40
40
|
end
|
41
|
-
|
41
|
+
|
42
42
|
def mymethod7
|
43
43
|
yield a
|
44
44
|
yield b
|
45
45
|
end
|
46
|
-
|
46
|
+
|
47
47
|
def mymethod8
|
48
48
|
yield self
|
49
49
|
end
|
50
|
-
|
50
|
+
|
51
51
|
def mymethod9
|
52
52
|
yield super
|
53
53
|
end
|
54
54
|
end
|
55
|
-
|
@@ -2,25 +2,25 @@ require File.dirname(__FILE__) + '/spec_helper'
|
|
2
2
|
|
3
3
|
describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}ExceptionHandler" do
|
4
4
|
before(:all) { parse_file :exception_handler_001, __FILE__ }
|
5
|
-
|
5
|
+
|
6
6
|
it "should not document an exception outside of a method" do
|
7
7
|
P('Testing').has_tag?(:raise).should == false
|
8
8
|
end
|
9
|
-
|
9
|
+
|
10
10
|
it "should document a valid raise" do
|
11
11
|
P('Testing#mymethod').tag(:raise).types.should == ['ArgumentError']
|
12
12
|
end
|
13
|
-
|
13
|
+
|
14
14
|
it "should only document non-dynamic raises" do
|
15
15
|
P('Testing#mymethod2').tag(:raise).should be_nil
|
16
16
|
P('Testing#mymethod6').tag(:raise).should be_nil
|
17
17
|
P('Testing#mymethod7').tag(:raise).should be_nil
|
18
18
|
end
|
19
|
-
|
19
|
+
|
20
20
|
it "should treat ConstantName.new as a valid exception class" do
|
21
21
|
P('Testing#mymethod8').tag(:raise).types.should == ['ExceptionClass']
|
22
22
|
end
|
23
|
-
|
23
|
+
|
24
24
|
it "should not document a method with an existing @raise tag" do
|
25
25
|
P('Testing#mymethod3').tag(:raise).types.should == ['A']
|
26
26
|
end
|
@@ -28,20 +28,20 @@ describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}ExceptionHandl
|
|
28
28
|
it "should only document the first raise message of a method (limitation of exception handler)" do
|
29
29
|
P('Testing#mymethod4').tag(:raise).types.should == ['A']
|
30
30
|
end
|
31
|
-
|
31
|
+
|
32
32
|
it "should handle complex class names" do
|
33
33
|
P('Testing#mymethod5').tag(:raise).types.should == ['YARD::Parser::UndocumentableError']
|
34
34
|
end
|
35
|
-
|
35
|
+
|
36
36
|
it "should ignore any raise calls on a receiver" do
|
37
37
|
P('Testing#mymethod9').tag(:raise).should be_nil
|
38
38
|
end
|
39
|
-
|
39
|
+
|
40
40
|
it "should handle raise expressions that are method calls" do
|
41
41
|
P('Testing#mymethod10').tag(:raise).should be_nil
|
42
42
|
P('Testing#mymethod11').tag(:raise).should be_nil
|
43
43
|
end
|
44
|
-
|
44
|
+
|
45
45
|
it "should ignore empty raise call" do
|
46
46
|
P('Testing#mymethod12').tag(:raise).should be_nil
|
47
47
|
end
|
@@ -12,11 +12,11 @@ describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}ExtendHandler"
|
|
12
12
|
Registry.at(:C).class_mixins.should == [P(:C)]
|
13
13
|
Registry.at(:C).instance_mixins.should be_empty
|
14
14
|
end
|
15
|
-
|
15
|
+
|
16
16
|
it "should extend module with correct namespace" do
|
17
17
|
Registry.at('Q::R::S').class_mixins.first.path.should == 'A'
|
18
18
|
end
|
19
|
-
|
19
|
+
|
20
20
|
it "should not allow extending self if object is a class" do
|
21
21
|
undoc_error "class Foo; extend self; end"
|
22
22
|
end
|
@@ -2,123 +2,123 @@ require File.dirname(__FILE__) + '/spec_helper'
|
|
2
2
|
|
3
3
|
include Parser::Ruby::Legacy
|
4
4
|
|
5
|
-
describe YARD::Handlers::Ruby::Legacy::Base, "#tokval" do
|
6
|
-
|
7
|
-
before { @handler = Handlers::Ruby::Legacy::Base.new(nil, nil) }
|
8
|
-
|
5
|
+
describe YARD::Handlers::Ruby::Legacy::Base, "#tokval" do
|
6
|
+
|
7
|
+
before { @handler = Handlers::Ruby::Legacy::Base.new(nil, nil) }
|
8
|
+
|
9
9
|
def tokval(code, *types)
|
10
10
|
@handler.send(:tokval, TokenList.new(code).first, *types)
|
11
11
|
end
|
12
|
-
|
12
|
+
|
13
13
|
it "should return the String's value without quotes" do
|
14
14
|
tokval('"hello"').should == "hello"
|
15
15
|
end
|
16
|
-
|
16
|
+
|
17
17
|
it "should not allow interpolated strings with TkSTRING" do
|
18
18
|
tokval('"#{c}"', RubyToken::TkSTRING).should be_nil
|
19
19
|
end
|
20
|
-
|
20
|
+
|
21
21
|
it "should return a Symbol's value as a String (as if it was done via :name.to_sym)" do
|
22
22
|
tokval(':sym').should == :sym
|
23
23
|
end
|
24
|
-
|
24
|
+
|
25
25
|
it "should return nil for any non accepted type" do
|
26
26
|
tokval('identifier').should be_nil
|
27
27
|
tokval(':sym', RubyToken::TkId).should be_nil
|
28
28
|
end
|
29
|
-
|
29
|
+
|
30
30
|
it "should accept TkVal tokens by default" do
|
31
31
|
tokval('2.5').should == 2.5
|
32
32
|
tokval(':sym').should == :sym
|
33
33
|
end
|
34
|
-
|
34
|
+
|
35
35
|
it "should accept any ID type if TkId is set" do
|
36
36
|
tokval('variable', RubyToken::TkId).should == "variable"
|
37
37
|
tokval('CONSTANT', RubyToken::TkId).should == "CONSTANT"
|
38
38
|
end
|
39
|
-
|
40
|
-
it "should allow extra token types to be accepted" do
|
39
|
+
|
40
|
+
it "should allow extra token types to be accepted" do
|
41
41
|
tokval('2.5', RubyToken::TkFLOAT).should == 2.5
|
42
42
|
tokval('2', RubyToken::TkFLOAT).should be_nil
|
43
43
|
tokval(':symbol', RubyToken::TkFLOAT).should be_nil
|
44
44
|
end
|
45
|
-
|
45
|
+
|
46
46
|
it "should allow :string for any string type" do
|
47
47
|
tokval('"hello"', :string).should == "hello"
|
48
48
|
tokval('"#{c}"', :string).should == '#{c}'
|
49
49
|
end
|
50
|
-
|
50
|
+
|
51
51
|
it "should not include interpolated strings when using :attr" do
|
52
52
|
tokval('"#{c}"', :attr).should be_nil
|
53
53
|
end
|
54
|
-
|
54
|
+
|
55
55
|
it "should allow any number type with :number" do
|
56
56
|
tokval('2.5', :number).should == 2.5
|
57
57
|
tokval('2', :number).should == 2
|
58
58
|
end
|
59
|
-
|
59
|
+
|
60
60
|
it "should should allow method names with :identifier" do
|
61
61
|
tokval('methodname?', :identifier).should == "methodname?"
|
62
62
|
end
|
63
|
-
|
63
|
+
|
64
64
|
#it "should obey documentation expectations" do docspec end
|
65
65
|
end
|
66
66
|
|
67
|
-
describe YARD::Handlers::Base, "#tokval_list" do
|
68
|
-
before { @handler = Handlers::Ruby::Legacy::Base.new(nil, nil) }
|
69
|
-
|
67
|
+
describe YARD::Handlers::Base, "#tokval_list" do
|
68
|
+
before { @handler = Handlers::Ruby::Legacy::Base.new(nil, nil) }
|
69
|
+
|
70
70
|
def tokval_list(code, *types)
|
71
71
|
@handler.send(:tokval_list, TokenList.new(code), *types)
|
72
72
|
end
|
73
|
-
|
73
|
+
|
74
74
|
it "should return the list of tokvalues" do
|
75
75
|
tokval_list(":a, :b, \"\#{c}\", 'd'", :attr).should == [:a, :b, 'd']
|
76
|
-
tokval_list(":a, :b, File.read(\"\#{c}\", ['w']), :d",
|
76
|
+
tokval_list(":a, :b, File.read(\"\#{c}\", ['w']), :d",
|
77
77
|
RubyToken::Token).should == [:a, :b, 'File.read("#{c}", [\'w\'])', :d]
|
78
78
|
end
|
79
|
-
|
79
|
+
|
80
80
|
it "should try to skip any invalid tokens" do
|
81
81
|
tokval_list(":a, :b, \"\#{c}\", :d", :attr).should == [:a, :b, :d]
|
82
82
|
tokval_list(":a, :b, File.read(\"\#{c}\", 'w', File.open { }), :d", :attr).should == [:a, :b, :d]
|
83
|
-
tokval_list("CONST1, identifier, File.read(\"\#{c}\", 'w', File.open { }), CONST2",
|
83
|
+
tokval_list("CONST1, identifier, File.read(\"\#{c}\", 'w', File.open { }), CONST2",
|
84
84
|
RubyToken::TkId).should == ['CONST1', 'identifier', 'CONST2']
|
85
85
|
end
|
86
|
-
|
86
|
+
|
87
87
|
it "should ignore a token if another invalid token is read before a comma" do
|
88
88
|
tokval_list(":a, :b XYZ, :c", RubyToken::TkSYMBOL).should == [:a, :c]
|
89
89
|
end
|
90
|
-
|
90
|
+
|
91
91
|
it "should stop on most keywords" do
|
92
92
|
tokval_list(':a rescue :x == 5', RubyToken::Token).should == [:a]
|
93
93
|
end
|
94
|
-
|
94
|
+
|
95
95
|
it "should handle ignore parentheses that begin the token list" do
|
96
96
|
tokval_list('(:a, :b, :c)', :attr).should == [:a, :b, :c]
|
97
97
|
end
|
98
|
-
|
98
|
+
|
99
99
|
it "should end when a closing parenthesis was found" do
|
100
100
|
tokval_list(':a, :b, :c), :d', :attr).should == [:a, :b, :c]
|
101
101
|
end
|
102
|
-
|
102
|
+
|
103
103
|
it "should ignore parentheses around items in a list" do
|
104
104
|
tokval_list(':a, (:b), :c, (:d TEST), :e, [:f], :g', :attr).should == [:a, :b, :c, :e, :g]
|
105
105
|
tokval_list(':a, (((:f)))', :attr).should == [:a, :f]
|
106
106
|
tokval_list(':a, ([:f]), :c)', RubyToken::Token).should == [:a, '[:f]', :c]
|
107
107
|
end
|
108
|
-
|
108
|
+
|
109
109
|
it "should not stop on a true/false/self keyword (cannot handle nil)" do
|
110
|
-
tokval_list(':a, true, :b, self, false, :c, nil, File, super, if, XYZ',
|
110
|
+
tokval_list(':a, true, :b, self, false, :c, nil, File, super, if, XYZ',
|
111
111
|
RubyToken::Token).should == [:a, true, :b, 'self', false, :c, 'File', 'super']
|
112
112
|
end
|
113
|
-
|
113
|
+
|
114
114
|
it "should ignore invalid commas" do
|
115
115
|
tokval_list(":a, :b, , :d").should == [:a, :b, :d]
|
116
116
|
end
|
117
|
-
|
117
|
+
|
118
118
|
it "should return an empty list if no matches were found" do
|
119
119
|
tokval_list('attr_accessor :x').should == []
|
120
120
|
end
|
121
|
-
|
121
|
+
|
122
122
|
it "should treat {} as a valid value" do
|
123
123
|
# FIXME: tokval_list destroys extra spaces surrounding the '=' in
|
124
124
|
# this situation. This is technically a design flaw of the
|