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
@@ -35,7 +35,7 @@ describe YARD::CodeObjects::ClassObject do
|
|
35
35
|
@class2.inheritance_tree(true)
|
36
36
|
@class2.mixins.should == []
|
37
37
|
end
|
38
|
-
|
38
|
+
|
39
39
|
it "should list class mixins in inheritance tree" do
|
40
40
|
mod = ModuleObject.new(:root, :ClassMethods)
|
41
41
|
klass = ClassObject.new(:root, :ReceivingClass)
|
@@ -47,7 +47,7 @@ describe YARD::CodeObjects::ClassObject do
|
|
47
47
|
describe "#meths / #inherited_meths" do
|
48
48
|
before(:all) do
|
49
49
|
Registry.clear
|
50
|
-
|
50
|
+
|
51
51
|
YARD.parse_string <<-eof
|
52
52
|
class SuperYard < String
|
53
53
|
def foo; end
|
@@ -58,26 +58,26 @@ describe YARD::CodeObjects::ClassObject do
|
|
58
58
|
private
|
59
59
|
def self.bar; end
|
60
60
|
end
|
61
|
-
|
61
|
+
|
62
62
|
class MiddleYard < SuperYard
|
63
63
|
def middle; end
|
64
64
|
end
|
65
|
-
|
65
|
+
|
66
66
|
class YARD < MiddleYard
|
67
67
|
def mymethod; end
|
68
68
|
def bar; end
|
69
69
|
end
|
70
|
-
|
70
|
+
|
71
71
|
module IncludedYard
|
72
72
|
def foo; end
|
73
73
|
end
|
74
|
-
|
74
|
+
|
75
75
|
class FinalYard < SuperYard
|
76
76
|
include IncludedYard
|
77
77
|
end
|
78
78
|
eof
|
79
79
|
end
|
80
|
-
|
80
|
+
|
81
81
|
it "should show inherited methods by default" do
|
82
82
|
meths = P(:YARD).meths
|
83
83
|
meths.should include(P("YARD#mymethod"))
|
@@ -85,7 +85,7 @@ describe YARD::CodeObjects::ClassObject do
|
|
85
85
|
meths.should include(P("SuperYard#foo2"))
|
86
86
|
meths.should include(P("SuperYard.bar"))
|
87
87
|
end
|
88
|
-
|
88
|
+
|
89
89
|
it "should allow :inherited to be set to false" do
|
90
90
|
meths = P(:YARD).meths(:inherited => false)
|
91
91
|
meths.should include(P("YARD#mymethod"))
|
@@ -93,12 +93,12 @@ describe YARD::CodeObjects::ClassObject do
|
|
93
93
|
meths.should_not include(P("SuperYard#foo2"))
|
94
94
|
meths.should_not include(P("SuperYard.bar"))
|
95
95
|
end
|
96
|
-
|
97
|
-
it "should not show overridden methods" do
|
96
|
+
|
97
|
+
it "should not show overridden methods" do
|
98
98
|
meths = P(:YARD).meths
|
99
99
|
meths.should include(P("YARD#bar"))
|
100
100
|
meths.should_not include(P("SuperYard#bar"))
|
101
|
-
|
101
|
+
|
102
102
|
meths = P(:YARD).inherited_meths
|
103
103
|
meths.should_not include(P("YARD#bar"))
|
104
104
|
meths.should_not include(P("YARD#mymethod"))
|
@@ -106,13 +106,13 @@ describe YARD::CodeObjects::ClassObject do
|
|
106
106
|
meths.should include(P("SuperYard#foo2"))
|
107
107
|
meths.should include(P("SuperYard.bar"))
|
108
108
|
end
|
109
|
-
|
109
|
+
|
110
110
|
it "should not show inherited methods overridden by other subclasses" do
|
111
111
|
meths = P(:YARD).inherited_meths
|
112
112
|
meths.should include(P('MiddleYard#middle'))
|
113
113
|
meths.should_not include(P('SuperYard#middle'))
|
114
114
|
end
|
115
|
-
|
115
|
+
|
116
116
|
it "should show mixed in methods before superclass method" do
|
117
117
|
meths = P(:FinalYard).meths
|
118
118
|
meths.should include(P('IncludedYard#foo'))
|
@@ -121,67 +121,67 @@ describe YARD::CodeObjects::ClassObject do
|
|
121
121
|
end
|
122
122
|
|
123
123
|
describe "#constants / #inherited_constants" do
|
124
|
-
before(:all) do
|
125
|
-
Registry.clear
|
126
|
-
|
124
|
+
before(:all) do
|
125
|
+
Registry.clear
|
126
|
+
|
127
127
|
Parser::SourceParser.parse_string <<-eof
|
128
128
|
class YARD
|
129
129
|
CONST1 = 1
|
130
130
|
CONST2 = "hello"
|
131
131
|
CONST4 = 0
|
132
132
|
end
|
133
|
-
|
133
|
+
|
134
134
|
class SUPERYARD < YARD
|
135
135
|
CONST4 = 5
|
136
136
|
end
|
137
|
-
|
137
|
+
|
138
138
|
class SubYard < SUPERYARD
|
139
139
|
CONST2 = "hi"
|
140
140
|
CONST3 = "foo"
|
141
141
|
end
|
142
142
|
eof
|
143
143
|
end
|
144
|
-
|
144
|
+
|
145
145
|
it "should list inherited constants by default" do
|
146
146
|
consts = P(:SubYard).constants
|
147
147
|
consts.should include(P("YARD::CONST1"))
|
148
148
|
consts.should include(P("SubYard::CONST3"))
|
149
|
-
|
149
|
+
|
150
150
|
consts = P(:SubYard).inherited_constants
|
151
151
|
consts.should include(P("YARD::CONST1"))
|
152
152
|
consts.should_not include(P("YARD::CONST2"))
|
153
153
|
consts.should_not include(P("SubYard::CONST2"))
|
154
154
|
consts.should_not include(P("SubYard::CONST3"))
|
155
155
|
end
|
156
|
-
|
156
|
+
|
157
157
|
it "should not list inherited constants if turned off" do
|
158
158
|
consts = P(:SubYard).constants(:inherited => false)
|
159
159
|
consts.should_not include(P("YARD::CONST1"))
|
160
160
|
consts.should include(P("SubYard::CONST3"))
|
161
161
|
end
|
162
|
-
|
162
|
+
|
163
163
|
it "should not include an inherited constant if it is overridden by the object" do
|
164
164
|
consts = P(:SubYard).constants
|
165
165
|
consts.should include(P("SubYard::CONST2"))
|
166
166
|
consts.should_not include(P("YARD::CONST2"))
|
167
167
|
end
|
168
|
-
|
168
|
+
|
169
169
|
it "should not include an inherited constant if it is overridden by another subclass" do
|
170
170
|
consts = P(:SubYard).inherited_constants
|
171
171
|
consts.should include(P("SUPERYARD::CONST4"))
|
172
172
|
consts.should_not include(P("YARD::CONST4"))
|
173
173
|
end
|
174
|
-
|
174
|
+
|
175
175
|
it "should not set a superclass on BasicObject class" do
|
176
176
|
o = ClassObject.new(:root, :Object)
|
177
177
|
o.superclass.should == P(:BasicObject)
|
178
178
|
end
|
179
|
-
|
179
|
+
|
180
180
|
it "should set superclass of Object to BasicObject" do
|
181
181
|
o = ClassObject.new(:root, :BasicObject)
|
182
182
|
o.superclass.should be_nil
|
183
183
|
end
|
184
|
-
|
184
|
+
|
185
185
|
it "should raise ArgumentError if superclass == self" do
|
186
186
|
lambda do
|
187
187
|
o = ClassObject.new(:root, :Object) do |o|
|
@@ -189,9 +189,9 @@ describe YARD::CodeObjects::ClassObject do
|
|
189
189
|
end
|
190
190
|
end.should raise_error(ArgumentError)
|
191
191
|
end
|
192
|
-
|
192
|
+
|
193
193
|
it "should tell the world if it is an exception class" do
|
194
|
-
o = ClassObject.new(:root, :MyClass)
|
194
|
+
o = ClassObject.new(:root, :MyClass)
|
195
195
|
o2 = ClassObject.new(:root, :OtherClass)
|
196
196
|
o2.superclass = :SystemCallError
|
197
197
|
o3 = ClassObject.new(:root, :StandardError)
|
@@ -200,20 +200,20 @@ describe YARD::CodeObjects::ClassObject do
|
|
200
200
|
|
201
201
|
o.superclass = :Object
|
202
202
|
o.is_exception?.should == false
|
203
|
-
|
203
|
+
|
204
204
|
o.superclass = :Exception
|
205
205
|
o.is_exception?.should == true
|
206
|
-
|
206
|
+
|
207
207
|
o.superclass = :NoMethodError
|
208
208
|
o.is_exception?.should == true
|
209
|
-
|
209
|
+
|
210
210
|
o.superclass = o2
|
211
211
|
o.is_exception?.should == true
|
212
|
-
|
212
|
+
|
213
213
|
o.superclass = o3
|
214
214
|
o.is_exception?.should == true
|
215
215
|
end
|
216
|
-
|
216
|
+
|
217
217
|
it "should not raise ArgumentError if superclass is proxy in different namespace" do
|
218
218
|
lambda do
|
219
219
|
o = ClassObject.new(:root, :X) do |o|
|
@@ -2,7 +2,7 @@ require File.dirname(__FILE__) + '/spec_helper'
|
|
2
2
|
|
3
3
|
describe YARD::CodeObjects::CodeObjectList do
|
4
4
|
before { Registry.clear }
|
5
|
-
|
5
|
+
|
6
6
|
it "pushing a value should only allow CodeObjects::Base, String or Symbol" do
|
7
7
|
list = CodeObjectList.new(nil)
|
8
8
|
lambda { list.push(:hash => 1) }.should raise_error(ArgumentError)
|
@@ -11,21 +11,21 @@ describe YARD::CodeObjects::CodeObjectList do
|
|
11
11
|
list << ModuleObject.new(nil, :YARD)
|
12
12
|
list.size.should == 3
|
13
13
|
end
|
14
|
-
|
14
|
+
|
15
15
|
it "added value should be a proxy if parameter was String or Symbol" do
|
16
16
|
list = CodeObjectList.new(nil)
|
17
17
|
list << "Test"
|
18
18
|
list.first.class.should == Proxy
|
19
19
|
end
|
20
|
-
|
20
|
+
|
21
21
|
it "should contain a unique list of objects" do
|
22
22
|
obj = ModuleObject.new(nil, :YARD)
|
23
23
|
list = CodeObjectList.new(nil)
|
24
|
-
|
24
|
+
|
25
25
|
list << P(:YARD)
|
26
26
|
list << obj
|
27
27
|
list.size.should == 1
|
28
|
-
|
28
|
+
|
29
29
|
list << :Test
|
30
30
|
list << "Test"
|
31
31
|
list.size.should == 2
|
@@ -32,7 +32,7 @@ describe YARD::CodeObjects, "METHODMATCH" do
|
|
32
32
|
"A::B::C :: method"[CodeObjects::METHODMATCH].should == "A::B::C :: method"
|
33
33
|
"SomeClass . method"[CodeObjects::METHODMATCH].should == "SomeClass . method"
|
34
34
|
end
|
35
|
-
|
35
|
+
|
36
36
|
it "should match self.method" do
|
37
37
|
"self :: method!"[CodeObjects::METHODMATCH].should == "self :: method!"
|
38
38
|
"self.is_a?"[CodeObjects::METHODMATCH].should == "self.is_a?"
|
@@ -51,10 +51,11 @@ describe YARD::CodeObjects, "BUILTIN_CLASSES" do
|
|
51
51
|
it "should include all base classes" do
|
52
52
|
YARD::CodeObjects::BUILTIN_CLASSES.each do |name|
|
53
53
|
next if name == "MatchingData" && !defined?(::MatchingData)
|
54
|
+
next if name == "Continuation"
|
54
55
|
eval(name).should be_instance_of(Class)
|
55
56
|
end
|
56
57
|
end
|
57
|
-
|
58
|
+
|
58
59
|
it "should include all exceptions" do
|
59
60
|
YARD::CodeObjects::BUILTIN_EXCEPTIONS.each do |name|
|
60
61
|
YARD::CodeObjects::BUILTIN_CLASSES.should include(name)
|
@@ -64,7 +65,7 @@ end
|
|
64
65
|
|
65
66
|
describe YARD::CodeObjects, "BUILTIN_ALL" do
|
66
67
|
it "should include classes modules and exceptions" do
|
67
|
-
a = YARD::CodeObjects::BUILTIN_ALL
|
68
|
+
a = YARD::CodeObjects::BUILTIN_ALL
|
68
69
|
b = YARD::CodeObjects::BUILTIN_CLASSES
|
69
70
|
c = YARD::CodeObjects::BUILTIN_MODULES
|
70
71
|
a.should == b+c
|
@@ -6,65 +6,65 @@ describe YARD::CodeObjects::ExtraFileObject do
|
|
6
6
|
File.should_receive(:read).with('file.txt').and_return('')
|
7
7
|
ExtraFileObject.new('file.txt')
|
8
8
|
end
|
9
|
-
|
9
|
+
|
10
10
|
it "should raise Errno::ENOENT if contents=nil and file does not exist" do
|
11
11
|
lambda { ExtraFileObject.new('file.txt') }.should raise_error(Errno::ENOENT)
|
12
12
|
end
|
13
|
-
|
13
|
+
|
14
14
|
it "should not attempt to read from disk if contents are provided" do
|
15
15
|
ExtraFileObject.new('file.txt', 'CONTENTS')
|
16
16
|
end
|
17
|
-
|
17
|
+
|
18
18
|
it "should set filename to filename" do
|
19
19
|
file = ExtraFileObject.new('a/b/c/file.txt', 'CONTENTS')
|
20
20
|
file.filename.should == "a/b/c/file.txt"
|
21
21
|
end
|
22
|
-
|
22
|
+
|
23
23
|
it "should parse out attributes at top of the file" do
|
24
24
|
file = ExtraFileObject.new('file.txt', "# @title X\n# @some_attribute Y\nFOO BAR")
|
25
25
|
file.attributes[:title].should == "X"
|
26
26
|
file.attributes[:some_attribute].should == "Y"
|
27
27
|
file.contents.should == "FOO BAR"
|
28
28
|
end
|
29
|
-
|
29
|
+
|
30
30
|
it "should allow whitespace prior to '#' marker when parsing attributes" do
|
31
31
|
file = ExtraFileObject.new('file.txt', " \t # @title X\nFOO BAR")
|
32
32
|
file.attributes[:title].should == "X"
|
33
33
|
file.contents.should == "FOO BAR"
|
34
34
|
end
|
35
|
-
|
35
|
+
|
36
36
|
it "should parse out old-style #!markup shebang format" do
|
37
37
|
file = ExtraFileObject.new('file.txt', "#!foobar\nHello")
|
38
38
|
file.attributes[:markup].should == "foobar"
|
39
39
|
end
|
40
|
-
|
40
|
+
|
41
41
|
it "should not parse old-style #!markup if any whitespace is found" do
|
42
42
|
file = ExtraFileObject.new('file.txt', " #!foobar\nHello")
|
43
43
|
file.attributes[:markup].should be_nil
|
44
44
|
file.contents.should == " #!foobar\nHello"
|
45
45
|
end
|
46
|
-
|
46
|
+
|
47
47
|
it "should not parse out attributes if there are newlines prior to attributes" do
|
48
48
|
file = ExtraFileObject.new('file.txt', "\n# @title\nFOO BAR")
|
49
49
|
file.attributes.should be_empty
|
50
50
|
file.contents.should == "\n# @title\nFOO BAR"
|
51
51
|
end
|
52
|
-
|
52
|
+
|
53
53
|
it "should set contents to data after attributes" do
|
54
54
|
file = ExtraFileObject.new('file.txt', "# @title\nFOO BAR")
|
55
55
|
file.contents.should == "FOO BAR"
|
56
56
|
end
|
57
|
-
|
57
|
+
|
58
58
|
it "should preserve newlines" do
|
59
59
|
file = ExtraFileObject.new('file.txt', "FOO\r\nBAR\nBAZ")
|
60
60
|
file.contents.should == "FOO\r\nBAR\nBAZ"
|
61
61
|
end
|
62
|
-
|
62
|
+
|
63
63
|
it "should not include newlines in attribute data" do
|
64
64
|
file = ExtraFileObject.new('file.txt', "# @title FooBar\r\nHello world")
|
65
65
|
file.attributes[:title].should == "FooBar"
|
66
66
|
end
|
67
|
-
|
67
|
+
|
68
68
|
it "should force encoding to @encoding attribute if present" do
|
69
69
|
log.should_not_receive(:warn)
|
70
70
|
data = "# @encoding sjis\nFOO"
|
@@ -80,12 +80,12 @@ describe YARD::CodeObjects::ExtraFileObject do
|
|
80
80
|
file = ExtraFileObject.new('file.txt', data)
|
81
81
|
file.contents.encoding.should == encoding
|
82
82
|
end if RUBY19
|
83
|
-
|
83
|
+
|
84
84
|
it "should ignore encoding in 1.8.x (or encoding-unaware platforms)" do
|
85
85
|
log.should_not_receive(:warn)
|
86
86
|
file = ExtraFileObject.new('file.txt', "# @encoding INVALID\nFOO")
|
87
87
|
end if RUBY18
|
88
|
-
|
88
|
+
|
89
89
|
it "should attempt to re-parse data as 8bit ascii if parsing fails" do
|
90
90
|
log.should_not_receive(:warn)
|
91
91
|
str = "\xB0"
|
@@ -94,26 +94,26 @@ describe YARD::CodeObjects::ExtraFileObject do
|
|
94
94
|
file.contents.should == "\xB0"
|
95
95
|
end
|
96
96
|
end
|
97
|
-
|
97
|
+
|
98
98
|
describe '#name' do
|
99
99
|
it "should be set to basename (not extension) of filename" do
|
100
100
|
file = ExtraFileObject.new('file.txt', '')
|
101
101
|
file.name.should == 'file'
|
102
102
|
end
|
103
103
|
end
|
104
|
-
|
104
|
+
|
105
105
|
describe '#title' do
|
106
106
|
it "should return @title attribute if present" do
|
107
107
|
file = ExtraFileObject.new('file.txt', '# @title FOO')
|
108
108
|
file.title.should == 'FOO'
|
109
109
|
end
|
110
|
-
|
110
|
+
|
111
111
|
it "should return #name if no @title attribute exists" do
|
112
112
|
file = ExtraFileObject.new('file.txt', '')
|
113
113
|
file.title.should == 'file'
|
114
114
|
end
|
115
115
|
end
|
116
|
-
|
116
|
+
|
117
117
|
describe '#==' do
|
118
118
|
it "should define equality on filename alone" do
|
119
119
|
file1 = ExtraFileObject.new('file.txt', 'A')
|
@@ -127,6 +127,6 @@ describe YARD::CodeObjects::ExtraFileObject do
|
|
127
127
|
a |= [file2]
|
128
128
|
a.size.should == 1
|
129
129
|
end
|
130
|
-
|
130
|
+
|
131
131
|
end
|
132
132
|
end
|
@@ -1,10 +1,10 @@
|
|
1
1
|
require File.dirname(__FILE__) + '/spec_helper'
|
2
2
|
|
3
3
|
describe YARD::CodeObjects::MacroObject do
|
4
|
-
before do
|
5
|
-
Registry.clear
|
4
|
+
before do
|
5
|
+
Registry.clear
|
6
6
|
end
|
7
|
-
|
7
|
+
|
8
8
|
describe '.create' do
|
9
9
|
def create(*args) MacroObject.create(*args) end
|
10
10
|
|
@@ -13,60 +13,55 @@ describe YARD::CodeObjects::MacroObject do
|
|
13
13
|
obj = Registry.at('.macro.foo')
|
14
14
|
obj.should_not be_nil
|
15
15
|
end
|
16
|
-
|
16
|
+
|
17
17
|
it "should use identity map" do
|
18
18
|
obj1 = create('foo', '')
|
19
19
|
obj2 = create('foo', '')
|
20
20
|
obj1.object_id.should == obj2.object_id
|
21
21
|
end
|
22
|
-
|
22
|
+
|
23
23
|
it "should allow specifying of macro data" do
|
24
24
|
obj = create('foo', 'MACRODATA')
|
25
25
|
obj.macro_data.should == 'MACRODATA'
|
26
26
|
end
|
27
|
-
|
27
|
+
|
28
28
|
it "should attach if a method object is provided" do
|
29
29
|
obj = create('foo', 'MACRODATA', P('Foo.property'))
|
30
30
|
obj.method_object.should == P('Foo.property')
|
31
31
|
obj.should be_attached
|
32
32
|
end
|
33
33
|
end
|
34
|
-
|
34
|
+
|
35
35
|
describe '.find' do
|
36
36
|
before { MacroObject.create('foo', 'DATA') }
|
37
|
-
|
37
|
+
|
38
38
|
it "should search for an object by name" do
|
39
39
|
MacroObject.find('foo').macro_data.should == 'DATA'
|
40
40
|
end
|
41
|
-
|
41
|
+
|
42
42
|
it "should accept Symbol" do
|
43
43
|
MacroObject.find(:foo).macro_data.should == 'DATA'
|
44
44
|
end
|
45
45
|
end
|
46
|
-
|
46
|
+
|
47
47
|
describe '.find_or_create' do
|
48
|
-
it "should look up name if
|
48
|
+
it "should look up name if @!macro is present and find object" do
|
49
49
|
macro1 = MacroObject.create('foo', 'FOO')
|
50
|
-
macro2 = MacroObject.find_or_create("
|
50
|
+
macro2 = MacroObject.find_or_create('foo', "a b c")
|
51
51
|
macro1.should == macro2
|
52
52
|
end
|
53
|
-
|
53
|
+
|
54
54
|
it "should create new macro if macro by that name does not exist" do
|
55
|
-
MacroObject.find_or_create("
|
56
|
-
MacroObject.find('foo').macro_data.should == "
|
57
|
-
end
|
58
|
-
|
59
|
-
it "should use full docstring if no text block is present in @macro" do
|
60
|
-
MacroObject.find_or_create("@macro foo\n@method $1\nEXTRA")
|
61
|
-
MacroObject.find('foo').macro_data.should == "EXTRA\n@method $1"
|
55
|
+
MacroObject.find_or_create('foo', "@!method $1")
|
56
|
+
MacroObject.find('foo').macro_data.should == "@!method $1"
|
62
57
|
end
|
63
58
|
end
|
64
|
-
|
59
|
+
|
65
60
|
describe '.apply' do
|
66
61
|
before do
|
67
62
|
@args = %w(foo a b c)
|
68
63
|
end
|
69
|
-
|
64
|
+
|
70
65
|
def apply(comments)
|
71
66
|
MacroObject.apply(comments, @args)
|
72
67
|
end
|
@@ -76,31 +71,30 @@ describe YARD::CodeObjects::MacroObject do
|
|
76
71
|
end
|
77
72
|
|
78
73
|
it "should handle macro text inside block" do
|
79
|
-
apply("
|
74
|
+
apply("@!macro\n foo$1$2$3\nfoobaz").should == "fooabc\nfoobaz"
|
80
75
|
end
|
81
|
-
|
76
|
+
|
82
77
|
it "should append docstring to existing macro" do
|
83
78
|
macro = MacroObject.create('name', '$3$2$1')
|
84
|
-
result = MacroObject.apply("
|
79
|
+
result = MacroObject.apply("@!macro name\nfoobar", @args)
|
85
80
|
result.should == "cba\nfoobar"
|
86
81
|
end
|
87
|
-
|
82
|
+
|
88
83
|
it "should use only non macro data if docstring is an existing macro" do
|
89
|
-
data = "
|
90
|
-
MacroObject.
|
91
|
-
result = MacroObject.apply(data, @args)
|
84
|
+
data = "@!macro name\n $3$2$1\nEXTRA"
|
85
|
+
result = MacroObject.apply(data, @args, 'SOURCE')
|
92
86
|
result.should == "cba\nEXTRA"
|
93
|
-
MacroObject.apply("
|
87
|
+
MacroObject.apply("@!macro name\nFOO", @args).should == "cba\nFOO"
|
94
88
|
end
|
95
|
-
|
89
|
+
|
96
90
|
it "should create macros if they don't exist" do
|
97
|
-
result = MacroObject.apply("
|
91
|
+
result = MacroObject.apply("@!macro name\n foo!$1", @args, 'SOURCE')
|
98
92
|
result.should == "foo!a"
|
99
93
|
MacroObject.find('name').macro_data.should == 'foo!$1'
|
100
94
|
end
|
101
|
-
|
95
|
+
|
102
96
|
it "should keep other tags" do
|
103
|
-
apply("
|
97
|
+
apply("@!macro\n foo$1$2$3\n@param name foo\nfoo").should ==
|
104
98
|
"fooabc\nfoo\n@param name\n foo"
|
105
99
|
end
|
106
100
|
end
|
@@ -139,15 +133,15 @@ describe YARD::CodeObjects::MacroObject do
|
|
139
133
|
it "should handle negative indexes ($-N)" do
|
140
134
|
expand("$-1 ${-2-} ${-2--2}").should == "c b, c b"
|
141
135
|
end
|
142
|
-
|
136
|
+
|
143
137
|
it "should accept Docstring objects" do
|
144
138
|
expand(Docstring.new("$1\n@param name foo")).should == "a\n@param name foo"
|
145
139
|
end
|
146
140
|
end
|
147
|
-
|
141
|
+
|
148
142
|
describe '#expand' do
|
149
143
|
it "should expand macro given its data" do
|
150
|
-
macro = MacroObject.create_docstring(
|
144
|
+
macro = MacroObject.create_docstring('foo', '$1 $2 THREE!')
|
151
145
|
macro.expand(['NAME', 'ONE', 'TWO']).should == "ONE TWO THREE!"
|
152
146
|
end
|
153
147
|
end
|