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/cli/stats_spec.rb
CHANGED
@@ -7,30 +7,30 @@ describe YARD::CLI::Stats do
|
|
7
7
|
YARD.parse_string <<-eof
|
8
8
|
class A
|
9
9
|
CONST = 1
|
10
|
-
|
10
|
+
|
11
11
|
def foo; end
|
12
|
-
|
12
|
+
|
13
13
|
# Documented
|
14
14
|
def bar; end
|
15
15
|
end
|
16
16
|
module B; end
|
17
17
|
eof
|
18
|
-
|
19
|
-
@main_stats =
|
18
|
+
|
19
|
+
@main_stats =
|
20
20
|
"Files: 1\n" +
|
21
21
|
"Modules: 1 ( 1 undocumented)\n" +
|
22
22
|
"Classes: 1 ( 1 undocumented)\n" +
|
23
23
|
"Constants: 1 ( 1 undocumented)\n" +
|
24
24
|
"Methods: 2 ( 1 undocumented)\n" +
|
25
25
|
" 20.00% documented\n"
|
26
|
-
|
26
|
+
|
27
27
|
@output = StringIO.new
|
28
28
|
@stats = CLI::Stats.new(false)
|
29
29
|
@stats.stub!(:support_rdoc_document_file!).and_return([])
|
30
30
|
@stats.stub!(:yardopts).and_return([])
|
31
31
|
@stats.stub!(:puts) {|*args| @output << args.join("\n") << "\n" }
|
32
32
|
end
|
33
|
-
|
33
|
+
|
34
34
|
it "should list undocumented objects with --list-undoc" do
|
35
35
|
@stats.run('--list-undoc')
|
36
36
|
@output.string.should == <<-eof
|
@@ -44,7 +44,7 @@ A::CONST
|
|
44
44
|
A#foo
|
45
45
|
eof
|
46
46
|
end
|
47
|
-
|
47
|
+
|
48
48
|
it "should list no undocumented objects with --list-undoc when objects are undocumented" do
|
49
49
|
Registry.clear
|
50
50
|
YARD.parse_string <<-eof
|
@@ -59,27 +59,27 @@ eof
|
|
59
59
|
"Methods: 1 ( 0 undocumented)\n" +
|
60
60
|
" 100.00% documented\n"
|
61
61
|
end
|
62
|
-
|
62
|
+
|
63
63
|
it "should list undocumented objects in compact mode with --list-undoc --compact" do
|
64
64
|
@stats.run('--list-undoc', '--compact')
|
65
65
|
@output.string.should == <<-eof
|
66
66
|
#{@main_stats}
|
67
67
|
Undocumented Objects:
|
68
|
-
B ((stdin))
|
69
|
-
A ((stdin))
|
70
|
-
A::CONST ((stdin))
|
71
|
-
A#foo ((stdin))
|
68
|
+
B ((stdin):9)
|
69
|
+
A ((stdin):1)
|
70
|
+
A::CONST ((stdin):2)
|
71
|
+
A#foo ((stdin):4)
|
72
72
|
eof
|
73
73
|
end
|
74
|
-
|
74
|
+
|
75
75
|
it "should still list stats with --quiet" do
|
76
76
|
@stats.run('--quiet')
|
77
77
|
@output.string.should == @main_stats
|
78
78
|
end
|
79
|
-
|
79
|
+
|
80
80
|
it "should not include public methods in stats with --no-public" do
|
81
81
|
@stats.run('--no-public')
|
82
|
-
@output.string.should ==
|
82
|
+
@output.string.should ==
|
83
83
|
"Files: 1\n" +
|
84
84
|
"Modules: 1 ( 1 undocumented)\n" +
|
85
85
|
"Classes: 1 ( 1 undocumented)\n" +
|
data/spec/cli/yardoc_spec.rb
CHANGED
@@ -10,8 +10,10 @@ describe YARD::CLI::Yardoc do
|
|
10
10
|
Templates::Engine.stub!(:render)
|
11
11
|
Templates::Engine.stub!(:generate)
|
12
12
|
YARD.stub!(:parse)
|
13
|
+
Registry.stub!(:load)
|
14
|
+
Registry.stub!(:save)
|
13
15
|
end
|
14
|
-
|
16
|
+
|
15
17
|
describe 'Defaults' do
|
16
18
|
before do
|
17
19
|
@yardoc = CLI::Yardoc.new
|
@@ -19,71 +21,75 @@ describe YARD::CLI::Yardoc do
|
|
19
21
|
@yardoc.stub!(:support_rdoc_document_file!).and_return([])
|
20
22
|
@yardoc.parse_arguments
|
21
23
|
end
|
22
|
-
|
24
|
+
|
23
25
|
it "should use cache by default" do
|
24
26
|
@yardoc.use_cache.should == false
|
25
27
|
end
|
26
|
-
|
28
|
+
|
27
29
|
it "print statistics by default" do
|
28
30
|
@yardoc.statistics.should == true
|
29
31
|
end
|
30
|
-
|
32
|
+
|
31
33
|
it "should generate output by default" do
|
32
34
|
@yardoc.generate.should == true
|
33
35
|
end
|
34
|
-
|
36
|
+
|
35
37
|
it "should read .yardopts by default" do
|
36
38
|
@yardoc.use_yardopts_file.should == true
|
37
39
|
end
|
38
|
-
|
40
|
+
|
39
41
|
it "should read .document by default" do
|
40
42
|
@yardoc.use_document_file.should == true
|
41
43
|
end
|
42
|
-
|
44
|
+
|
43
45
|
it "should use {lib,app}/**/*.rb and ext/**/*.c as default file glob" do
|
44
46
|
@yardoc.files.should == ['{lib,app}/**/*.rb', 'ext/**/*.c']
|
45
47
|
end
|
46
|
-
|
48
|
+
|
47
49
|
it "should use rdoc as default markup type (but falls back on none)" do
|
48
|
-
@yardoc.options
|
50
|
+
@yardoc.options.markup.should == :rdoc
|
49
51
|
end
|
50
|
-
|
52
|
+
|
51
53
|
it "should use default as default template" do
|
52
|
-
@yardoc.options
|
54
|
+
@yardoc.options.template.should == :default
|
53
55
|
end
|
54
|
-
|
56
|
+
|
55
57
|
it "should use HTML as default format" do
|
56
|
-
@yardoc.options
|
58
|
+
@yardoc.options.format.should == :html
|
57
59
|
end
|
58
|
-
|
60
|
+
|
59
61
|
it "should use 'Object' as default return type" do
|
60
|
-
@yardoc.options
|
62
|
+
@yardoc.options.default_return.should == 'Object'
|
61
63
|
end
|
62
|
-
|
64
|
+
|
63
65
|
it "should not hide void return types by default" do
|
64
|
-
@yardoc.options
|
66
|
+
@yardoc.options.hide_void_return.should == false
|
65
67
|
end
|
66
|
-
|
68
|
+
|
67
69
|
it "should only show public visibility by default" do
|
68
70
|
@yardoc.visibilities.should == [:public]
|
69
71
|
end
|
70
|
-
|
72
|
+
|
71
73
|
it "should not list objects by default" do
|
72
74
|
@yardoc.list.should == false
|
73
75
|
end
|
76
|
+
|
77
|
+
it "should not embed mixins by default" do
|
78
|
+
@yardoc.options.embed_mixins.should be_empty
|
79
|
+
end
|
74
80
|
end
|
75
|
-
|
81
|
+
|
76
82
|
describe 'General options' do
|
77
83
|
def self.should_accept(*args, &block)
|
78
84
|
@counter ||= 0
|
79
85
|
@counter += 1
|
80
86
|
counter = @counter
|
81
|
-
args.each do |arg|
|
87
|
+
args.each do |arg|
|
82
88
|
define_method("test_options_#{@counter}", &block)
|
83
89
|
it("should accept #{arg}") { send("test_options_#{counter}", arg) }
|
84
90
|
end
|
85
91
|
end
|
86
|
-
|
92
|
+
|
87
93
|
should_accept('--single-db') do |arg|
|
88
94
|
@yardoc.parse_arguments(arg)
|
89
95
|
Registry.single_object_db.should == true
|
@@ -95,17 +101,17 @@ describe YARD::CLI::Yardoc do
|
|
95
101
|
Registry.single_object_db.should == false
|
96
102
|
Registry.single_object_db = nil
|
97
103
|
end
|
98
|
-
|
104
|
+
|
99
105
|
should_accept('-c', '--use-cache') do |arg|
|
100
106
|
@yardoc.parse_arguments(arg)
|
101
107
|
@yardoc.use_cache.should == true
|
102
108
|
end
|
103
|
-
|
109
|
+
|
104
110
|
should_accept('--no-cache') do |arg|
|
105
111
|
@yardoc.parse_arguments(arg)
|
106
112
|
@yardoc.use_cache.should == false
|
107
113
|
end
|
108
|
-
|
114
|
+
|
109
115
|
should_accept('--yardopts') do |arg|
|
110
116
|
@yardoc = CLI::Yardoc.new
|
111
117
|
@yardoc.use_document_file = false
|
@@ -150,34 +156,34 @@ describe YARD::CLI::Yardoc do
|
|
150
156
|
@yardoc.parse_arguments('--document', arg)
|
151
157
|
@yardoc.use_document_file.should == false
|
152
158
|
end
|
153
|
-
|
159
|
+
|
154
160
|
should_accept('-b', '--db') do |arg|
|
155
161
|
@yardoc.parse_arguments(arg, 'test')
|
156
162
|
Registry.yardoc_file.should == 'test'
|
157
163
|
Registry.yardoc_file = '.yardoc'
|
158
164
|
end
|
159
|
-
|
165
|
+
|
160
166
|
should_accept('-n', '--no-output') do |arg|
|
161
167
|
Templates::Engine.should_not_receive(:generate)
|
162
168
|
@yardoc.run(arg)
|
163
169
|
end
|
164
|
-
|
170
|
+
|
165
171
|
should_accept('--exclude') do |arg|
|
166
172
|
YARD.should_receive(:parse).with(['a'], ['nota', 'b'])
|
167
173
|
@yardoc.run(arg, 'nota', arg, 'b', 'a')
|
168
174
|
end
|
169
|
-
|
175
|
+
|
170
176
|
should_accept('--no-save') do |arg|
|
171
177
|
YARD.should_receive(:parse)
|
172
178
|
Registry.should_not_receive(:save)
|
173
179
|
@yardoc.run(arg)
|
174
180
|
end
|
175
181
|
end
|
176
|
-
|
182
|
+
|
177
183
|
describe 'Output options' do
|
178
184
|
it "should accept --title" do
|
179
185
|
@yardoc.parse_arguments('--title', 'hello world')
|
180
|
-
@yardoc.options
|
186
|
+
@yardoc.options.title.should == 'hello world'
|
181
187
|
end
|
182
188
|
|
183
189
|
it "should allow --title to have multiple spaces in .yardopts" do
|
@@ -185,38 +191,48 @@ describe YARD::CLI::Yardoc do
|
|
185
191
|
@yardoc.options_file = "test"
|
186
192
|
@yardoc.use_yardopts_file = true
|
187
193
|
@yardoc.run
|
188
|
-
@yardoc.options
|
194
|
+
@yardoc.options.title.should == "Foo Bar"
|
189
195
|
end
|
190
196
|
|
191
197
|
it "should alias --main to the --readme flag" do
|
192
198
|
readme = File.join(File.dirname(__FILE__),'..','..','README.md')
|
193
199
|
|
194
200
|
@yardoc.parse_arguments('--main', readme)
|
195
|
-
@yardoc.options
|
201
|
+
@yardoc.options.readme.should == CodeObjects::ExtraFileObject.new(readme, '')
|
196
202
|
end
|
197
203
|
|
198
204
|
it "should select a markup provider when --markup-provider or -mp is set" do
|
199
205
|
@yardoc.parse_arguments("-M", "test")
|
200
|
-
@yardoc.options
|
206
|
+
@yardoc.options.markup_provider.should == :test
|
201
207
|
@yardoc.parse_arguments("--markup-provider", "test2")
|
202
|
-
@yardoc.options
|
208
|
+
@yardoc.options.markup_provider.should == :test2
|
203
209
|
end
|
204
|
-
|
210
|
+
|
205
211
|
it "should select a markup format when -m is set" do
|
206
212
|
@yardoc.should_receive(:verify_markup_options).and_return(true)
|
207
213
|
@yardoc.generate = true
|
208
214
|
@yardoc.parse_arguments('-m', 'markdown')
|
209
|
-
@yardoc.options
|
215
|
+
@yardoc.options.markup.should == :markdown
|
210
216
|
end
|
211
217
|
|
212
218
|
it "should accept --default-return" do
|
213
219
|
@yardoc.parse_arguments *%w( --default-return XYZ )
|
214
|
-
@yardoc.options
|
220
|
+
@yardoc.options.default_return.should == "XYZ"
|
215
221
|
end
|
216
222
|
|
217
223
|
it "should allow --hide-void-return to be set" do
|
218
224
|
@yardoc.parse_arguments *%w( --hide-void-return )
|
219
|
-
@yardoc.options
|
225
|
+
@yardoc.options.hide_void_return.should be_true
|
226
|
+
end
|
227
|
+
|
228
|
+
it "should accept --embed-mixins" do
|
229
|
+
@yardoc.parse_arguments *%w( --embed-mixins )
|
230
|
+
@yardoc.options.embed_mixins.should == ['*']
|
231
|
+
end
|
232
|
+
|
233
|
+
it "should accept --embed-mixin MODULE" do
|
234
|
+
@yardoc.parse_arguments *%w( --embed-mixin MyModule )
|
235
|
+
@yardoc.options.embed_mixins.should == ['MyModule']
|
220
236
|
end
|
221
237
|
|
222
238
|
it "should generate all objects with --use-cache" do
|
@@ -232,13 +248,13 @@ describe YARD::CLI::Yardoc do
|
|
232
248
|
CLI::Stats.should_not_receive(:new)
|
233
249
|
@yardoc.run *%w( --no-stats )
|
234
250
|
end
|
235
|
-
|
251
|
+
|
236
252
|
describe '--asset' do
|
237
253
|
before do
|
238
254
|
@yardoc.generate = true
|
239
255
|
@yardoc.stub!(:run_generate)
|
240
256
|
end
|
241
|
-
|
257
|
+
|
242
258
|
it "should copy assets to output directory" do
|
243
259
|
FileUtils.should_receive(:cp_r).with('a', 'doc/a')
|
244
260
|
@yardoc.run *%w( --asset a )
|
@@ -269,14 +285,14 @@ describe YARD::CLI::Yardoc do
|
|
269
285
|
@yardoc.run *%w( --asset foo:bar )
|
270
286
|
@yardoc.assets.should == {'foo' => 'bar'}
|
271
287
|
end
|
272
|
-
|
288
|
+
|
273
289
|
it "should not put from inside of to/ if from is a directory" do
|
274
290
|
begin
|
275
291
|
from = 'tmp_foo'
|
276
292
|
to = 'tmp_bar'
|
277
293
|
full_to = File.join(File.dirname(__FILE__), to)
|
278
294
|
FileUtils.mkdir_p(from)
|
279
|
-
@yardoc.options
|
295
|
+
@yardoc.options.serializer.basepath = File.dirname(__FILE__)
|
280
296
|
@yardoc.run("--asset", "#{from}:#{to}")
|
281
297
|
@yardoc.run("--asset", "#{from}:#{to}")
|
282
298
|
File.directory?(full_to).should be_true
|
@@ -288,24 +304,24 @@ describe YARD::CLI::Yardoc do
|
|
288
304
|
end
|
289
305
|
end
|
290
306
|
end
|
291
|
-
|
307
|
+
|
292
308
|
describe '--no-private option' do
|
293
309
|
it "should accept --no-private" do
|
294
310
|
obj = mock(:object)
|
295
311
|
obj.should_receive(:tag).ordered.with(:private).and_return(true)
|
296
312
|
@yardoc.parse_arguments *%w( --no-private )
|
297
|
-
@yardoc.options
|
313
|
+
@yardoc.options.verifier.call(obj).should == false
|
298
314
|
end
|
299
315
|
|
300
316
|
it "should hide object if namespace is @private with --no-private" do
|
301
317
|
ns = mock(:namespace)
|
302
318
|
ns.stub!(:type).and_return(:module)
|
303
|
-
ns.should_receive(:tag).
|
319
|
+
ns.should_receive(:tag).with(:private).and_return(true)
|
304
320
|
obj = mock(:object)
|
305
321
|
obj.stub!(:namespace).and_return(ns)
|
306
|
-
obj.should_receive(:tag).
|
322
|
+
obj.should_receive(:tag).with(:private).and_return(false)
|
307
323
|
@yardoc.parse_arguments *%w( --no-private )
|
308
|
-
@yardoc.options
|
324
|
+
@yardoc.options.verifier.call(obj).should == false
|
309
325
|
end
|
310
326
|
|
311
327
|
it "should not call #tag on namespace if namespace is proxy with --no-private" do
|
@@ -318,7 +334,7 @@ describe YARD::CLI::Yardoc do
|
|
318
334
|
obj.stub!(:visibility).and_return(:public)
|
319
335
|
obj.should_receive(:tag).ordered.with(:private).and_return(false)
|
320
336
|
@yardoc.parse_arguments *%w( --no-private )
|
321
|
-
@yardoc.options
|
337
|
+
@yardoc.options.verifier.call(obj).should == true
|
322
338
|
end
|
323
339
|
|
324
340
|
# @bug gh-197
|
@@ -328,12 +344,12 @@ describe YARD::CLI::Yardoc do
|
|
328
344
|
foobar = Registry.at('Foo::Bar')
|
329
345
|
foobar.namespace.type = :module
|
330
346
|
@yardoc.parse_arguments *%w( --no-private )
|
331
|
-
@yardoc.options
|
347
|
+
@yardoc.options.verifier.call(foobar).should == true
|
332
348
|
end
|
333
|
-
|
349
|
+
|
334
350
|
it "should not call #tag on proxy object" do # @bug gh-197
|
335
351
|
@yardoc.parse_arguments *%w( --no-private )
|
336
|
-
@yardoc.options
|
352
|
+
@yardoc.options.verifier.call(P('ProxyClass')).should == true
|
337
353
|
end
|
338
354
|
|
339
355
|
it "should hide methods inside a 'private' class/module with --no-private" do
|
@@ -345,22 +361,22 @@ describe YARD::CLI::Yardoc do
|
|
345
361
|
end
|
346
362
|
eof
|
347
363
|
@yardoc.parse_arguments *%w( --no-private )
|
348
|
-
@yardoc.options
|
349
|
-
@yardoc.options
|
364
|
+
@yardoc.options.verifier.call(Registry.at('ABC')).should be_false
|
365
|
+
@yardoc.options.verifier.call(Registry.at('ABC#foo')).should be_false
|
350
366
|
end
|
351
367
|
end
|
352
|
-
|
368
|
+
|
353
369
|
describe '.yardopts and .document handling' do
|
354
370
|
before do
|
355
371
|
@yardoc.use_yardopts_file = true
|
356
372
|
end
|
357
|
-
|
373
|
+
|
358
374
|
it "should search for and use yardopts file specified by #options_file" do
|
359
375
|
File.should_receive(:read_binary).with("test").and_return("-o \n\nMYPATH\nFILE1 FILE2")
|
360
376
|
@yardoc.use_document_file = false
|
361
377
|
@yardoc.options_file = "test"
|
362
378
|
@yardoc.run
|
363
|
-
@yardoc.options
|
379
|
+
@yardoc.options.serializer.options[:basepath].should == "MYPATH"
|
364
380
|
@yardoc.files.should == ["FILE1", "FILE2"]
|
365
381
|
end
|
366
382
|
|
@@ -375,7 +391,7 @@ describe YARD::CLI::Yardoc do
|
|
375
391
|
it "should allow opts specified in command line to override yardopts file" do
|
376
392
|
File.should_receive(:read_binary).with(".yardopts").and_return("-o NOTMYPATH")
|
377
393
|
@yardoc.run("-o", "MYPATH", "FILE")
|
378
|
-
@yardoc.options
|
394
|
+
@yardoc.options.serializer.options[:basepath].should == "MYPATH"
|
379
395
|
@yardoc.files.should == ["FILE"]
|
380
396
|
end
|
381
397
|
|
@@ -384,28 +400,28 @@ describe YARD::CLI::Yardoc do
|
|
384
400
|
@yardoc.use_document_file = true
|
385
401
|
@yardoc.stub!(:support_rdoc_document_file!).and_return(["FILE2", "FILE3"])
|
386
402
|
@yardoc.run("-o", "MYPATH", "FILE1")
|
387
|
-
@yardoc.options
|
403
|
+
@yardoc.options.serializer.options[:basepath].should == "MYPATH"
|
388
404
|
@yardoc.files.should == ["FILE2", "FILE3", "FILE1"]
|
389
405
|
end
|
390
406
|
end
|
391
|
-
|
407
|
+
|
392
408
|
describe 'Query options' do
|
393
409
|
before do
|
394
410
|
Registry.clear
|
395
411
|
end
|
396
|
-
|
412
|
+
|
397
413
|
it "should setup visibility rules as verifier" do
|
398
414
|
methobj = CodeObjects::MethodObject.new(:root, :test) {|o| o.visibility = :private }
|
399
415
|
File.should_receive(:read_binary).with("test").and_return("--private")
|
400
416
|
@yardoc.use_yardopts_file = true
|
401
417
|
@yardoc.options_file = "test"
|
402
418
|
@yardoc.run
|
403
|
-
@yardoc.options
|
419
|
+
@yardoc.options.verifier.call(methobj).should be_true
|
404
420
|
end
|
405
421
|
|
406
422
|
it "should accept a --query" do
|
407
423
|
@yardoc.parse_arguments *%w( --query @return )
|
408
|
-
@yardoc.options
|
424
|
+
@yardoc.options.verifier.should be_a(Verifier)
|
409
425
|
end
|
410
426
|
|
411
427
|
it "should accept multiple --query arguments" do
|
@@ -413,11 +429,11 @@ describe YARD::CLI::Yardoc do
|
|
413
429
|
obj.should_receive(:tag).ordered.with('return').and_return(true)
|
414
430
|
obj.should_receive(:tag).ordered.with('tag').and_return(false)
|
415
431
|
@yardoc.parse_arguments *%w( --query @return --query @tag )
|
416
|
-
@yardoc.options
|
417
|
-
@yardoc.options
|
432
|
+
@yardoc.options.verifier.should be_a(Verifier)
|
433
|
+
@yardoc.options.verifier.call(obj).should == false
|
418
434
|
end
|
419
435
|
end
|
420
|
-
|
436
|
+
|
421
437
|
describe 'Extra file arguments' do
|
422
438
|
it "should accept extra files if specified after '-' with source files" do
|
423
439
|
Dir.should_receive(:glob).with('README*').and_return([])
|
@@ -427,8 +443,8 @@ describe YARD::CLI::Yardoc do
|
|
427
443
|
File.should_receive(:read).with('extra_file2').and_return('')
|
428
444
|
@yardoc.parse_arguments *%w( file1 file2 - extra_file1 extra_file2 )
|
429
445
|
@yardoc.files.should == %w( file1 file2 )
|
430
|
-
@yardoc.options
|
431
|
-
[CodeObjects::ExtraFileObject.new('extra_file1', ''),
|
446
|
+
@yardoc.options.files.should ==
|
447
|
+
[CodeObjects::ExtraFileObject.new('extra_file1', ''),
|
432
448
|
CodeObjects::ExtraFileObject.new('extra_file2', '')]
|
433
449
|
end
|
434
450
|
|
@@ -436,7 +452,7 @@ describe YARD::CLI::Yardoc do
|
|
436
452
|
Dir.should_receive(:glob).with('README*').and_return([])
|
437
453
|
@yardoc.parse_arguments *%w( - LICENSE )
|
438
454
|
@yardoc.files.should == %w( {lib,app}/**/*.rb ext/**/*.c )
|
439
|
-
@yardoc.options
|
455
|
+
@yardoc.options.files.should == [CodeObjects::ExtraFileObject.new('LICENSE', '')]
|
440
456
|
end
|
441
457
|
|
442
458
|
it "should accept globs as extra files" do
|
@@ -448,8 +464,8 @@ describe YARD::CLI::Yardoc do
|
|
448
464
|
File.should_receive(:file?).with('b.txt').and_return(true)
|
449
465
|
@yardoc.parse_arguments *%w( file1 file2 - *.txt )
|
450
466
|
@yardoc.files.should == %w( file1 file2 )
|
451
|
-
@yardoc.options
|
452
|
-
[CodeObjects::ExtraFileObject.new('a.txt', ''),
|
467
|
+
@yardoc.options.files.should ==
|
468
|
+
[CodeObjects::ExtraFileObject.new('a.txt', ''),
|
453
469
|
CodeObjects::ExtraFileObject.new('b.txt', '')]
|
454
470
|
end
|
455
471
|
|
@@ -462,30 +478,41 @@ describe YARD::CLI::Yardoc do
|
|
462
478
|
log.should_receive(:warn).with(/Could not find readme file: UNKNOWN/)
|
463
479
|
@yardoc.parse_arguments *%w( -r UNKNOWN )
|
464
480
|
end
|
465
|
-
|
481
|
+
|
466
482
|
it "should use first file as readme if no readme is specified when using --one-file" do
|
467
483
|
Dir.should_receive(:glob).with('README*').and_return []
|
468
484
|
Dir.should_receive(:glob).with('lib/*.rb').and_return(['lib/foo.rb'])
|
469
485
|
File.should_receive(:read).with('lib/foo.rb').and_return('')
|
470
486
|
@yardoc.parse_arguments *%w( --one-file lib/*.rb )
|
471
|
-
@yardoc.options
|
487
|
+
@yardoc.options.readme.should == CodeObjects::ExtraFileObject.new('lib/foo.rb', '')
|
472
488
|
end
|
473
|
-
|
489
|
+
|
474
490
|
it "should use readme it exists when using --one-file" do
|
475
491
|
Dir.should_receive(:glob).with('README*').and_return ['README']
|
476
492
|
File.should_receive(:read).with('README').and_return('')
|
477
493
|
@yardoc.parse_arguments *%w( --one-file lib/*.rb )
|
478
|
-
@yardoc.options
|
479
|
-
end
|
494
|
+
@yardoc.options.readme.should == CodeObjects::ExtraFileObject.new('README', '')
|
495
|
+
end
|
496
|
+
|
497
|
+
it "should not allow US-ASCII charset when using --one-file" do
|
498
|
+
ienc = Encoding.default_internal
|
499
|
+
eenc = Encoding.default_external
|
500
|
+
log.should_receive(:warn).with(/not compatible with US-ASCII.*using ASCII-8BIT/)
|
501
|
+
@yardoc.parse_arguments *%w( --one-file --charset us-ascii )
|
502
|
+
Encoding.default_internal.name.should == 'ASCII-8BIT'
|
503
|
+
Encoding.default_external.name.should == 'ASCII-8BIT'
|
504
|
+
Encoding.default_internal = ienc
|
505
|
+
Encoding.default_external = eenc
|
506
|
+
end if defined?(::Encoding)
|
480
507
|
end
|
481
|
-
|
508
|
+
|
482
509
|
describe 'Source file arguments' do
|
483
510
|
it "should accept no params and parse {lib,app}/**/*.rb ext/**/*.c" do
|
484
511
|
@yardoc.parse_arguments
|
485
512
|
@yardoc.files.should == %w( {lib,app}/**/*.rb ext/**/*.c )
|
486
513
|
end
|
487
514
|
end
|
488
|
-
|
515
|
+
|
489
516
|
describe 'Tags options' do
|
490
517
|
def tag_created(switch, factory_method)
|
491
518
|
visible_tags = mock(:visible_tags)
|
@@ -496,7 +523,7 @@ describe YARD::CLI::Yardoc do
|
|
496
523
|
Tags::Library.should_receive(:visible_tags).at_least(1).times.and_return(visible_tags)
|
497
524
|
@yardoc.parse_arguments("--#{switch}-tag", 'foo')
|
498
525
|
end
|
499
|
-
|
526
|
+
|
500
527
|
def tag_hidden(tag)
|
501
528
|
visible_tags = mock(:visible_tags)
|
502
529
|
visible_tags.should_receive(:|).ordered.with([tag])
|
@@ -515,7 +542,7 @@ describe YARD::CLI::Yardoc do
|
|
515
542
|
Tags::Library.should_receive(:define_tag).with('Foo', :foo, nil)
|
516
543
|
@yardoc.parse_arguments('--tag', 'foo')
|
517
544
|
end
|
518
|
-
|
545
|
+
|
519
546
|
it "should only list tag once if declared twice" do
|
520
547
|
visible_tags = []
|
521
548
|
Tags::Library.stub!(:define_tag)
|
@@ -540,28 +567,28 @@ describe YARD::CLI::Yardoc do
|
|
540
567
|
it "should accept --title-tag" do
|
541
568
|
tag_created 'title', :with_title_and_text
|
542
569
|
end
|
543
|
-
|
570
|
+
|
544
571
|
it "should accept --hide-tag before tag is listed" do
|
545
572
|
tag_hidden(:anewfoo)
|
546
573
|
@yardoc.parse_arguments('--hide-tag', 'anewfoo', '--tag', 'anewfoo')
|
547
574
|
end
|
548
|
-
|
575
|
+
|
549
576
|
it "should accept --hide-tag after tag is listed" do
|
550
577
|
tag_hidden(:anewfoo2)
|
551
578
|
@yardoc.parse_arguments('--tag', 'anewfoo2', '--hide-tag', 'anewfoo2')
|
552
579
|
end
|
553
|
-
|
580
|
+
|
554
581
|
it "should accept --transitive-tag" do
|
555
582
|
@yardoc.parse_arguments('--transitive-tag', 'foo')
|
556
583
|
Tags::Library.transitive_tags.should include(:foo)
|
557
584
|
end
|
558
585
|
end
|
559
|
-
|
586
|
+
|
560
587
|
describe 'Safe mode' do
|
561
588
|
before do
|
562
589
|
YARD::Config.stub!(:options).and_return(:safe_mode => true)
|
563
590
|
end
|
564
|
-
|
591
|
+
|
565
592
|
it "should not allow --load or -e in safe mode" do
|
566
593
|
@yardoc.should_not_receive(:require)
|
567
594
|
@yardoc.run('--load', 'foo')
|
@@ -570,36 +597,36 @@ describe YARD::CLI::Yardoc do
|
|
570
597
|
|
571
598
|
it "should not allow --query in safe mode" do
|
572
599
|
@yardoc.run('--query', 'foo')
|
573
|
-
@yardoc.options
|
600
|
+
@yardoc.options.verifier.expressions.should_not include("foo")
|
574
601
|
end
|
575
|
-
|
602
|
+
|
576
603
|
it "should not allow modifying the template paths" do
|
577
604
|
YARD::Templates::Engine.should_not_receive(:register_template_path)
|
578
605
|
@yardoc.run('-p', 'foo')
|
579
606
|
@yardoc.run('--template-path', 'foo')
|
580
607
|
end
|
581
608
|
end
|
582
|
-
|
609
|
+
|
583
610
|
describe 'Markup Loading' do
|
584
611
|
it "should load rdoc markup if no markup is provided" do
|
585
612
|
@yardoc.generate = true
|
586
613
|
@yardoc.run
|
587
|
-
@yardoc.options
|
614
|
+
@yardoc.options.markup.should == :rdoc
|
588
615
|
end
|
589
|
-
|
616
|
+
|
590
617
|
it "should load rdoc markup even when no output is specified" do
|
591
618
|
@yardoc.parse_arguments('--no-output')
|
592
|
-
@yardoc.options
|
619
|
+
@yardoc.options.markup.should == :rdoc
|
593
620
|
end
|
594
|
-
|
621
|
+
|
595
622
|
it "should warn if rdoc cannot be loaded and fallback to :none" do
|
596
623
|
mod = YARD::Templates::Helpers::MarkupHelper
|
597
624
|
mod.clear_markup_cache
|
598
625
|
mod.const_get(:MARKUP_PROVIDERS).should_receive(:[]).with(:rdoc).and_return([{:lib => 'INVALID'}])
|
599
626
|
log.should_receive(:warn).with(/Could not load default RDoc formatter/)
|
600
|
-
@yardoc.stub(:generate) { @yardoc.options
|
627
|
+
@yardoc.stub(:generate) { @yardoc.options.files = []; true }
|
601
628
|
@yardoc.run
|
602
|
-
@yardoc.options
|
629
|
+
@yardoc.options.markup.should == :none
|
603
630
|
mod.clear_markup_cache
|
604
631
|
end
|
605
632
|
|
@@ -609,7 +636,7 @@ describe YARD::CLI::Yardoc do
|
|
609
636
|
mod.const_get(:MARKUP_PROVIDERS).should_receive(:[]).with(:markdown).and_return([{:lib => 'INVALID'}])
|
610
637
|
log.should_receive(:error).with(/Missing 'INVALID' gem for Markdown formatting/)
|
611
638
|
files = [CodeObjects::ExtraFileObject.new('test.md', '')]
|
612
|
-
@yardoc.stub(:generate) { @yardoc.options
|
639
|
+
@yardoc.stub(:generate) { @yardoc.options.files = files; true }
|
613
640
|
@yardoc.run
|
614
641
|
mod.clear_markup_cache
|
615
642
|
end
|
@@ -620,12 +647,12 @@ describe YARD::CLI::Yardoc do
|
|
620
647
|
mod.const_get(:MARKUP_PROVIDERS).should_receive(:[]).with(:markdown).and_return([{:lib => 'INVALID'}])
|
621
648
|
log.should_receive(:error).with(/Missing 'INVALID' gem for Markdown formatting/)
|
622
649
|
files = [CodeObjects::ExtraFileObject.new('test', '# @markup markdown')]
|
623
|
-
@yardoc.stub(:generate) { @yardoc.options
|
650
|
+
@yardoc.stub(:generate) { @yardoc.options.files = files; true }
|
624
651
|
@yardoc.run
|
625
652
|
mod.clear_markup_cache
|
626
653
|
end
|
627
654
|
end
|
628
|
-
|
655
|
+
|
629
656
|
describe '#run' do
|
630
657
|
it "should parse_arguments if run() is called" do
|
631
658
|
@yardoc.should_receive(:parse_arguments)
|