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
data/spec/tags/library_spec.rb
CHANGED
@@ -4,20 +4,31 @@ describe YARD::Tags::Library do
|
|
4
4
|
def tag(docstring)
|
5
5
|
Docstring.new(docstring).tags.first
|
6
6
|
end
|
7
|
-
|
7
|
+
|
8
8
|
describe '#see_tag' do
|
9
9
|
it "should take a URL" do
|
10
10
|
tag("@see http://example.com").name.should == "http://example.com"
|
11
11
|
end
|
12
|
-
|
12
|
+
|
13
13
|
it "should take an object path" do
|
14
14
|
tag("@see String#reverse").name.should == "String#reverse"
|
15
15
|
end
|
16
|
-
|
16
|
+
|
17
17
|
it "should take a description after the url/object" do
|
18
18
|
tag = tag("@see http://example.com An Example Site")
|
19
19
|
tag.name.should == "http://example.com"
|
20
20
|
tag.text.should == "An Example Site"
|
21
21
|
end
|
22
22
|
end
|
23
|
-
|
23
|
+
|
24
|
+
describe '.define_tag' do
|
25
|
+
it "should allow defining tags with '.' in the name (x.y.z defines method x_y_z)" do
|
26
|
+
Tags::Library.define_tag("foo", 'x.y.z')
|
27
|
+
Tags::Library.define_tag("foo2", 'x.y.zz', Tags::OverloadTag)
|
28
|
+
Tags::Library.instance.method(:x_y_z_tag).should_not be_nil
|
29
|
+
Tags::Library.instance.method(:x_y_zz_tag).should_not be_nil
|
30
|
+
tag('@x.y.z foo bar').text.should == 'foo bar'
|
31
|
+
tag('@x.y.zz foo(bar)').signature.should == 'foo(bar)'
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -9,35 +9,35 @@ describe YARD::Tags::OverloadTag do
|
|
9
9
|
@return [String]
|
10
10
|
eof
|
11
11
|
end
|
12
|
-
|
12
|
+
|
13
13
|
it "should parse the first line as a method signature" do
|
14
14
|
@tag.signature.should == "def bar(a, b = 1, &block)"
|
15
15
|
@tag.parameters.should == [[:a, nil], [:b, "1"], [:"&block", nil]]
|
16
16
|
end
|
17
|
-
|
17
|
+
|
18
18
|
it "should parse the rest of the text as a new Docstring" do
|
19
19
|
@tag.docstring.should be_instance_of(Docstring)
|
20
20
|
@tag.docstring.should == "Hello world"
|
21
21
|
end
|
22
|
-
|
22
|
+
|
23
23
|
it "should set Docstring's object after #object= is called" do
|
24
24
|
m = mock(:object)
|
25
25
|
@tag.object = m
|
26
26
|
@tag.docstring.object.should == m
|
27
27
|
end
|
28
|
-
|
28
|
+
|
29
29
|
it "should respond to #tag, #tags and #has_tag?" do
|
30
30
|
@tag.object = mock(:object)
|
31
31
|
@tag.tags.size.should == 2
|
32
32
|
@tag.tag(:param).name.should == "a"
|
33
33
|
@tag.has_tag?(:return).should == true
|
34
34
|
end
|
35
|
-
|
35
|
+
|
36
36
|
it "should not be a CodeObjects::Base when not hooked up to an object" do
|
37
37
|
@tag.object = nil
|
38
38
|
@tag.is_a?(CodeObjects::Base).should == false
|
39
39
|
end
|
40
|
-
|
40
|
+
|
41
41
|
it "should be a CodeObjects::Base when hooked up to an object" do
|
42
42
|
@tag.object = mock(:object)
|
43
43
|
@tag.object.should_receive(:is_a?).at_least(3).times.with(CodeObjects::Base).and_return(true)
|
@@ -2,27 +2,27 @@ require File.dirname(__FILE__) + '/../spec_helper'
|
|
2
2
|
|
3
3
|
describe YARD::Tags::RefTagList do
|
4
4
|
before { YARD::Registry.clear }
|
5
|
-
|
5
|
+
|
6
6
|
it "should accept symbol or string as owner's path and convert it into a proxy" do
|
7
7
|
t = Tags::RefTagList.new('author', :String)
|
8
8
|
t.owner.should == P(:String)
|
9
9
|
end
|
10
|
-
|
10
|
+
|
11
11
|
it "should accept proxy object as owner" do
|
12
12
|
t = Tags::RefTagList.new('author', P(:String))
|
13
13
|
t.owner.should == P(:String)
|
14
14
|
end
|
15
|
-
|
15
|
+
|
16
16
|
it "should return tags from a proxy object" do
|
17
17
|
o = CodeObjects::ClassObject.new(:root, :String)
|
18
18
|
t = Tags::Tag.new(:author, 'foo')
|
19
19
|
o.docstring.add_tag(t)
|
20
|
-
|
20
|
+
|
21
21
|
ref = Tags::RefTagList.new('author', :String)
|
22
22
|
ref.tags.should == [t]
|
23
23
|
ref.tags.first.text.should == 'foo'
|
24
24
|
end
|
25
|
-
|
25
|
+
|
26
26
|
it "should return named tags from a proxy object" do
|
27
27
|
o = CodeObjects::ClassObject.new(:root, :String)
|
28
28
|
p1 = Tags::Tag.new(:param, 'bar1', nil, 'foo')
|
@@ -30,12 +30,12 @@ describe YARD::Tags::RefTagList do
|
|
30
30
|
p3 = Tags::Tag.new(:param, 'bar3', nil, 'bar')
|
31
31
|
t1 = Tags::Tag.new(:return, 'blah')
|
32
32
|
o.docstring.add_tag(p1, t1, p2, p3)
|
33
|
-
|
33
|
+
|
34
34
|
ref = Tags::RefTagList.new('param', :String, 'foo')
|
35
35
|
ref.tags.should == [p1, p2]
|
36
36
|
ref.tags.first.text.should == 'bar1'
|
37
37
|
end
|
38
|
-
|
38
|
+
|
39
39
|
it "all tags should respond to #owner and be a RefTag" do
|
40
40
|
o = CodeObjects::ClassObject.new(:root, :String)
|
41
41
|
p1 = Tags::Tag.new(:param, 'bar1', nil, 'foo')
|
@@ -43,7 +43,7 @@ describe YARD::Tags::RefTagList do
|
|
43
43
|
p3 = Tags::Tag.new(:param, 'bar3', nil, 'bar')
|
44
44
|
t1 = Tags::Tag.new(:return, 'blah')
|
45
45
|
o.docstring.add_tag(p1, t1, p2, p3)
|
46
|
-
|
46
|
+
|
47
47
|
ref = Tags::RefTagList.new('param', :String)
|
48
48
|
ref.tags.each do |t|
|
49
49
|
t.should be_kind_of(Tags::RefTag)
|
@@ -16,29 +16,29 @@ describe YARD::Templates::Engine.template(:default, :docstring) do
|
|
16
16
|
def method_missing(*args) end
|
17
17
|
# @deprecated
|
18
18
|
def a; end
|
19
|
-
|
19
|
+
|
20
20
|
# constructor method!
|
21
21
|
def initialize(test) end
|
22
22
|
end
|
23
|
-
|
23
|
+
|
24
24
|
class C < A; end
|
25
|
-
|
25
|
+
|
26
26
|
class D
|
27
27
|
# @private
|
28
28
|
def initialize; end
|
29
29
|
end
|
30
30
|
eof
|
31
31
|
end
|
32
|
-
|
32
|
+
|
33
33
|
it "should render html format correctly" do
|
34
|
-
html_equals(Registry.at('A').format(
|
34
|
+
html_equals(Registry.at('A').format(html_options), :class001)
|
35
35
|
end
|
36
|
-
|
36
|
+
|
37
37
|
it "should render text format correctly" do
|
38
38
|
text_equals(Registry.at('A').format, :class001)
|
39
39
|
end
|
40
40
|
|
41
41
|
it "should hide private constructors" do
|
42
|
-
html_equals(Registry.at('D').format(:
|
42
|
+
html_equals(Registry.at('D').format(html_options(:verifier => Verifier.new("!@private"))), :class002)
|
43
43
|
end
|
44
44
|
end
|
@@ -7,26 +7,26 @@ describe YARD::Templates::Engine.template(:default, :constant) do
|
|
7
7
|
class YARD::CLI::YRI
|
8
8
|
# Default search paths that should be loaded dynamically into YRI. These paths
|
9
9
|
# take precedence over all other paths ({SEARCH_PATHS_FILE} and RubyGems
|
10
|
-
# paths). To add a path, call:
|
11
|
-
#
|
10
|
+
# paths). To add a path, call:
|
11
|
+
#
|
12
12
|
# DEFAULT_SEARCH_PATHS.push("/path/to/.yardoc")
|
13
|
-
#
|
13
|
+
#
|
14
14
|
# @return [Array<String>] a list of extra search paths
|
15
15
|
# @since 0.6.0
|
16
16
|
DEFAULT_SEARCH_PATHS = []
|
17
17
|
end
|
18
18
|
eof
|
19
|
-
text_equals(Registry.at('YARD::CLI::YRI::DEFAULT_SEARCH_PATHS').format, :constant001)
|
19
|
+
text_equals(Registry.at('YARD::CLI::YRI::DEFAULT_SEARCH_PATHS').format(text_options), :constant001)
|
20
20
|
end
|
21
21
|
end
|
22
|
-
|
22
|
+
|
23
23
|
describe 'simple constant with no documentation' do
|
24
24
|
it "should render text format correctly" do
|
25
25
|
# Short constant should show on single line
|
26
26
|
YARD.parse_string <<-'eof'
|
27
27
|
MYCONST = 'foo'
|
28
28
|
eof
|
29
|
-
text_equals(Registry.at('MYCONST').format, :constant002)
|
29
|
+
text_equals(Registry.at('MYCONST').format(text_options), :constant002)
|
30
30
|
|
31
31
|
# Long constant should show on multiple lines, indented
|
32
32
|
YARD.parse_string <<-'eof'
|
@@ -34,7 +34,7 @@ describe YARD::Templates::Engine.template(:default, :constant) do
|
|
34
34
|
M, N, O, P, Q, R, S, T, U, V, W,
|
35
35
|
X, Y, Z]
|
36
36
|
eof
|
37
|
-
text_equals(Registry.at('MYCONST').format, :constant003)
|
37
|
+
text_equals(Registry.at('MYCONST').format(text_options), :constant003)
|
38
38
|
end
|
39
39
|
end
|
40
40
|
end
|
@@ -7,33 +7,33 @@ describe YARD::Templates::Engine do
|
|
7
7
|
Engine.template_paths.pop.should == '.'
|
8
8
|
end
|
9
9
|
end
|
10
|
-
|
10
|
+
|
11
11
|
describe '.template!' do
|
12
12
|
it "should create a module including Template" do
|
13
13
|
mod = Engine.template!('path/to/template')
|
14
14
|
mod.should include(Template)
|
15
15
|
mod.full_path.to_s.should == 'path/to/template'
|
16
16
|
end
|
17
|
-
|
17
|
+
|
18
18
|
it "should create a module including Template with full_path" do
|
19
19
|
mod = Engine.template!('path/to/template2', '/full/path/to/template2')
|
20
20
|
mod.should include(Template)
|
21
21
|
mod.full_path.to_s.should == '/full/path/to/template2'
|
22
22
|
end
|
23
23
|
end
|
24
|
-
|
24
|
+
|
25
25
|
describe '.template' do
|
26
26
|
it "should raise an error if the template is not found" do
|
27
27
|
lambda { Engine.template(:a, :b, :c) }.should raise_error(ArgumentError)
|
28
28
|
end
|
29
|
-
|
29
|
+
|
30
30
|
it "should create a module including Template" do
|
31
31
|
mock = mock(:template)
|
32
32
|
Engine.should_receive(:find_template_paths).with(nil, 'template/name').and_return(['/full/path/template/name'])
|
33
33
|
Engine.should_receive(:template!).with('template/name', ['/full/path/template/name']).and_return(mock)
|
34
34
|
Engine.template('template/name').should == mock
|
35
35
|
end
|
36
|
-
|
36
|
+
|
37
37
|
it "should create a Template from a relative Template path" do
|
38
38
|
Engine.should_receive(:template_paths).and_return([])
|
39
39
|
File.should_receive(:directory?).with("/full/path/template/notname").and_return(true)
|
@@ -53,76 +53,68 @@ describe YARD::Templates::Engine do
|
|
53
53
|
ancestors = Engine.template('template/name').ancestors.map {|m| m.class_name }
|
54
54
|
ancestors.should include("Template__full_path2_template_name")
|
55
55
|
end
|
56
|
-
|
56
|
+
|
57
57
|
it "should include parent directories before other template paths" do
|
58
58
|
paths = ['/full/path/template/name', '/full/path2/template/name']
|
59
59
|
Engine.should_receive(:find_template_paths).with(nil, 'template/name').and_return(paths)
|
60
60
|
ancestors = Engine.template('template/name').ancestors.map {|m| m.class_name }
|
61
|
-
ancestors[0, 4].should == ["Template__full_path_template_name", "Template__full_path_template",
|
61
|
+
ancestors[0, 4].should == ["Template__full_path_template_name", "Template__full_path_template",
|
62
62
|
"Template__full_path2_template_name", "Template__full_path2_template"]
|
63
63
|
end
|
64
64
|
end
|
65
|
-
|
65
|
+
|
66
66
|
describe '.generate' do
|
67
67
|
it "should generate with fulldoc template" do
|
68
68
|
mod = mock(:template)
|
69
|
-
|
69
|
+
options = TemplateOptions.new
|
70
|
+
options.reset_defaults
|
71
|
+
options.objects = [:a, :b, :c]
|
72
|
+
options.object = Registry.root
|
73
|
+
mod.should_receive(:run).with(options)
|
70
74
|
Engine.should_receive(:template).with(:default, :fulldoc, :text).and_return(mod)
|
71
75
|
Engine.generate([:a, :b, :c])
|
72
76
|
end
|
73
77
|
end
|
74
|
-
|
78
|
+
|
75
79
|
describe '.render' do
|
76
80
|
def loads_template(*args)
|
77
81
|
Engine.should_receive(:template).with(*args).and_return(@template)
|
78
82
|
end
|
79
|
-
|
80
|
-
before(:all) do
|
83
|
+
|
84
|
+
before(:all) do
|
81
85
|
@object = CodeObjects::MethodObject.new(:root, :method)
|
82
86
|
end
|
83
|
-
|
87
|
+
|
84
88
|
before do
|
89
|
+
@options = TemplateOptions.new
|
90
|
+
@options.reset_defaults
|
91
|
+
@options.object = @object
|
92
|
+
@options.type = @object.type
|
85
93
|
@template = mock(:template)
|
86
94
|
@template.stub!(:include)
|
95
|
+
@template.should_receive(:run).with(@options)
|
87
96
|
end
|
88
|
-
|
97
|
+
|
89
98
|
it "should accept method call with no parameters" do
|
90
99
|
loads_template(:default, :method, :text)
|
91
|
-
@template.should_receive(:run).with :__globals => OpenStruct.new,
|
92
|
-
:type => :method,
|
93
|
-
:template => :default,
|
94
|
-
:format => :text,
|
95
|
-
:object => @object
|
96
100
|
@object.format
|
97
101
|
end
|
98
|
-
|
102
|
+
|
99
103
|
it "should allow template key to be changed" do
|
100
104
|
loads_template(:javadoc, :method, :text)
|
101
|
-
@template
|
102
|
-
:type => :method,
|
103
|
-
:template => :javadoc,
|
104
|
-
:format => :text,
|
105
|
-
:object => @object
|
105
|
+
@options.template = :javadoc
|
106
106
|
@object.format(:template => :javadoc)
|
107
107
|
end
|
108
108
|
|
109
109
|
it "should allow type key to be changed" do
|
110
110
|
loads_template(:default, :fulldoc, :text)
|
111
|
-
@
|
112
|
-
:type => :fulldoc,
|
113
|
-
:template => :default,
|
114
|
-
:format => :text,
|
115
|
-
:object => @object
|
111
|
+
@options.type = :fulldoc
|
116
112
|
@object.format(:type => :fulldoc)
|
117
113
|
end
|
118
|
-
|
114
|
+
|
119
115
|
it "should allow format key to be changed" do
|
120
116
|
loads_template(:default, :method, :html)
|
121
|
-
@
|
122
|
-
:type => :method,
|
123
|
-
:template => :default,
|
124
|
-
:format => :html,
|
125
|
-
:object => @object
|
117
|
+
@options.format = :html
|
126
118
|
@object.format(:format => :html)
|
127
119
|
end
|
128
120
|
end
|
@@ -1,43 +1,43 @@
|
|
1
|
-
<h1>Class: A
|
1
|
+
<h1>Class: A
|
2
2
|
<span class="abstract note title">Abstract</span>
|
3
|
-
|
3
|
+
|
4
4
|
</h1>
|
5
5
|
|
6
6
|
<dl class="box">
|
7
|
-
|
7
|
+
|
8
8
|
<dt class="r1">Inherits:</dt>
|
9
9
|
<dd class="r1">
|
10
10
|
<span class="inheritName">B</span>
|
11
|
-
|
11
|
+
|
12
12
|
<ul class="fullTree">
|
13
13
|
<li>Object</li>
|
14
|
-
|
14
|
+
|
15
15
|
<li class="next">B</li>
|
16
|
-
|
16
|
+
|
17
17
|
<li class="next">A</li>
|
18
|
-
|
18
|
+
|
19
19
|
</ul>
|
20
20
|
<a href="#" class="inheritanceTree">show all</a>
|
21
|
-
|
21
|
+
|
22
22
|
</dd>
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
23
|
+
|
24
|
+
|
25
|
+
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
|
30
|
+
|
31
31
|
<dt class="r2 last">Defined in:</dt>
|
32
32
|
<dd class="r2 last">(stdin)</dd>
|
33
|
-
|
33
|
+
|
34
34
|
</dl>
|
35
35
|
<div class="clear"></div>
|
36
36
|
|
37
37
|
<h2>Overview</h2><div class="docstring">
|
38
38
|
<div class="discussion">
|
39
39
|
<div class="note abstract">
|
40
|
-
<strong>This class is abstract.</strong>
|
40
|
+
<strong>This class is abstract.</strong>
|
41
41
|
<div class='inline'>override this class</div>
|
42
42
|
</div>
|
43
43
|
Comments
|
@@ -45,42 +45,42 @@ Comments
|
|
45
45
|
</div>
|
46
46
|
</div>
|
47
47
|
<div class="tags">
|
48
|
-
|
49
|
-
<
|
48
|
+
|
49
|
+
<p class="tag_title">See Also:</p>
|
50
50
|
<ul class="see">
|
51
|
-
|
51
|
+
|
52
52
|
<li>A</li>
|
53
|
-
|
53
|
+
|
54
54
|
<li><a href="http://example.com" target="_parent" title="Example">Example</a></li>
|
55
|
-
|
55
|
+
|
56
56
|
</ul>
|
57
|
-
<
|
57
|
+
<p class="tag_title">Author:</p>
|
58
58
|
<ul class="author">
|
59
|
-
|
59
|
+
|
60
60
|
<li>
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
61
|
+
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
|
66
66
|
<div class='inline'>Test</div>
|
67
|
-
|
67
|
+
|
68
68
|
</li>
|
69
|
-
|
69
|
+
|
70
70
|
</ul>
|
71
|
-
<
|
71
|
+
<p class="tag_title">Version:</p>
|
72
72
|
<ul class="version">
|
73
|
-
|
73
|
+
|
74
74
|
<li>
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
75
|
+
|
76
|
+
|
77
|
+
|
78
|
+
|
79
|
+
|
80
80
|
<div class='inline'>1.0</div>
|
81
|
-
|
81
|
+
|
82
82
|
</li>
|
83
|
-
|
83
|
+
|
84
84
|
</ul>
|
85
85
|
|
86
86
|
</div><div id="subclasses">
|
@@ -89,97 +89,97 @@ Comments
|
|
89
89
|
</div>
|
90
90
|
|
91
91
|
|
92
|
-
|
93
92
|
|
94
|
-
|
93
|
+
|
94
|
+
|
95
95
|
<h2>Instance Method Summary <small>(<a href="#" class="summary_toggle">collapse</a>)</small></h2>
|
96
96
|
|
97
97
|
<ul class="summary">
|
98
|
-
|
98
|
+
|
99
99
|
<li class="public deprecated">
|
100
100
|
<span class="summary_signature">
|
101
|
-
|
101
|
+
|
102
102
|
<a title="#a (instance method)">- <strong>a</strong> </a>
|
103
|
-
|
104
103
|
|
105
|
-
|
104
|
+
|
105
|
+
|
106
106
|
</span>
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
<span class="deprecated note title">Deprecated</span>
|
112
107
|
|
113
|
-
|
108
|
+
|
109
|
+
|
110
|
+
|
111
|
+
<span class="deprecated note title">deprecated</span>
|
112
|
+
|
113
|
+
|
114
114
|
<span class="summary_desc"><strong>Deprecated.</strong> <div class='inline'></div></span>
|
115
|
-
|
115
|
+
|
116
116
|
</li>
|
117
117
|
|
118
|
-
|
118
|
+
|
119
119
|
<li class="public ">
|
120
120
|
<span class="summary_signature">
|
121
|
-
|
121
|
+
|
122
122
|
<a title="#initialize (instance method)">- (A) <strong>initialize</strong>(test) </a>
|
123
|
-
|
124
123
|
|
125
|
-
|
124
|
+
|
125
|
+
|
126
126
|
</span>
|
127
|
-
|
127
|
+
|
128
128
|
<span class="note title constructor">constructor</span>
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
129
|
|
135
|
-
|
130
|
+
|
131
|
+
|
132
|
+
|
133
|
+
|
134
|
+
|
135
|
+
|
136
136
|
<span class="summary_desc"><div class='inline'>constructor method!.</div></span>
|
137
|
-
|
137
|
+
|
138
138
|
</li>
|
139
139
|
|
140
|
-
|
140
|
+
|
141
141
|
<li class="public ">
|
142
142
|
<span class="summary_signature">
|
143
|
-
|
143
|
+
|
144
144
|
<a title="#method_missing (instance method)">- <strong>method_missing</strong>(*args) </a>
|
145
|
-
|
146
145
|
|
147
|
-
|
146
|
+
|
147
|
+
|
148
148
|
</span>
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
149
|
|
155
|
-
|
150
|
+
|
151
|
+
|
152
|
+
|
153
|
+
|
154
|
+
|
155
|
+
|
156
156
|
<span class="summary_desc"><div class='inline'>HI.</div></span>
|
157
|
-
|
157
|
+
|
158
158
|
</li>
|
159
159
|
|
160
|
-
|
160
|
+
|
161
161
|
</ul>
|
162
|
-
|
162
|
+
|
163
163
|
|
164
164
|
|
165
165
|
<div id="constructor_details" class="method_details_list">
|
166
166
|
<h2>Constructor Details</h2>
|
167
|
-
|
167
|
+
|
168
168
|
<div class="method_details first">
|
169
|
-
<
|
170
|
-
|
171
|
-
- (<tt>A</tt>) <strong>initialize</strong>(test)
|
172
|
-
|
169
|
+
<h3 class="signature first" id="initialize-instance_method">
|
170
|
+
|
171
|
+
- (<tt>A</tt>) <strong>initialize</strong>(test)
|
172
|
+
|
173
173
|
|
174
|
-
|
175
|
-
</
|
174
|
+
|
175
|
+
</h3><div class="docstring">
|
176
176
|
<div class="discussion">
|
177
177
|
constructor method!
|
178
178
|
|
179
179
|
</div>
|
180
180
|
</div>
|
181
181
|
<div class="tags">
|
182
|
-
|
182
|
+
|
183
183
|
</div><table class="source_code">
|
184
184
|
<tr>
|
185
185
|
<td>
|
@@ -196,30 +196,30 @@ def initialize(test) end</pre>
|
|
196
196
|
</tr>
|
197
197
|
</table>
|
198
198
|
</div>
|
199
|
-
|
199
|
+
|
200
200
|
</div>
|
201
201
|
<div id="method_missing_details" class="method_details_list">
|
202
202
|
<h2>Dynamic Method Handling</h2>
|
203
203
|
<p class="notice this">
|
204
204
|
This class handles dynamic methods through the <tt>method_missing</tt> method
|
205
|
-
|
205
|
+
|
206
206
|
</p>
|
207
|
-
|
207
|
+
|
208
208
|
<div class="method_details first">
|
209
|
-
<
|
210
|
-
|
211
|
-
- <strong>method_missing</strong>(*args)
|
212
|
-
|
209
|
+
<h3 class="signature first" id="method_missing-instance_method">
|
210
|
+
|
211
|
+
- <strong>method_missing</strong>(*args)
|
213
212
|
|
214
|
-
|
215
|
-
|
213
|
+
|
214
|
+
|
215
|
+
</h3><div class="docstring">
|
216
216
|
<div class="discussion">
|
217
217
|
HI
|
218
218
|
|
219
219
|
</div>
|
220
220
|
</div>
|
221
221
|
<div class="tags">
|
222
|
-
|
222
|
+
|
223
223
|
</div><table class="source_code">
|
224
224
|
<tr>
|
225
225
|
<td>
|
@@ -236,22 +236,22 @@ def method_missing(*args) end</pre>
|
|
236
236
|
</tr>
|
237
237
|
</table>
|
238
238
|
</div>
|
239
|
-
|
239
|
+
|
240
240
|
</div>
|
241
241
|
|
242
242
|
|
243
243
|
<div id="instance_method_details" class="method_details_list">
|
244
244
|
<h2>Instance Method Details</h2>
|
245
|
-
|
246
|
-
|
245
|
+
|
246
|
+
|
247
247
|
<div class="method_details first">
|
248
|
-
<
|
249
|
-
|
250
|
-
- <strong>a</strong>
|
251
|
-
|
248
|
+
<h3 class="signature first" id="a-instance_method">
|
252
249
|
|
253
|
-
|
254
|
-
|
250
|
+
- <strong>a</strong>
|
251
|
+
|
252
|
+
|
253
|
+
|
254
|
+
</h3><div class="docstring">
|
255
255
|
<div class="discussion">
|
256
256
|
<div class="note deprecated"><strong>Deprecated.</strong> <div class='inline'></div></div>
|
257
257
|
|
@@ -259,7 +259,7 @@ def method_missing(*args) end</pre>
|
|
259
259
|
</div>
|
260
260
|
</div>
|
261
261
|
<div class="tags">
|
262
|
-
|
262
|
+
|
263
263
|
</div><table class="source_code">
|
264
264
|
<tr>
|
265
265
|
<td>
|
@@ -276,5 +276,5 @@ def a; end</pre>
|
|
276
276
|
</tr>
|
277
277
|
</table>
|
278
278
|
</div>
|
279
|
-
|
279
|
+
|
280
280
|
</div>
|