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
@@ -7,7 +7,7 @@ describe YARD::Serializers::FileSystemSerializer do
|
|
7
7
|
FileUtils.stub!(:mkdir_p)
|
8
8
|
File.stub!(:open)
|
9
9
|
end
|
10
|
-
|
10
|
+
|
11
11
|
describe '#basepath' do
|
12
12
|
it "should default the base path to the 'doc/'" do
|
13
13
|
obj = Serializers::FileSystemSerializer.new
|
@@ -21,7 +21,7 @@ describe YARD::Serializers::FileSystemSerializer do
|
|
21
21
|
obj.extension.should == "html"
|
22
22
|
end
|
23
23
|
end
|
24
|
-
|
24
|
+
|
25
25
|
describe '#serialized_path' do
|
26
26
|
it "should allow no extension to be used" do
|
27
27
|
obj = Serializers::FileSystemSerializer.new :extension => nil
|
@@ -38,17 +38,17 @@ describe YARD::Serializers::FileSystemSerializer do
|
|
38
38
|
s = Serializers::FileSystemSerializer.new(:basepath => 'foo', :extension => 'txt')
|
39
39
|
s.serialized_path('test.txt').should == 'test.txt'
|
40
40
|
end
|
41
|
-
|
41
|
+
|
42
42
|
it "should remove special chars from path" do
|
43
43
|
m = CodeObjects::MethodObject.new(nil, 'a')
|
44
44
|
s = Serializers::FileSystemSerializer.new
|
45
45
|
|
46
46
|
{ :/ => '_2F_i.html',
|
47
|
-
:gsub! => 'gsub_21_i.html',
|
48
|
-
:ask? => 'ask_3F_i.html',
|
49
|
-
:=== => '_3D_3D_3D_i.html',
|
50
|
-
:+ => '_2B_i.html',
|
51
|
-
:- => '-_i.html',
|
47
|
+
:gsub! => 'gsub_21_i.html',
|
48
|
+
:ask? => 'ask_3F_i.html',
|
49
|
+
:=== => '_3D_3D_3D_i.html',
|
50
|
+
:+ => '_2B_i.html',
|
51
|
+
:- => '-_i.html',
|
52
52
|
:[]= => '_5B_5D_3D_i.html',
|
53
53
|
:<< => '_3C_3C_i.html',
|
54
54
|
:>= => '_3E_3D_i.html',
|
@@ -63,7 +63,7 @@ describe YARD::Serializers::FileSystemSerializer do
|
|
63
63
|
s.serialized_path(m).should == value
|
64
64
|
end
|
65
65
|
end
|
66
|
-
|
66
|
+
|
67
67
|
it "should handle ExtraFileObject's" do
|
68
68
|
s = Serializers::FileSystemSerializer.new
|
69
69
|
e = CodeObjects::ExtraFileObject.new('filename.txt', '')
|
@@ -76,7 +76,7 @@ describe YARD::Serializers::FileSystemSerializer do
|
|
76
76
|
m2 = CodeObjects::MethodObject.new(nil, 'meth', :class)
|
77
77
|
s.serialized_path(m1).should_not == s.serialized_path(m2)
|
78
78
|
end
|
79
|
-
|
79
|
+
|
80
80
|
it "should serialize path from overload tag" do
|
81
81
|
YARD.parse_string <<-'eof'
|
82
82
|
class Foo
|
@@ -84,13 +84,13 @@ describe YARD::Serializers::FileSystemSerializer do
|
|
84
84
|
def bar; end
|
85
85
|
end
|
86
86
|
eof
|
87
|
-
|
87
|
+
|
88
88
|
serializer = Serializers::FileSystemSerializer.new
|
89
89
|
object = Registry.at('Foo#bar').tag(:overload)
|
90
90
|
serializer.serialized_path(object).should == "Foo/bar_i.html"
|
91
91
|
end
|
92
92
|
end
|
93
|
-
|
93
|
+
|
94
94
|
describe '#serialize' do
|
95
95
|
it "should serialize to the correct path" do
|
96
96
|
yard = CodeObjects::ClassObject.new(nil, :FooBar)
|
@@ -25,14 +25,14 @@ describe YARD::Serializers::YardocSerializer do
|
|
25
25
|
@foo.should == newfoo
|
26
26
|
newfoo.hash.should == @foo.hash
|
27
27
|
end
|
28
|
-
|
28
|
+
|
29
29
|
it "should maintain hash key equality when loading a dumped object" do
|
30
30
|
newfoo = @serializer.internal_dump(@foo)
|
31
31
|
{@foo => 1}.should have_key(newfoo)
|
32
32
|
{newfoo => 1}.should have_key(@foo)
|
33
33
|
end
|
34
34
|
end
|
35
|
-
|
35
|
+
|
36
36
|
describe '#serialize' do
|
37
37
|
it "should accept a hash of codeobjects (and write to root)" do
|
38
38
|
data = {:root => Registry.root}
|
data/spec/server/adapter_spec.rb
CHANGED
@@ -12,13 +12,13 @@ describe YARD::Server::Adapter do
|
|
12
12
|
a.libraries['yard'].should == [lib]
|
13
13
|
end
|
14
14
|
end
|
15
|
-
|
15
|
+
|
16
16
|
describe '#start' do
|
17
17
|
it "should not implement #start" do
|
18
18
|
lambda { Adapter.new({}).start }.should raise_error(NotImplementedError)
|
19
19
|
end
|
20
20
|
end
|
21
|
-
|
21
|
+
|
22
22
|
describe '.setup' do
|
23
23
|
it 'should add template paths and helpers' do
|
24
24
|
Adapter.setup
|
@@ -26,7 +26,7 @@ describe YARD::Server::Adapter do
|
|
26
26
|
Templates::Engine.template_paths.should include(YARD::ROOT + '/yard/server/templates')
|
27
27
|
end
|
28
28
|
end
|
29
|
-
|
29
|
+
|
30
30
|
describe '.shutdown' do
|
31
31
|
it 'should cleanup template paths and helpers' do
|
32
32
|
Adapter.setup
|
@@ -20,13 +20,13 @@ describe YARD::Server::Commands::Base do
|
|
20
20
|
@command.caching = false
|
21
21
|
@command.run
|
22
22
|
end
|
23
|
-
|
23
|
+
|
24
24
|
it "should require document root to cache" do
|
25
25
|
File.should_not_receive(:open)
|
26
26
|
@command.adapter.document_root = nil
|
27
27
|
@command.run
|
28
28
|
end
|
29
|
-
|
29
|
+
|
30
30
|
it "should cache to path/to/file.html and create directories" do
|
31
31
|
FileUtils.should_receive(:mkdir_p).with('/public/path/to')
|
32
32
|
File.should_receive(:open).with('/public/path/to/file.html', anything)
|
@@ -34,15 +34,15 @@ describe YARD::Server::Commands::Base do
|
|
34
34
|
@command.run
|
35
35
|
end
|
36
36
|
end
|
37
|
-
|
37
|
+
|
38
38
|
describe '#redirect' do
|
39
39
|
it "should return a valid redirection" do
|
40
40
|
cmd = MyProcCommand.new { redirect '/foo' }
|
41
|
-
cmd.call(mock_request('/foo')).should ==
|
41
|
+
cmd.call(mock_request('/foo')).should ==
|
42
42
|
[302, {"Content-Type" => "text/html", "Location" => "/foo"}, [""]]
|
43
43
|
end
|
44
44
|
end
|
45
|
-
|
45
|
+
|
46
46
|
describe '#call' do
|
47
47
|
it "should handle a NotFoundError and use message as body" do
|
48
48
|
cmd = MyProcCommand.new { raise NotFoundError, "hello world" }
|
@@ -64,20 +64,20 @@ describe YARD::Server::Commands::Base do
|
|
64
64
|
s.should == 404
|
65
65
|
b.should == ["Not found: /foo"]
|
66
66
|
end
|
67
|
-
|
67
|
+
|
68
68
|
it "should not override body if status is 404 and body is defined" do
|
69
69
|
cmd = MyProcCommand.new { self.body = "foo"; self.status = 404 }
|
70
70
|
s, h, b = *cmd.call(mock_request('/bar'))
|
71
71
|
s.should == 404
|
72
72
|
b.should == ['foo']
|
73
73
|
end
|
74
|
-
|
74
|
+
|
75
75
|
it "should handle body as Array" do
|
76
76
|
cmd = MyProcCommand.new { self.body = ['a', 'b', 'c'] }
|
77
77
|
s, h, b = *cmd.call(mock_request('/foo'))
|
78
78
|
b.should == %w(a b c)
|
79
79
|
end
|
80
|
-
|
80
|
+
|
81
81
|
it "should allow headers to be defined" do
|
82
82
|
cmd = MyProcCommand.new { self.headers['Foo'] = 'BAR' }
|
83
83
|
s, h, b = *cmd.call(mock_request('/foo'))
|
@@ -15,16 +15,16 @@ describe YARD::Server::Commands::LibraryCommand do
|
|
15
15
|
@cmd.library = @library
|
16
16
|
@cmd.stub!(:load_yardoc).and_return(nil)
|
17
17
|
end
|
18
|
-
|
18
|
+
|
19
19
|
def call
|
20
20
|
lambda { @cmd.call(@request) }.should raise_error(NotImplementedError)
|
21
21
|
end
|
22
|
-
|
22
|
+
|
23
23
|
describe "#call" do
|
24
24
|
it "should raise NotImplementedError" do
|
25
25
|
call
|
26
26
|
end
|
27
|
-
|
27
|
+
|
28
28
|
it "should set :rdoc as the default markup in incremental mode" do
|
29
29
|
@cmd.incremental = true
|
30
30
|
call
|
@@ -6,7 +6,7 @@ describe YARD::Server::Commands::StaticFileCommand do
|
|
6
6
|
adapter.document_root = '/c'
|
7
7
|
@cmd = StaticFileCommand.new(:adapter => adapter)
|
8
8
|
end
|
9
|
-
|
9
|
+
|
10
10
|
describe '#run' do
|
11
11
|
def run(path, status = nil, body = nil)
|
12
12
|
s, h, b = *@cmd.call(mock_request(path))
|
@@ -14,7 +14,7 @@ describe YARD::Server::Commands::StaticFileCommand do
|
|
14
14
|
status.should == s if status
|
15
15
|
[s, h, b]
|
16
16
|
end
|
17
|
-
|
17
|
+
|
18
18
|
it "should search through document root before static paths" do
|
19
19
|
File.should_receive(:exist?).with('/c/path/to/file.txt').ordered.and_return(false)
|
20
20
|
StaticFileCommand::STATIC_PATHS.reverse.each do |path|
|
@@ -22,7 +22,7 @@ describe YARD::Server::Commands::StaticFileCommand do
|
|
22
22
|
end
|
23
23
|
run '/path/to/file.txt'
|
24
24
|
end
|
25
|
-
|
25
|
+
|
26
26
|
it "should return file contents if found" do
|
27
27
|
path = File.join(StaticFileCommand::STATIC_PATHS.last, '/path/to/file.txt')
|
28
28
|
File.should_receive(:exist?).with('/c/path/to/file.txt').and_return(false)
|
@@ -30,7 +30,7 @@ describe YARD::Server::Commands::StaticFileCommand do
|
|
30
30
|
File.should_receive(:read).with(path).and_return('FOO')
|
31
31
|
run('/path/to/file.txt', 200, 'FOO')
|
32
32
|
end
|
33
|
-
|
33
|
+
|
34
34
|
it "should allow registering of new paths and use those before other static paths" do
|
35
35
|
Server.register_static_path '/foo'
|
36
36
|
path = '/foo/path/to/file.txt'
|
@@ -47,7 +47,7 @@ describe YARD::Server::Commands::StaticFileCommand do
|
|
47
47
|
File.should_receive(:read).with('/c/path/to/file.txt').and_return('FOO')
|
48
48
|
run('/c/path/to/file.txt', 200, 'FOO')
|
49
49
|
end
|
50
|
-
|
50
|
+
|
51
51
|
it "should return 404 if not found" do
|
52
52
|
File.should_receive(:exist?).with('/c/path/to/file.txt').ordered.and_return(false)
|
53
53
|
StaticFileCommand::STATIC_PATHS.reverse.each do |path|
|
@@ -55,14 +55,14 @@ describe YARD::Server::Commands::StaticFileCommand do
|
|
55
55
|
end
|
56
56
|
run('/path/to/file.txt', 404)
|
57
57
|
end
|
58
|
-
|
58
|
+
|
59
59
|
it "should return text/html for file with no extension" do
|
60
60
|
File.should_receive(:exist?).with('/c/file').and_return(true)
|
61
61
|
File.should_receive(:read).with('/c/file')
|
62
62
|
s, h, b = *run('/file')
|
63
63
|
h['Content-Type'].should == 'text/html'
|
64
64
|
end
|
65
|
-
|
65
|
+
|
66
66
|
{
|
67
67
|
"js" => "text/javascript",
|
68
68
|
"css" => "text/css",
|
@@ -41,7 +41,7 @@ describe YARD::Server::DocServerHelper do
|
|
41
41
|
@helper.url_for(P('A')).should == '/PREFIX/foo/bar/A'
|
42
42
|
end
|
43
43
|
end
|
44
|
-
|
44
|
+
|
45
45
|
describe '#url_for_file' do
|
46
46
|
it "should properly link file objects using file/ prefix" do
|
47
47
|
file = CodeObjects::ExtraFileObject.new('a/b/FooBar.md', '')
|
@@ -8,15 +8,15 @@ describe YARD::Server::DocServerSerializer do
|
|
8
8
|
end
|
9
9
|
|
10
10
|
after(:all) { Server::Adapter.shutdown }
|
11
|
-
|
11
|
+
|
12
12
|
it "should return '/PREFIX/library/toplevel' for root" do
|
13
13
|
@serializer.serialized_path(Registry.root).should == "toplevel"
|
14
14
|
end
|
15
|
-
|
15
|
+
|
16
16
|
it "should return /PREFIX/library/Object for Object in a library" do
|
17
17
|
@serializer.serialized_path(P('A::B::C')).should == 'A/B/C'
|
18
18
|
end
|
19
|
-
|
19
|
+
|
20
20
|
it "should link to instance method as Class:method" do
|
21
21
|
obj = CodeObjects::MethodObject.new(:root, :method)
|
22
22
|
@serializer.serialized_path(obj).should == 'toplevel:method'
|
@@ -26,17 +26,17 @@ describe YARD::Server::DocServerSerializer do
|
|
26
26
|
obj = CodeObjects::MethodObject.new(:root, :method, :class)
|
27
27
|
@serializer.serialized_path(obj).should == 'toplevel.method'
|
28
28
|
end
|
29
|
-
|
29
|
+
|
30
30
|
it "should link to anchor for constant" do
|
31
31
|
obj = CodeObjects::ConstantObject.new(:root, :FOO)
|
32
32
|
@serializer.serialized_path(obj).should == 'toplevel#FOO-constant'
|
33
33
|
end
|
34
|
-
|
34
|
+
|
35
35
|
it "should link to anchor for class variable" do
|
36
36
|
obj = CodeObjects::ClassVariableObject.new(:root, :@@foo)
|
37
37
|
@serializer.serialized_path(obj).should == 'toplevel#@@foo-classvariable'
|
38
38
|
end
|
39
|
-
|
39
|
+
|
40
40
|
it "should link files using file/ prefix" do
|
41
41
|
file = CodeObjects::ExtraFileObject.new('a/b/FooBar.md', '')
|
42
42
|
@serializer.serialized_path(file).should == 'file/FooBar'
|
@@ -6,13 +6,13 @@ describe "YARD::Server::RackMiddleware" do
|
|
6
6
|
@superapp = mock(:superapp)
|
7
7
|
@app = YARD::Server::RackMiddleware.new(@superapp, :libraries => {'foo' => [LibraryVersion.new('foo', nil)]})
|
8
8
|
end
|
9
|
-
|
9
|
+
|
10
10
|
after(:all) { YARD::Server::Adapter.shutdown }
|
11
|
-
|
11
|
+
|
12
12
|
it "should handle requests" do
|
13
13
|
@app.call(Rack::MockRequest.env_for('/'))[0].should == 200
|
14
14
|
end
|
15
|
-
|
15
|
+
|
16
16
|
it "should pass up to the next middleware on 404" do
|
17
17
|
@superapp.should_receive(:call).and_return([200, {}, ['OK']])
|
18
18
|
@app.call(Rack::MockRequest.env_for('/INVALID')).should == [200, {}, ['OK']]
|
data/spec/server/router_spec.rb
CHANGED
@@ -4,7 +4,7 @@ class MyRouterSpecRouter < Router
|
|
4
4
|
def docs_prefix; 'mydocs/foo' end
|
5
5
|
def list_prefix; 'mylist/foo' end
|
6
6
|
def search_prefix; 'mysearch/foo' end
|
7
|
-
|
7
|
+
|
8
8
|
def check_static_cache; nil end
|
9
9
|
end
|
10
10
|
|
@@ -22,12 +22,12 @@ describe YARD::Server::Router do
|
|
22
22
|
@router.request = @request
|
23
23
|
@router.parse_library_from_path(args.flatten)
|
24
24
|
end
|
25
|
-
|
25
|
+
|
26
26
|
it "should parse library and version name out of path" do
|
27
27
|
parse('project', '1.0.0').should == [@projects[0], []]
|
28
28
|
@request.version_supplied.should be_true
|
29
29
|
end
|
30
|
-
|
30
|
+
|
31
31
|
it "should parse library and use latest version if version is not supplied" do
|
32
32
|
parse('project').should == [@projects[1], []]
|
33
33
|
@request.version_supplied.should be_false
|
@@ -37,17 +37,17 @@ describe YARD::Server::Router do
|
|
37
37
|
parse('project', 'notaversion').should == [@projects[1], ['notaversion']]
|
38
38
|
@request.version_supplied.should be_false
|
39
39
|
end
|
40
|
-
|
40
|
+
|
41
41
|
it "should return nil library if no library is found" do
|
42
42
|
parse('notproject').should == [nil, ['notproject']]
|
43
43
|
end
|
44
|
-
|
44
|
+
|
45
45
|
it "should not parse library or version if single_library == true" do
|
46
46
|
@adapter.stub!(:options).and_return(:single_library => true)
|
47
47
|
parse('notproject').should == [@projects[0], ['notproject']]
|
48
48
|
end
|
49
49
|
end
|
50
|
-
|
50
|
+
|
51
51
|
describe '#route' do
|
52
52
|
def route_to(route, command, *args)
|
53
53
|
req = mock_request(route)
|
@@ -60,56 +60,56 @@ describe YARD::Server::Router do
|
|
60
60
|
end
|
61
61
|
router.call(req)
|
62
62
|
end
|
63
|
-
|
63
|
+
|
64
64
|
it "should route /docs/OBJECT to object if single_library = true" do
|
65
65
|
@adapter.stub!(:options).and_return(:single_library => true)
|
66
66
|
route_to('/mydocs/foo/FOO', DisplayObjectCommand)
|
67
67
|
end
|
68
|
-
|
68
|
+
|
69
69
|
it "should route /docs" do
|
70
70
|
route_to('/mydocs/foo', LibraryIndexCommand)
|
71
71
|
end
|
72
|
-
|
72
|
+
|
73
73
|
it "should route /docs as index for library if single_library == true" do
|
74
74
|
@adapter.stub!(:options).and_return(:single_library => true)
|
75
75
|
route_to('/mydocs/foo/', DisplayObjectCommand)
|
76
76
|
end
|
77
|
-
|
77
|
+
|
78
78
|
it "should route /docs/name/version" do
|
79
79
|
route_to('/mydocs/foo/project/1.0.0', DisplayObjectCommand)
|
80
80
|
@command.library.should == @projects[0]
|
81
81
|
end
|
82
|
-
|
82
|
+
|
83
83
|
it "should route /docs/name/ to latest version of library" do
|
84
84
|
route_to('/mydocs/foo/project', DisplayObjectCommand)
|
85
85
|
@command.library.should == @projects[1]
|
86
86
|
end
|
87
|
-
|
87
|
+
|
88
88
|
it "should route /list/name/version/class" do
|
89
|
-
route_to('/mylist/foo/project/1.0.0/class',
|
89
|
+
route_to('/mylist/foo/project/1.0.0/class', ListCommand)
|
90
90
|
@command.library.should == @projects[0]
|
91
91
|
end
|
92
92
|
|
93
93
|
it "should route /list/name/version/methods" do
|
94
|
-
route_to('/mylist/foo/project/1.0.0/methods',
|
94
|
+
route_to('/mylist/foo/project/1.0.0/methods', ListCommand)
|
95
95
|
@command.library.should == @projects[0]
|
96
96
|
end
|
97
97
|
|
98
98
|
it "should route /list/name/version/files" do
|
99
|
-
route_to('/mylist/foo/project/1.0.0/files',
|
99
|
+
route_to('/mylist/foo/project/1.0.0/files', ListCommand)
|
100
100
|
@command.library.should == @projects[0]
|
101
101
|
end
|
102
|
-
|
102
|
+
|
103
103
|
it "should route /list/name to latest version of library" do
|
104
|
-
route_to('/mylist/foo/project/class',
|
104
|
+
route_to('/mylist/foo/project/class', ListCommand)
|
105
105
|
@command.library.should == @projects[1]
|
106
106
|
end
|
107
|
-
|
107
|
+
|
108
108
|
it "should route /search/name/version" do
|
109
109
|
route_to('/mysearch/foo/project/1.0.0', SearchCommand)
|
110
110
|
@command.library.should == @projects[0]
|
111
111
|
end
|
112
|
-
|
112
|
+
|
113
113
|
it "should route /search/name to latest version of library" do
|
114
114
|
route_to('/mysearch/foo/project', SearchCommand)
|
115
115
|
@command.library.should == @projects[1]
|
@@ -2,7 +2,7 @@ require File.dirname(__FILE__) + '/spec_helper'
|
|
2
2
|
|
3
3
|
describe YARD::Server::StaticCaching do
|
4
4
|
include StaticCaching
|
5
|
-
|
5
|
+
|
6
6
|
describe '#check_static_cache' do
|
7
7
|
def adapter; @adapter ||= mock_adapter end
|
8
8
|
def request; @request ||= OpenStruct.new end
|
@@ -11,7 +11,7 @@ describe YARD::Server::StaticCaching do
|
|
11
11
|
adapter.document_root = nil
|
12
12
|
check_static_cache.should be_nil
|
13
13
|
end
|
14
|
-
|
14
|
+
|
15
15
|
it "should read a file from document root if path matches file on system" do
|
16
16
|
request.path = '/hello/world.html'
|
17
17
|
File.should_receive(:file?).with('/public/hello/world.html').and_return(true)
|
@@ -20,7 +20,7 @@ describe YARD::Server::StaticCaching do
|
|
20
20
|
s.should == 200
|
21
21
|
b.should == ["body"]
|
22
22
|
end
|
23
|
-
|
23
|
+
|
24
24
|
it "should read a file if path matches file on system + .html" do
|
25
25
|
request.path = '/hello/world'
|
26
26
|
File.should_receive(:file?).with('/public/hello/world.html').and_return(true)
|
@@ -29,7 +29,7 @@ describe YARD::Server::StaticCaching do
|
|
29
29
|
s.should == 200
|
30
30
|
b.should == ["body"]
|
31
31
|
end
|
32
|
-
|
32
|
+
|
33
33
|
it "should return nil if no matching file is found" do
|
34
34
|
request.path = '/hello/foo'
|
35
35
|
File.should_receive(:file?).with('/public/hello/foo.html').and_return(false)
|