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,31 +1,31 @@
|
|
1
1
|
require File.dirname(__FILE__) + '/spec_helper'
|
2
2
|
|
3
3
|
describe YARD::CodeObjects::MethodObject do
|
4
|
-
before do
|
5
|
-
Registry.clear
|
4
|
+
before do
|
5
|
+
Registry.clear
|
6
6
|
@yard = ModuleObject.new(:root, :YARD)
|
7
7
|
end
|
8
|
-
|
8
|
+
|
9
9
|
it "should have a path of testing for an instance method in the root" do
|
10
10
|
meth = MethodObject.new(:root, :testing)
|
11
11
|
meth.path.should == "#testing"
|
12
12
|
end
|
13
|
-
|
13
|
+
|
14
14
|
it "should have a path of YARD#testing for an instance method in YARD" do
|
15
15
|
meth = MethodObject.new(@yard, :testing)
|
16
16
|
meth.path.should == "YARD#testing"
|
17
17
|
end
|
18
|
-
|
18
|
+
|
19
19
|
it "should have a path of YARD.testing for a class method in YARD" do
|
20
20
|
meth = MethodObject.new(@yard, :testing, :class)
|
21
21
|
meth.path.should == "YARD.testing"
|
22
22
|
end
|
23
|
-
|
23
|
+
|
24
24
|
it "should have a path of ::testing (note the ::) for a class method added to root namespace" do
|
25
25
|
meth = MethodObject.new(:root, :testing, :class)
|
26
26
|
meth.path.should == "::testing"
|
27
27
|
end
|
28
|
-
|
28
|
+
|
29
29
|
it "should exist in the registry after successful creation" do
|
30
30
|
obj = MethodObject.new(@yard, :something, :class)
|
31
31
|
Registry.at("YARD.something").should_not be_nil
|
@@ -34,7 +34,7 @@ describe YARD::CodeObjects::MethodObject do
|
|
34
34
|
obj = MethodObject.new(@yard, :somethingelse)
|
35
35
|
Registry.at("YARD#somethingelse").should_not be_nil
|
36
36
|
end
|
37
|
-
|
37
|
+
|
38
38
|
it "should allow #scope to be changed after creation" do
|
39
39
|
obj = MethodObject.new(@yard, :something, :class)
|
40
40
|
Registry.at("YARD.something").should_not be_nil
|
@@ -42,20 +42,43 @@ describe YARD::CodeObjects::MethodObject do
|
|
42
42
|
Registry.at("YARD.something").should be_nil
|
43
43
|
Registry.at("YARD#something").should_not be_nil
|
44
44
|
end
|
45
|
-
|
45
|
+
|
46
|
+
it "should create object in :class scope if scope is :module" do
|
47
|
+
obj = MethodObject.new(@yard, :module_func, :module)
|
48
|
+
obj.scope.should == :class
|
49
|
+
obj.visibility.should == :public
|
50
|
+
Registry.at('YARD.module_func').should_not be_nil
|
51
|
+
end
|
52
|
+
|
53
|
+
it "should create second private instance method if scope is :module" do
|
54
|
+
MethodObject.new(@yard, :module_func, :module)
|
55
|
+
obj = Registry.at('YARD#module_func')
|
56
|
+
obj.should_not be_nil
|
57
|
+
obj.visibility.should == :private
|
58
|
+
obj.scope.should == :instance
|
59
|
+
end
|
60
|
+
|
61
|
+
it "should yield block to second method if scope is :module" do
|
62
|
+
MethodObject.new(@yard, :module_func, :module) do |o|
|
63
|
+
o.docstring = 'foo'
|
64
|
+
end
|
65
|
+
Registry.at('YARD.module_func').docstring.should == 'foo'
|
66
|
+
Registry.at('YARD#module_func').docstring.should == 'foo'
|
67
|
+
end
|
68
|
+
|
46
69
|
describe '#name' do
|
47
70
|
it "should show a prefix for an instance method when prefix=true" do
|
48
71
|
obj = MethodObject.new(nil, :something)
|
49
72
|
obj.name(true).should == "#something"
|
50
73
|
end
|
51
|
-
|
74
|
+
|
52
75
|
it "should never show a prefix for a class method" do
|
53
76
|
obj = MethodObject.new(nil, :something, :class)
|
54
77
|
obj.name.should == :"something"
|
55
78
|
obj.name(true).should == "something"
|
56
79
|
end
|
57
80
|
end
|
58
|
-
|
81
|
+
|
59
82
|
describe '#is_attribute?' do
|
60
83
|
it "should only return true if attribute is set in namespace for read/write" do
|
61
84
|
obj = MethodObject.new(@yard, :foo)
|
@@ -64,24 +87,24 @@ describe YARD::CodeObjects::MethodObject do
|
|
64
87
|
MethodObject.new(@yard, :foo=).is_attribute?.should be_false
|
65
88
|
end
|
66
89
|
end
|
67
|
-
|
90
|
+
|
68
91
|
describe '#attr_info' do
|
69
92
|
it "should return attribute info if namespace is available" do
|
70
93
|
obj = MethodObject.new(@yard, :foo)
|
71
94
|
@yard.attributes[:instance][:foo] = {:read => obj, :write => nil}
|
72
95
|
obj.attr_info.should == @yard.attributes[:instance][:foo]
|
73
96
|
end
|
74
|
-
|
97
|
+
|
75
98
|
it "should return nil if namespace is proxy" do
|
76
99
|
obj = MethodObject.new(P(:ProxyClass), :foo)
|
77
100
|
MethodObject.new(@yard, :foo).attr_info.should == nil
|
78
101
|
end
|
79
|
-
|
102
|
+
|
80
103
|
it "should return nil if meth is not an attribute" do
|
81
104
|
MethodObject.new(@yard, :notanattribute).attr_info.should == nil
|
82
105
|
end
|
83
106
|
end
|
84
|
-
|
107
|
+
|
85
108
|
describe '#writer?' do
|
86
109
|
it "should return true if method is a writer attribute" do
|
87
110
|
obj = MethodObject.new(@yard, :foo=)
|
@@ -99,26 +122,26 @@ describe YARD::CodeObjects::MethodObject do
|
|
99
122
|
MethodObject.new(@yard, :NOTfoo).reader?.should == false
|
100
123
|
end
|
101
124
|
end
|
102
|
-
|
125
|
+
|
103
126
|
describe '#constructor?' do
|
104
127
|
before { @class = ClassObject.new(:root, :MyClass) }
|
105
128
|
|
106
129
|
it "should mark the #initialize method as constructor" do
|
107
130
|
MethodObject.new(@class, :initialize)
|
108
131
|
end
|
109
|
-
|
132
|
+
|
110
133
|
it "should not mark Klass.initialize as constructor" do
|
111
134
|
MethodObject.new(@class, :initialize, :class).constructor?.should be_false
|
112
135
|
end
|
113
|
-
|
136
|
+
|
114
137
|
it "should not mark module method #initialize as constructor" do
|
115
138
|
MethodObject.new(@yard, :initialize).constructor?.should be_false
|
116
139
|
end
|
117
140
|
end
|
118
|
-
|
141
|
+
|
119
142
|
describe '#overridden_method' do
|
120
143
|
before { Registry.clear }
|
121
|
-
|
144
|
+
|
122
145
|
it "should return overridden method from mixin first" do
|
123
146
|
YARD.parse_string(<<-eof)
|
124
147
|
module C; def foo; end end
|
@@ -127,7 +150,7 @@ describe YARD::CodeObjects::MethodObject do
|
|
127
150
|
eof
|
128
151
|
Registry.at('B#foo').overridden_method.should == Registry.at('C#foo')
|
129
152
|
end
|
130
|
-
|
153
|
+
|
131
154
|
it "should return overridden method from superclass" do
|
132
155
|
YARD.parse_string(<<-eof)
|
133
156
|
class A; def foo; end end
|
@@ -135,7 +158,7 @@ describe YARD::CodeObjects::MethodObject do
|
|
135
158
|
eof
|
136
159
|
Registry.at('B#foo').overridden_method.should == Registry.at('A#foo')
|
137
160
|
end
|
138
|
-
|
161
|
+
|
139
162
|
it "should return nil if none is found" do
|
140
163
|
YARD.parse_string(<<-eof)
|
141
164
|
class A; end
|
@@ -143,7 +166,7 @@ describe YARD::CodeObjects::MethodObject do
|
|
143
166
|
eof
|
144
167
|
Registry.at('B#foo').overridden_method.should be_nil
|
145
168
|
end
|
146
|
-
|
169
|
+
|
147
170
|
it "should return nil if namespace is a proxy" do
|
148
171
|
YARD.parse_string "def ARGV.foo; end"
|
149
172
|
Registry.at('ARGV.foo').overridden_method.should be_nil
|
@@ -2,11 +2,11 @@ require File.dirname(__FILE__) + '/spec_helper'
|
|
2
2
|
|
3
3
|
describe YARD::CodeObjects::ModuleObject do
|
4
4
|
describe "#meths" do
|
5
|
-
before do
|
6
|
-
Registry.clear
|
7
|
-
|
5
|
+
before do
|
6
|
+
Registry.clear
|
7
|
+
|
8
8
|
# setup the object space:
|
9
|
-
#
|
9
|
+
#
|
10
10
|
# YARD:module
|
11
11
|
# YARD#foo:method
|
12
12
|
# YARD#foo2:method
|
@@ -14,7 +14,7 @@ describe YARD::CodeObjects::ModuleObject do
|
|
14
14
|
# YARD.bar:method
|
15
15
|
# SomeMod#mixmethod
|
16
16
|
# SomeMod#xyz:method
|
17
|
-
#
|
17
|
+
#
|
18
18
|
@yard = ModuleObject.new(:root, :YARD)
|
19
19
|
MethodObject.new(@yard, :foo)
|
20
20
|
MethodObject.new(@yard, :xyz)
|
@@ -32,11 +32,11 @@ describe YARD::CodeObjects::ModuleObject do
|
|
32
32
|
MethodObject.new(@another, :fizz)
|
33
33
|
MethodObject.new(@another, :bar)
|
34
34
|
MethodObject.new(@another, :fazz, :class)
|
35
|
-
|
35
|
+
|
36
36
|
@yard.instance_mixins << @other
|
37
37
|
@yard.class_mixins << @another
|
38
38
|
end
|
39
|
-
|
39
|
+
|
40
40
|
it "should list all methods (including mixin methods) via #meths" do
|
41
41
|
meths = @yard.meths
|
42
42
|
meths.should include(P("YARD#foo"))
|
@@ -45,7 +45,7 @@ describe YARD::CodeObjects::ModuleObject do
|
|
45
45
|
meths.should include(P("SomeMod#mixmethod"))
|
46
46
|
meths.should include(P("AnotherMod#fizz"))
|
47
47
|
end
|
48
|
-
|
48
|
+
|
49
49
|
it "should allow :visibility to be set" do
|
50
50
|
meths = @yard.meths(:visibility => :public)
|
51
51
|
meths.should_not include(P("YARD.bar"))
|
@@ -54,7 +54,7 @@ describe YARD::CodeObjects::ModuleObject do
|
|
54
54
|
meths.should include(P("YARD.bar"))
|
55
55
|
meths.should_not include(P("YARD#foo2"))
|
56
56
|
end
|
57
|
-
|
57
|
+
|
58
58
|
it "should only display class methods for :scope => :class" do
|
59
59
|
meths = @yard.meths(:scope => :class)
|
60
60
|
meths.should_not include(P("YARD#foo"))
|
@@ -65,7 +65,7 @@ describe YARD::CodeObjects::ModuleObject do
|
|
65
65
|
meths.should include(P("YARD.bar"))
|
66
66
|
meths.should include(P("AnotherMod#fizz"))
|
67
67
|
end
|
68
|
-
|
68
|
+
|
69
69
|
it "should only display instance methods for :scope => :class" do
|
70
70
|
meths = @yard.meths(:scope => :instance)
|
71
71
|
meths.should include(P("YARD#foo"))
|
@@ -74,7 +74,7 @@ describe YARD::CodeObjects::ModuleObject do
|
|
74
74
|
meths.should_not include(P("YARD.bar"))
|
75
75
|
meths.should_not include(P("AnotherMod#fizz"))
|
76
76
|
end
|
77
|
-
|
77
|
+
|
78
78
|
it "should allow :included to be set" do
|
79
79
|
meths = @yard.meths(:included => false)
|
80
80
|
meths.should_not include(P("SomeMod#mixmethod"))
|
@@ -83,14 +83,14 @@ describe YARD::CodeObjects::ModuleObject do
|
|
83
83
|
meths.should include(P("YARD#foo2"))
|
84
84
|
meths.should include(P("YARD.bar"))
|
85
85
|
end
|
86
|
-
|
86
|
+
|
87
87
|
it "should choose the method defined in the class over an included module" do
|
88
88
|
meths = @yard.meths
|
89
89
|
meths.should_not include(P("SomeMod#xyz"))
|
90
90
|
meths.should include(P("YARD#xyz"))
|
91
91
|
meths.should_not include(P("AnotherMod#bar"))
|
92
92
|
meths.should include(P("YARD.bar"))
|
93
|
-
|
93
|
+
|
94
94
|
meths = @other.meths
|
95
95
|
meths.should include(P("SomeMod#xyz"))
|
96
96
|
|
@@ -113,7 +113,7 @@ describe YARD::CodeObjects::ModuleObject do
|
|
113
113
|
@mod2.instance_mixins << @mod3
|
114
114
|
@mod3.instance_mixins << @mod4
|
115
115
|
@mod1.instance_mixins << @mod4
|
116
|
-
|
116
|
+
|
117
117
|
@proxy = P(:SomeProxyClass)
|
118
118
|
@mod5.instance_mixins << @proxy
|
119
119
|
end
|
@@ -125,12 +125,12 @@ describe YARD::CodeObjects::ModuleObject do
|
|
125
125
|
it "should show proper inheritance three when modules are included" do
|
126
126
|
@mod1.inheritance_tree(true).should == [@mod1, @mod2, @mod3, @mod4]
|
127
127
|
end
|
128
|
-
|
128
|
+
|
129
129
|
it "should not list inheritance tree of proxy objects in inheritance tree" do
|
130
130
|
@proxy.should_not_receive(:inheritance_tree)
|
131
131
|
@mod5.instance_mixins.should == [@proxy]
|
132
132
|
end
|
133
|
-
|
133
|
+
|
134
134
|
it "should list class mixins in inheritance tree" do
|
135
135
|
mod = ModuleObject.new(:root, :ClassMethods)
|
136
136
|
recvmod = ModuleObject.new(:root, :ReceivingModule)
|
@@ -2,7 +2,7 @@ require File.dirname(__FILE__) + '/spec_helper'
|
|
2
2
|
|
3
3
|
describe YARD::CodeObjects::NamespaceObject do
|
4
4
|
before { Registry.clear }
|
5
|
-
|
5
|
+
|
6
6
|
describe '#child' do
|
7
7
|
it "should return the object matching the name passed in if argument is a Symbol" do
|
8
8
|
obj = NamespaceObject.new(nil, :YARD)
|
@@ -19,7 +19,7 @@ describe YARD::CodeObjects::NamespaceObject do
|
|
19
19
|
obj.child(:somevalue => 2).should == other
|
20
20
|
end
|
21
21
|
end
|
22
|
-
|
22
|
+
|
23
23
|
describe '#meths' do
|
24
24
|
it "should return #meths even if parent is a Proxy" do
|
25
25
|
obj = NamespaceObject.new(P(:String), :YARD)
|
@@ -84,7 +84,7 @@ describe YARD::CodeObjects::NamespaceObject do
|
|
84
84
|
meths.should_not include(bmeth)
|
85
85
|
end
|
86
86
|
end
|
87
|
-
|
87
|
+
|
88
88
|
describe '#class_attributes' do
|
89
89
|
it "should list class attributes" do
|
90
90
|
a = NamespaceObject.new(nil, :Mod)
|
@@ -95,7 +95,7 @@ describe YARD::CodeObjects::NamespaceObject do
|
|
95
95
|
a.class_attributes.keys.should_not include(:b)
|
96
96
|
end
|
97
97
|
end
|
98
|
-
|
98
|
+
|
99
99
|
describe '#instance_attributes' do
|
100
100
|
it "should list instance attributes" do
|
101
101
|
a = NamespaceObject.new(nil, :Mod)
|
@@ -106,7 +106,7 @@ describe YARD::CodeObjects::NamespaceObject do
|
|
106
106
|
a.instance_attributes.keys.should include(:b)
|
107
107
|
end
|
108
108
|
end
|
109
|
-
|
109
|
+
|
110
110
|
describe '#constants/#included_constants' do
|
111
111
|
before do
|
112
112
|
Registry.clear
|
@@ -156,7 +156,7 @@ describe YARD::CodeObjects::NamespaceObject do
|
|
156
156
|
consts.should_not include(P('A::CONST2'))
|
157
157
|
end
|
158
158
|
end
|
159
|
-
|
159
|
+
|
160
160
|
describe '#included_meths' do
|
161
161
|
it "should return all included methods with :all = true" do
|
162
162
|
YARD.parse_string <<-eof
|
@@ -2,20 +2,20 @@ require File.dirname(__FILE__) + '/spec_helper'
|
|
2
2
|
|
3
3
|
describe YARD::CodeObjects::Proxy do
|
4
4
|
before { Registry.clear }
|
5
|
-
|
5
|
+
|
6
6
|
it "should return the object if it's in the Registry" do
|
7
7
|
pathobj = ModuleObject.new(:root, :YARD)
|
8
8
|
proxyobj = P(:root, :YARD)
|
9
9
|
proxyobj.type.should == :module
|
10
10
|
Proxy.should_not === proxyobj
|
11
11
|
end
|
12
|
-
|
12
|
+
|
13
13
|
it "should handle complex string namespaces" do
|
14
14
|
ModuleObject.new(:root, :A)
|
15
15
|
pathobj = ModuleObject.new(P(nil, :A), :B)
|
16
16
|
P(:root, "A::B").should be_instance_of(ModuleObject)
|
17
17
|
end
|
18
|
-
|
18
|
+
|
19
19
|
it "should not return true to Proxy === obj if obj is a Proxy class holding a resolved object" do
|
20
20
|
Proxy.should === P(:root, 'a')
|
21
21
|
Proxy.should_not === P(:root)
|
@@ -24,14 +24,14 @@ describe YARD::CodeObjects::Proxy do
|
|
24
24
|
x = Proxy.new(:root, 'a')
|
25
25
|
Proxy.should_not === x
|
26
26
|
end
|
27
|
-
|
27
|
+
|
28
28
|
it "should return the object if it's an included Module" do
|
29
29
|
yardobj = ModuleObject.new(:root, :YARD)
|
30
30
|
pathobj = ClassObject.new(:root, :TestClass)
|
31
31
|
pathobj.instance_mixins << yardobj
|
32
32
|
P(P(nil, :TestClass), :YARD).should be_instance_of(ModuleObject)
|
33
33
|
end
|
34
|
-
|
34
|
+
|
35
35
|
it "should respond_to respond_to?" do
|
36
36
|
obj = ClassObject.new(:root, :Object)
|
37
37
|
yardobj = ModuleObject.new(:root, :YARD)
|
@@ -43,33 +43,33 @@ describe YARD::CodeObjects::Proxy do
|
|
43
43
|
P(:NOTYARD).respond_to?(:initialize).should == false
|
44
44
|
P(:NOTYARD).respond_to?(:initialize, true).should == true
|
45
45
|
end
|
46
|
-
|
46
|
+
|
47
47
|
it "should make itself obvious that it's a proxy" do
|
48
48
|
pathobj = P(:root, :YARD)
|
49
49
|
pathobj.class.should == Proxy
|
50
50
|
(Proxy === pathobj).should == true
|
51
|
-
end
|
51
|
+
end
|
52
52
|
|
53
53
|
it "should pretend it's the object's type if it can resolve" do
|
54
54
|
pathobj = ModuleObject.new(:root, :YARD)
|
55
55
|
proxyobj = P(:root, :YARD)
|
56
56
|
proxyobj.should be_instance_of(ModuleObject)
|
57
57
|
end
|
58
|
-
|
58
|
+
|
59
59
|
it "should handle instance method names" do
|
60
60
|
obj = P(nil, '#test')
|
61
61
|
obj.name.should == :test
|
62
62
|
obj.path.should == "#test"
|
63
63
|
obj.namespace.should == Registry.root
|
64
64
|
end
|
65
|
-
|
65
|
+
|
66
66
|
it "should handle instance method names under a namespace" do
|
67
67
|
pathobj = ModuleObject.new(:root, :YARD)
|
68
68
|
obj = P(pathobj, "A::B#test")
|
69
69
|
obj.name.should == :test
|
70
70
|
obj.path.should == "A::B#test"
|
71
71
|
end
|
72
|
-
|
72
|
+
|
73
73
|
it "should allow type to be changed" do
|
74
74
|
obj = P("InvalidClass")
|
75
75
|
obj.type.should == :proxy
|
@@ -77,17 +77,17 @@ describe YARD::CodeObjects::Proxy do
|
|
77
77
|
obj.type = :class
|
78
78
|
obj.type.should == :class
|
79
79
|
end
|
80
|
-
|
80
|
+
|
81
81
|
it "should retain a type change between Proxy objects" do
|
82
82
|
P("InvalidClass").type = :class
|
83
83
|
P("InvalidClass").type.should == :class
|
84
84
|
end
|
85
|
-
|
85
|
+
|
86
86
|
it "should never equal Registry.root" do
|
87
87
|
P("MYPROXY").should_not == Registry.root
|
88
88
|
P("X::A").should_not == Registry.root
|
89
89
|
end
|
90
|
-
|
90
|
+
|
91
91
|
it "should reset namespace and name when object is resolved" do
|
92
92
|
obj1 = ModuleObject.new(:root, :YARD)
|
93
93
|
obj2 = ModuleObject.new(:root, :NOTYARD)
|
@@ -96,24 +96,24 @@ describe YARD::CodeObjects::Proxy do
|
|
96
96
|
resolved.namespace.should == Registry.root
|
97
97
|
resolved.name.should == :YARD
|
98
98
|
end
|
99
|
-
|
99
|
+
|
100
100
|
it "should ensure that the correct object was resolved" do
|
101
101
|
foo = ModuleObject.new(:root, :Foo)
|
102
102
|
foobar = ModuleObject.new(foo, :Bar)
|
103
103
|
foobaz = ClassObject.new(foo, :Baz)
|
104
|
-
|
104
|
+
|
105
105
|
# Remember, we're looking for Qux::Bar, not just 'Bar'
|
106
106
|
proxy = Proxy.new(foobar, 'Foo::Qux::Bar')
|
107
107
|
proxy.type.should == :proxy
|
108
|
-
|
108
|
+
|
109
109
|
qux = ModuleObject.new(foo, :Qux)
|
110
110
|
quxbar = ModuleObject.new(qux, :Bar)
|
111
|
-
|
111
|
+
|
112
112
|
# Now it should resolve
|
113
113
|
proxy.type.should == :module
|
114
114
|
end
|
115
|
-
|
116
|
-
|
115
|
+
|
116
|
+
|
117
117
|
it "should handle constant names in namespaces" do
|
118
118
|
YARD.parse_string <<-eof
|
119
119
|
module A; end; B = A
|