yard 0.2.3.5 → 0.4.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 +12 -10
- data/ChangeLog +5686 -0
- data/{README.markdown → README.md} +65 -11
- data/Rakefile +25 -13
- data/benchmarks/concat_vs_join.rb +12 -0
- data/benchmarks/erb_vs_erubis.rb +14 -14
- data/benchmarks/marshal_vs_dbm.rb +1 -1
- data/benchmarks/pathname_vs_string.rb +50 -0
- data/benchmarks/template_erb.rb +22 -0
- data/benchmarks/template_format.rb +6 -0
- data/benchmarks/template_profile.rb +17 -0
- data/bin/yri +16 -7
- data/docs/{CODE_OBJECTS.markdown → CodeObjects.md} +0 -0
- data/docs/{GETTING_STARTED.markdown → GettingStarted.md} +49 -11
- data/docs/{GLOSSARY.markdown → Glossary.md} +0 -0
- data/docs/{HANDLERS.markdown → Handlers.md} +5 -5
- data/docs/{OVERVIEW.markdown → Overview.md} +9 -13
- data/docs/{PARSER.markdown → Parser.md} +1 -1
- data/docs/{TAGS.markdown → Tags.md} +1 -1
- data/docs/Templates.md +286 -0
- data/docs/{WHATSNEW.markdown → WhatsNew.md} +82 -2
- data/lib/rubygems_plugin.rb +17 -20
- data/lib/yard.rb +47 -1
- data/lib/yard/autoload.rb +38 -47
- data/lib/yard/cli/yard_graph.rb +36 -13
- data/lib/yard/cli/yardoc.rb +74 -12
- data/lib/yard/code_objects/base.rb +182 -14
- data/lib/yard/code_objects/class_object.rb +39 -2
- data/lib/yard/code_objects/class_variable_object.rb +4 -0
- data/lib/yard/code_objects/constant_object.rb +8 -0
- data/lib/yard/code_objects/extended_method_object.rb +14 -0
- data/lib/yard/code_objects/method_object.rb +60 -2
- data/lib/yard/code_objects/module_object.rb +6 -0
- data/lib/yard/code_objects/namespace_object.rb +99 -2
- data/lib/yard/code_objects/proxy.rb +53 -6
- data/lib/yard/code_objects/root_object.rb +2 -0
- data/lib/yard/core_ext/array.rb +61 -0
- data/lib/yard/core_ext/file.rb +21 -4
- data/lib/yard/core_ext/module.rb +11 -1
- data/lib/yard/core_ext/string.rb +13 -2
- data/lib/yard/core_ext/symbol_hash.rb +51 -3
- data/lib/yard/docstring.rb +68 -19
- data/lib/yard/globals.rb +5 -2
- data/lib/yard/handlers/base.rb +13 -3
- data/lib/yard/handlers/processor.rb +64 -2
- data/lib/yard/handlers/ruby/class_handler.rb +1 -1
- data/lib/yard/handlers/ruby/class_variable_handler.rb +5 -1
- data/lib/yard/handlers/ruby/constant_handler.rb +38 -4
- data/lib/yard/handlers/ruby/exception_handler.rb +1 -0
- data/lib/yard/handlers/ruby/legacy/base.rb +2 -2
- data/lib/yard/handlers/ruby/legacy/class_variable_handler.rb +6 -3
- data/lib/yard/handlers/ruby/legacy/constant_handler.rb +21 -2
- data/lib/yard/handlers/ruby/legacy/method_handler.rb +10 -0
- data/lib/yard/handlers/ruby/legacy/yield_handler.rb +2 -1
- data/lib/yard/handlers/ruby/method_handler.rb +10 -0
- data/lib/yard/handlers/ruby/yield_handler.rb +2 -1
- data/lib/yard/logging.rb +17 -0
- data/lib/yard/parser/ruby/ast_node.rb +101 -0
- data/lib/yard/parser/ruby/legacy/ruby_lex.rb +2 -2
- data/lib/yard/parser/ruby/legacy/statement_list.rb +10 -9
- data/lib/yard/parser/ruby/ruby_parser.rb +32 -3
- data/lib/yard/parser/source_parser.rb +82 -5
- data/lib/yard/rake/yardoc_task.rb +38 -3
- data/lib/yard/registry.rb +112 -2
- data/lib/yard/serializers/base.rb +48 -1
- data/lib/yard/serializers/file_system_serializer.rb +23 -2
- data/lib/yard/serializers/process_serializer.rb +10 -0
- data/lib/yard/serializers/stdout_serializer.rb +11 -0
- data/lib/yard/tags/library.rb +4 -1
- data/lib/yard/tags/overload_tag.rb +3 -12
- data/lib/yard/templates/engine.rb +162 -0
- data/lib/yard/{generators → templates}/helpers/base_helper.rb +14 -13
- data/lib/yard/{generators → templates}/helpers/filter_helper.rb +1 -1
- data/lib/yard/templates/helpers/html_helper.rb +287 -0
- data/lib/yard/templates/helpers/html_syntax_highlight_helper.rb +29 -0
- data/lib/yard/templates/helpers/html_syntax_highlight_helper18.rb +27 -0
- data/lib/yard/{generators → templates}/helpers/markup_helper.rb +15 -11
- data/lib/yard/{generators → templates}/helpers/method_helper.rb +8 -1
- data/lib/yard/templates/helpers/module_helper.rb +15 -0
- data/lib/yard/templates/helpers/text_helper.rb +60 -0
- data/lib/yard/templates/helpers/uml_helper.rb +33 -0
- data/lib/yard/templates/template.rb +355 -0
- data/lib/yard/verifier.rb +110 -0
- data/spec/cli/yardoc_spec.rb +23 -1
- data/spec/code_objects/base_spec.rb +8 -0
- data/spec/code_objects/class_object_spec.rb +166 -156
- data/spec/code_objects/method_object_spec.rb +2 -2
- data/spec/code_objects/module_object_spec.rb +112 -110
- data/spec/code_objects/proxy_spec.rb +9 -0
- data/spec/core_ext/array_spec.rb +33 -0
- data/spec/core_ext/file_spec.rb +40 -12
- data/spec/core_ext/module_spec.rb +15 -0
- data/spec/core_ext/string_spec.rb +10 -2
- data/spec/docstring_spec.rb +157 -135
- data/spec/handlers/class_handler_spec.rb +3 -0
- data/spec/handlers/class_variable_handler_spec.rb +3 -1
- data/spec/handlers/constant_handler_spec.rb +38 -0
- data/spec/handlers/examples/class_handler_001.rb.txt +14 -1
- data/spec/handlers/examples/class_variable_handler_001.rb.txt +1 -0
- data/spec/handlers/examples/constant_handler_001.rb.txt +10 -1
- data/spec/handlers/examples/exception_handler_001.rb.txt +5 -0
- data/spec/handlers/examples/method_handler_001.rb.txt +15 -0
- data/spec/handlers/examples/mixin_handler_001.rb.txt +13 -0
- data/spec/handlers/exception_handler_spec.rb +4 -0
- data/spec/handlers/method_handler_spec.rb +22 -0
- data/spec/handlers/mixin_handler_spec.rb +5 -3
- data/spec/handlers/yield_handler_spec.rb +1 -1
- data/spec/parser/ruby/ast_node_spec.rb +16 -0
- data/spec/parser/ruby/legacy/statement_list_spec.rb +36 -0
- data/spec/parser/ruby/ruby_parser_spec.rb +80 -0
- data/spec/parser/source_parser_spec.rb +48 -2
- data/spec/rake/yardoc_task_spec.rb +62 -25
- data/spec/serializers/file_system_serializer_spec.rb +1 -1
- data/spec/templates/class_spec.rb +34 -0
- data/spec/templates/engine_spec.rb +121 -0
- data/spec/templates/examples/class001.html +271 -0
- data/spec/templates/examples/class001.txt +31 -0
- data/spec/templates/examples/method001.html +96 -0
- data/spec/templates/examples/method001.txt +28 -0
- data/spec/templates/examples/method002.html +81 -0
- data/spec/templates/examples/method002.txt +20 -0
- data/spec/templates/examples/method003.html +137 -0
- data/spec/templates/examples/method003.txt +45 -0
- data/spec/templates/examples/module001.dot +31 -0
- data/spec/templates/examples/module001.html +294 -0
- data/spec/templates/examples/module001.txt +33 -0
- data/spec/templates/examples/tag001.txt +82 -0
- data/spec/templates/helpers/base_helper_spec.rb +129 -0
- data/spec/{generators → templates}/helpers/html_helper_spec.rb +73 -16
- data/spec/templates/helpers/html_syntax_highlight_helper_spec.rb +39 -0
- data/spec/{generators → templates}/helpers/markup_helper_spec.rb +6 -7
- data/spec/templates/method_spec.rb +75 -0
- data/spec/templates/module_spec.rb +50 -0
- data/spec/templates/spec_helper.rb +33 -0
- data/spec/templates/tag_spec.rb +39 -0
- data/spec/templates/template_spec.rb +398 -0
- data/spec/verifier_spec.rb +51 -0
- data/spec/yard_spec.rb +46 -0
- data/templates/default/class/dot/setup.rb +6 -0
- data/templates/default/class/dot/superklass.erb +3 -0
- data/templates/default/class/html/constructor_details.erb +8 -0
- data/templates/default/class/html/setup.rb +1 -0
- data/templates/default/class/html/subclasses.erb +4 -0
- data/templates/default/class/setup.rb +29 -0
- data/templates/default/class/text/setup.rb +11 -0
- data/templates/default/class/text/subclasses.erb +5 -0
- data/templates/default/docstring/html/abstract.erb +4 -0
- data/templates/default/docstring/html/deprecated.erb +1 -0
- data/templates/default/docstring/html/index.erb +5 -0
- data/templates/default/docstring/html/note.erb +6 -0
- data/templates/default/docstring/html/text.erb +1 -0
- data/templates/default/docstring/html/todo.erb +6 -0
- data/templates/default/docstring/setup.rb +39 -0
- data/templates/default/docstring/text/abstract.erb +2 -0
- data/templates/default/docstring/text/deprecated.erb +2 -0
- data/templates/default/docstring/text/index.erb +2 -0
- data/templates/default/docstring/text/note.erb +4 -0
- data/templates/default/docstring/text/text.erb +1 -0
- data/templates/default/docstring/text/todo.erb +4 -0
- data/templates/default/fulldoc/html/css/common.css +1 -0
- data/templates/default/fulldoc/html/css/full_list.css +23 -0
- data/templates/default/fulldoc/html/css/style.css +261 -0
- data/templates/default/fulldoc/html/full_list.erb +36 -0
- data/templates/default/fulldoc/html/js/app.js +91 -0
- data/templates/default/fulldoc/html/js/full_list.js +39 -0
- data/templates/default/fulldoc/html/js/jquery.js +19 -0
- data/templates/default/fulldoc/html/setup.rb +86 -0
- data/templates/default/{uml → layout}/dot/header.erb +2 -2
- data/templates/default/layout/dot/setup.rb +14 -0
- data/templates/default/layout/html/breadcrumb.erb +11 -0
- data/templates/default/layout/html/footer.erb +5 -0
- data/templates/default/layout/html/headers.erb +13 -0
- data/templates/default/layout/html/index.erb +49 -0
- data/templates/default/layout/html/layout.erb +20 -0
- data/templates/default/layout/html/search.erb +5 -0
- data/templates/default/layout/html/setup.rb +58 -0
- data/templates/default/method/html/header.erb +14 -3
- data/templates/default/method/setup.rb +3 -0
- data/templates/default/method/text/header.erb +1 -1
- data/templates/default/method_details/html/header.erb +3 -0
- data/templates/default/method_details/html/method_signature.erb +17 -0
- data/templates/default/method_details/html/source.erb +10 -0
- data/templates/default/method_details/setup.rb +8 -0
- data/templates/default/method_details/text/header.erb +10 -0
- data/templates/default/method_details/text/method_signature.erb +12 -0
- data/templates/default/method_details/text/setup.rb +10 -0
- data/templates/default/module/dot/child.erb +1 -0
- data/templates/default/module/dot/dependencies.erb +3 -0
- data/templates/default/{uml/dot/subgraph.erb → module/dot/header.erb} +3 -3
- data/templates/default/{uml → module}/dot/info.erb +4 -4
- data/templates/default/module/dot/setup.rb +14 -0
- data/templates/default/module/html/attribute_details.erb +11 -0
- data/templates/default/module/html/attribute_summary.erb +8 -0
- data/templates/default/module/html/box_info.erb +32 -0
- data/templates/default/module/html/children.erb +8 -0
- data/templates/default/module/html/constant_summary.erb +13 -0
- data/templates/default/module/html/defines.erb +3 -0
- data/templates/default/module/html/header.erb +4 -4
- data/templates/default/module/html/inherited_constants.erb +8 -0
- data/templates/default/module/html/inherited_methods.erb +9 -0
- data/templates/default/module/html/item_summary.erb +20 -0
- data/templates/default/module/html/method_details_list.erb +8 -0
- data/templates/default/module/html/method_summary.erb +8 -0
- data/templates/default/module/html/methodmissing.erb +12 -0
- data/templates/default/module/html/pre_docstring.erb +1 -0
- data/templates/default/module/setup.rb +83 -0
- data/templates/default/module/text/children.erb +10 -0
- data/templates/default/module/text/class_meths_list.erb +8 -0
- data/templates/default/module/text/extends.erb +8 -0
- data/templates/default/module/text/header.erb +7 -0
- data/templates/default/module/text/includes.erb +8 -0
- data/templates/default/module/text/instance_meths_list.erb +8 -0
- data/templates/default/module/text/setup.rb +12 -0
- data/templates/default/root/dot/child.erb +3 -0
- data/templates/default/root/dot/setup.rb +5 -0
- data/templates/default/tags/html/example.erb +5 -16
- data/templates/default/tags/html/index.erb +3 -0
- data/templates/default/tags/html/option.erb +17 -20
- data/templates/default/tags/html/overload.erb +13 -0
- data/templates/default/tags/html/see.erb +5 -10
- data/templates/default/tags/html/tag.erb +20 -0
- data/templates/default/tags/setup.rb +50 -0
- data/templates/default/tags/text/example.erb +8 -10
- data/templates/default/tags/text/index.erb +1 -0
- data/templates/default/tags/text/option.erb +18 -3
- data/templates/default/tags/text/overload.erb +19 -0
- data/templates/default/tags/text/see.erb +8 -2
- data/templates/default/tags/text/tag.erb +13 -0
- metadata +142 -158
- data/bin/view_generator +0 -17
- data/docs/FAQ.markdown +0 -34
- data/docs/GENERATORS.markdown +0 -211
- data/lib/yard/generators/attributes_generator.rb +0 -22
- data/lib/yard/generators/base.rb +0 -305
- data/lib/yard/generators/class_generator.rb +0 -27
- data/lib/yard/generators/constants_generator.rb +0 -74
- data/lib/yard/generators/constructor_generator.rb +0 -25
- data/lib/yard/generators/deprecated_generator.rb +0 -15
- data/lib/yard/generators/docstring_generator.rb +0 -15
- data/lib/yard/generators/full_doc_generator.rb +0 -127
- data/lib/yard/generators/helpers/html_helper.rb +0 -196
- data/lib/yard/generators/helpers/html_syntax_highlight_helper.rb +0 -49
- data/lib/yard/generators/helpers/uml_helper.rb +0 -16
- data/lib/yard/generators/inheritance_generator.rb +0 -16
- data/lib/yard/generators/method_details_generator.rb +0 -18
- data/lib/yard/generators/method_generator.rb +0 -43
- data/lib/yard/generators/method_listing_generator.rb +0 -105
- data/lib/yard/generators/method_missing_generator.rb +0 -25
- data/lib/yard/generators/method_signature_generator.rb +0 -19
- data/lib/yard/generators/method_summary_generator.rb +0 -21
- data/lib/yard/generators/mixins_generator.rb +0 -21
- data/lib/yard/generators/module_generator.rb +0 -23
- data/lib/yard/generators/overloads_generator.rb +0 -20
- data/lib/yard/generators/quick_doc_generator.rb +0 -25
- data/lib/yard/generators/root_generator.rb +0 -32
- data/lib/yard/generators/source_generator.rb +0 -11
- data/lib/yard/generators/tags_generator.rb +0 -99
- data/lib/yard/generators/uml_generator.rb +0 -102
- data/lib/yard/generators/visibility_group_generator.rb +0 -26
- data/spec/generators/base_spec.rb +0 -64
- data/spec/generators/full_doc_generator_spec.rb +0 -29
- data/spec/generators/helpers/base_helper_spec.rb +0 -15
- data/spec/generators/quick_doc_generator_spec.rb +0 -13
- data/templates/default/attributes/html/header.erb +0 -47
- data/templates/default/attributes/text/header.erb +0 -10
- data/templates/default/class/html/header.erb +0 -4
- data/templates/default/constants/html/constants.erb +0 -9
- data/templates/default/constants/html/header.erb +0 -3
- data/templates/default/constants/html/included.erb +0 -9
- data/templates/default/constants/html/inherited.erb +0 -9
- data/templates/default/constructor/html/header.erb +0 -10
- data/templates/default/deprecated/html/main.erb +0 -6
- data/templates/default/deprecated/text/main.erb +0 -3
- data/templates/default/docstring/html/main.erb +0 -3
- data/templates/default/docstring/text/main.erb +0 -3
- data/templates/default/fulldoc/html/all_files.erb +0 -19
- data/templates/default/fulldoc/html/all_methods.erb +0 -26
- data/templates/default/fulldoc/html/all_namespaces.erb +0 -22
- data/templates/default/fulldoc/html/app.js +0 -18
- data/templates/default/fulldoc/html/custom.css +0 -1
- data/templates/default/fulldoc/html/file.erb +0 -16
- data/templates/default/fulldoc/html/footer.erb +0 -5
- data/templates/default/fulldoc/html/header.erb +0 -16
- data/templates/default/fulldoc/html/html_head.erb +0 -4
- data/templates/default/fulldoc/html/index.erb +0 -19
- data/templates/default/fulldoc/html/jquery.js +0 -11
- data/templates/default/fulldoc/html/style.css +0 -81
- data/templates/default/fulldoc/html/syntax_highlight.css +0 -24
- data/templates/default/inheritance/html/header.erb +0 -8
- data/templates/default/inheritance/text/header.erb +0 -3
- data/templates/default/method/html/aliases.erb +0 -6
- data/templates/default/method/html/title.erb +0 -3
- data/templates/default/method/text/title.erb +0 -1
- data/templates/default/methoddetails/html/header.erb +0 -8
- data/templates/default/methoddetails/html/method_header.erb +0 -3
- data/templates/default/methodmissing/html/header.erb +0 -12
- data/templates/default/methodsignature/html/main.erb +0 -10
- data/templates/default/methodsignature/text/main.erb +0 -8
- data/templates/default/methodsummary/html/header.erb +0 -5
- data/templates/default/methodsummary/html/included.erb +0 -9
- data/templates/default/methodsummary/html/inherited.erb +0 -9
- data/templates/default/methodsummary/html/summary.erb +0 -29
- data/templates/default/methodsummary/text/header.erb +0 -5
- data/templates/default/methodsummary/text/included.erb +0 -0
- data/templates/default/methodsummary/text/inherited.erb +0 -0
- data/templates/default/methodsummary/text/summary.erb +0 -6
- data/templates/default/mixins/html/header.erb +0 -4
- data/templates/default/overloads/html/header.erb +0 -8
- data/templates/default/overloads/text/header.erb +0 -8
- data/templates/default/quickdoc/html/header.erb +0 -15
- data/templates/default/quickdoc/text/header.erb +0 -12
- data/templates/default/root/html/header.erb +0 -4
- data/templates/default/source/html/main.erb +0 -15
- data/templates/default/source/text/main.erb +0 -4
- data/templates/default/tags/html/header.erb +0 -4
- data/templates/default/tags/html/param.erb +0 -21
- data/templates/default/tags/html/tags.erb +0 -23
- data/templates/default/tags/html/todo.erb +0 -8
- data/templates/default/tags/text/header.erb +0 -3
- data/templates/default/tags/text/param.erb +0 -9
- data/templates/default/tags/text/tags.erb +0 -7
- data/templates/default/uml/dot/child.erb +0 -1
- data/templates/default/uml/dot/dependencies.erb +0 -10
- data/templates/default/uml/dot/superclasses.erb +0 -9
- data/templates/default/uml/dot/unknown.erb +0 -3
- data/templates/default/uml/dot/unknown_child.erb +0 -1
- data/templates/default/visibilitygroup/html/header.erb +0 -6
- data/templates/javadoc/attributes/html/header.erb +0 -16
- data/templates/javadoc/class/html/header.erb +0 -4
- data/templates/javadoc/constants/html/constants.erb +0 -9
- data/templates/javadoc/constants/html/header.erb +0 -3
- data/templates/javadoc/constants/html/included.erb +0 -12
- data/templates/javadoc/constants/html/inherited.erb +0 -12
- data/templates/javadoc/constructor/html/header.erb +0 -10
- data/templates/javadoc/deprecated/html/main.erb +0 -0
- data/templates/javadoc/docstring/html/main.erb +0 -6
- data/templates/javadoc/fulldoc/html/all_methods.erb +0 -25
- data/templates/javadoc/fulldoc/html/all_namespaces.erb +0 -19
- data/templates/javadoc/fulldoc/html/app.js +0 -18
- data/templates/javadoc/fulldoc/html/header.erb +0 -15
- data/templates/javadoc/fulldoc/html/html_head.erb +0 -3
- data/templates/javadoc/fulldoc/html/index.erb +0 -18
- data/templates/javadoc/fulldoc/html/jquery.js +0 -11
- data/templates/javadoc/fulldoc/html/readme.erb +0 -15
- data/templates/javadoc/fulldoc/html/style.css +0 -22
- data/templates/javadoc/fulldoc/html/syntax_highlight.css +0 -21
- data/templates/javadoc/inheritance/html/header.erb +0 -6
- data/templates/javadoc/method/html/aliases.erb +0 -6
- data/templates/javadoc/method/html/header.erb +0 -4
- data/templates/javadoc/method/html/title.erb +0 -4
- data/templates/javadoc/methoddetails/html/header.erb +0 -8
- data/templates/javadoc/methoddetails/html/method_header.erb +0 -0
- data/templates/javadoc/methodmissing/html/header.erb +0 -12
- data/templates/javadoc/methodsignature/html/main.erb +0 -8
- data/templates/javadoc/methodsummary/html/header.erb +0 -5
- data/templates/javadoc/methodsummary/html/included.erb +0 -12
- data/templates/javadoc/methodsummary/html/inherited.erb +0 -12
- data/templates/javadoc/methodsummary/html/summary.erb +0 -25
- data/templates/javadoc/mixins/html/header.erb +0 -5
- data/templates/javadoc/module/html/header.erb +0 -4
- data/templates/javadoc/source/html/main.erb +0 -15
- data/templates/javadoc/tags/html/header.erb +0 -5
- data/templates/javadoc/tags/html/see.erb +0 -8
- data/templates/javadoc/tags/html/tags.erb +0 -19
- data/templates/javadoc/visibilitygroup/html/header.erb +0 -5
@@ -1,99 +0,0 @@
|
|
1
|
-
module YARD
|
2
|
-
module Generators
|
3
|
-
class TagsGenerator < Base
|
4
|
-
before_section :header, :has_tags?
|
5
|
-
before_section :option, :has_options?
|
6
|
-
before_section :param, :has_params?
|
7
|
-
before_section :todo, :has_todo?
|
8
|
-
|
9
|
-
def sections_for(object)
|
10
|
-
sections = [
|
11
|
-
:header, [ :example, :param, :yield, :yieldparam, :yieldreturn,
|
12
|
-
:return, :raise, :todo, :author, :version, :since, :see ]
|
13
|
-
]
|
14
|
-
if object.tags(:overload).size == 1
|
15
|
-
size = sections.last.size
|
16
|
-
sections.last.reverse.each_with_index do |item, index|
|
17
|
-
sections.last[size - index - 1, 1] = [:with_overload, [item]]
|
18
|
-
end
|
19
|
-
end
|
20
|
-
sections
|
21
|
-
end
|
22
|
-
|
23
|
-
def with_overload(object)
|
24
|
-
yield(object.tag(:overload)) + yield(object)
|
25
|
-
end
|
26
|
-
|
27
|
-
def yield(object)
|
28
|
-
render_tags :yield
|
29
|
-
end
|
30
|
-
|
31
|
-
def yieldparam(object)
|
32
|
-
render_tags :yieldparam
|
33
|
-
end
|
34
|
-
|
35
|
-
def yieldreturn(object)
|
36
|
-
render_tags :yieldreturn
|
37
|
-
end
|
38
|
-
|
39
|
-
def return(object)
|
40
|
-
render_tags :return
|
41
|
-
end
|
42
|
-
|
43
|
-
def raise(object)
|
44
|
-
render_tags :raise, :no_names => true
|
45
|
-
end
|
46
|
-
|
47
|
-
def author(object)
|
48
|
-
render_tags :author, :no_types => true, :no_names => true
|
49
|
-
end
|
50
|
-
|
51
|
-
def version(object)
|
52
|
-
render_tags :version, :no_types => true, :no_names => true
|
53
|
-
end
|
54
|
-
|
55
|
-
def since(object)
|
56
|
-
render_tags :since, :no_types => true, :no_names => true
|
57
|
-
end
|
58
|
-
|
59
|
-
protected
|
60
|
-
|
61
|
-
def has_params?(object)
|
62
|
-
(object.is_a?(Tags::OverloadTag) ||
|
63
|
-
object.is_a?(CodeObjects::MethodObject)) &&
|
64
|
-
tags_by_param(object).size > 0
|
65
|
-
end
|
66
|
-
|
67
|
-
def has_tags?(object)
|
68
|
-
object.tags.size > 0
|
69
|
-
end
|
70
|
-
|
71
|
-
def has_todo?(object)
|
72
|
-
object.has_tag?(:todo)
|
73
|
-
end
|
74
|
-
|
75
|
-
def has_options?(object)
|
76
|
-
object.has_tag?(:option)
|
77
|
-
end
|
78
|
-
|
79
|
-
def render_tags(name, opts = {})
|
80
|
-
opts = { :name => name }.update(opts)
|
81
|
-
render(current_object, 'tags', opts)
|
82
|
-
end
|
83
|
-
|
84
|
-
def tags_by_param(object)
|
85
|
-
cache = {}
|
86
|
-
[:param, :option].each do |sym|
|
87
|
-
object.tags(sym).each do |t|
|
88
|
-
cache[t.name.to_s] = t
|
89
|
-
end
|
90
|
-
end
|
91
|
-
|
92
|
-
object.parameters.map do |p|
|
93
|
-
name = p.first.to_s
|
94
|
-
cache[name] || cache[name[/^[*&](\w+)$/, 1]]
|
95
|
-
end.compact
|
96
|
-
end
|
97
|
-
end
|
98
|
-
end
|
99
|
-
end
|
@@ -1,102 +0,0 @@
|
|
1
|
-
module YARD
|
2
|
-
module Generators
|
3
|
-
class UMLGenerator < Base
|
4
|
-
include Helpers::UMLHelper
|
5
|
-
|
6
|
-
before_generate :init
|
7
|
-
before_section :dependencies, :show_dependencies?
|
8
|
-
|
9
|
-
def sections_for(object)
|
10
|
-
[
|
11
|
-
:header,
|
12
|
-
[
|
13
|
-
:unknown, [:unresolved, [:unknown_child]],
|
14
|
-
:subgraph, [:info],
|
15
|
-
:superclasses,
|
16
|
-
:dependencies
|
17
|
-
]
|
18
|
-
]
|
19
|
-
end
|
20
|
-
|
21
|
-
def header(object, &block)
|
22
|
-
tidy render(object, :header, &block)
|
23
|
-
end
|
24
|
-
|
25
|
-
def subgraph(object, &block)
|
26
|
-
name = namespaces(object).empty? ? :child : :subgraph
|
27
|
-
render(object, name, &block)
|
28
|
-
end
|
29
|
-
|
30
|
-
def unresolved(object, &block)
|
31
|
-
@objects.select {|o| o.is_a?(CodeObjects::Proxy) }.map {|o| yield(o) }.join("\n")
|
32
|
-
end
|
33
|
-
|
34
|
-
protected
|
35
|
-
|
36
|
-
def show_full_info?; options.has_key? :full end
|
37
|
-
def show_dependencies?; options.has_key? :dependencies end
|
38
|
-
|
39
|
-
def init(object)
|
40
|
-
@objects = {}
|
41
|
-
process_objects(object)
|
42
|
-
@objects = @objects.values
|
43
|
-
end
|
44
|
-
|
45
|
-
def namespaces(object)
|
46
|
-
object.children.select {|o| o.is_a?(CodeObjects::NamespaceObject) }
|
47
|
-
end
|
48
|
-
|
49
|
-
def unresolved_objects
|
50
|
-
@direction_paths.values.flatten.select {|o| o.is_a?(CodeObjects::Proxy) }.uniq
|
51
|
-
end
|
52
|
-
|
53
|
-
def format_path(object)
|
54
|
-
object.path.gsub('::', '_')
|
55
|
-
end
|
56
|
-
|
57
|
-
def h(text)
|
58
|
-
text.to_s.gsub(/(\W)/, '\\\\\1')
|
59
|
-
end
|
60
|
-
|
61
|
-
def process_objects(object)
|
62
|
-
@objects[object.path] = object
|
63
|
-
@objects[object.superclass.path] = object.superclass if object.is_a?(CodeObjects::ClassObject) && object.superclass
|
64
|
-
object.mixins.each {|o| @objects[o.path] = o }
|
65
|
-
|
66
|
-
namespaces(object).each {|o| process_objects(o) }
|
67
|
-
end
|
68
|
-
|
69
|
-
def method_list(object, attributes = false)
|
70
|
-
vissort = lambda {|vis| vis == :public ? 'a' : (vis == :protected ? 'b' : 'c') }
|
71
|
-
|
72
|
-
meths = object.meths(:inherited => false, :included => false, :visibility => options[:visibility])
|
73
|
-
meths = remove_overriden_meths(object, meths)
|
74
|
-
meths = meths.select {|o| attributes ? o.is_attribute? : !o.is_attribute? }
|
75
|
-
meths = meths.reject {|o| o.is_alias? }
|
76
|
-
meths = meths.sort_by {|o| "#{o.scope}#{vissort.call(o.visibility)}#{o.name}" }
|
77
|
-
end
|
78
|
-
|
79
|
-
private
|
80
|
-
|
81
|
-
def remove_overriden_meths(object, meth_list)
|
82
|
-
object.inheritance_tree(true)[1..-1].each do |sclass|
|
83
|
-
next if CodeObjects::Proxy === sclass
|
84
|
-
meth_list.reject! {|o| sclass.child(:scope => o.scope, :name => o.name) }
|
85
|
-
end
|
86
|
-
meth_list
|
87
|
-
end
|
88
|
-
|
89
|
-
def tidy(data)
|
90
|
-
indent = 0
|
91
|
-
data.split(/\n/).map do |line|
|
92
|
-
line.gsub!(/^\s*/, '')
|
93
|
-
next if line.empty?
|
94
|
-
indent -= 1 if line =~ /^\s*\}\s*$/
|
95
|
-
line = (' ' * (indent * 2)) + line
|
96
|
-
indent += 1 if line =~ /\{\s*$/
|
97
|
-
line
|
98
|
-
end.compact.join("\n") + "\n"
|
99
|
-
end
|
100
|
-
end
|
101
|
-
end
|
102
|
-
end
|
@@ -1,26 +0,0 @@
|
|
1
|
-
module YARD
|
2
|
-
module Generators
|
3
|
-
class VisibilityGroupGenerator < Base
|
4
|
-
attr_reader :visibility
|
5
|
-
|
6
|
-
def initialize(*args)
|
7
|
-
super
|
8
|
-
@visibility = options[:visibility]
|
9
|
-
end
|
10
|
-
|
11
|
-
before_generate :is_namespace?
|
12
|
-
|
13
|
-
def sections_for(object)
|
14
|
-
[
|
15
|
-
:header,
|
16
|
-
[
|
17
|
-
G(MethodSummaryGenerator, :visibility => visibility, :scope => :class),
|
18
|
-
G(MethodSummaryGenerator, :visibility => visibility, :scope => :instance),
|
19
|
-
G(MethodDetailsGenerator, :visibility => visibility, :scope => :class),
|
20
|
-
G(MethodDetailsGenerator, :visibility => visibility, :scope => :instance)
|
21
|
-
]
|
22
|
-
]
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
@@ -1,64 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../spec_helper'
|
2
|
-
require 'stringio'
|
3
|
-
|
4
|
-
include YARD::Generators
|
5
|
-
|
6
|
-
describe YARD::Generators::Base, 'Section handling' do
|
7
|
-
before { Registry.clear }
|
8
|
-
|
9
|
-
it "should allow a list of sections to be returned by sections_for" do
|
10
|
-
base = Generators::Base.new
|
11
|
-
base.stub!(:sections_for).and_return [:meth1, :meth2, :meth3]
|
12
|
-
base.should_receive(:meth1).and_return('a')
|
13
|
-
base.should_receive(:meth2).and_return('b')
|
14
|
-
base.should_receive(:meth3).and_return('c')
|
15
|
-
base.generate(Registry.root).should == 'abc'
|
16
|
-
end
|
17
|
-
|
18
|
-
it "should allow a heirarchical list of sections to be returned by sections_for" do
|
19
|
-
base = Generators::Base.new
|
20
|
-
base.stub!(:sections_for).and_return [:meth1, [:meth2, :meth3]]
|
21
|
-
base.should_receive(:meth1).and_return('a')
|
22
|
-
base.should_not_receive(:meth2)
|
23
|
-
base.should_not_receive(:meth3)
|
24
|
-
base.generate(Registry.root).should == 'a'
|
25
|
-
base.current_object.should == Registry.root
|
26
|
-
end
|
27
|
-
|
28
|
-
it "should yield sub section lists to the parent section" do
|
29
|
-
class XYZ < Generators::Base
|
30
|
-
def sections_for(object) [:meth1, [:submeth1, :submeth2, [:submeth1]]] end
|
31
|
-
def meth1(object) object.name.to_s + yield(object) end
|
32
|
-
def submeth1(object) object.name.to_s end
|
33
|
-
def submeth2(object) object.name.to_s + yield(P(:YARD)) end
|
34
|
-
end
|
35
|
-
|
36
|
-
CodeObjects::Base.new(:root, :YARD)
|
37
|
-
XYZ.new.generate(Registry.root).should == "rootrootrootYARD"
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
describe YARD::Generators::Base, 'Rendering' do
|
42
|
-
it "should have a default template path" do
|
43
|
-
Generators::Base.template_paths.should == [YARD::TEMPLATE_ROOT]
|
44
|
-
end
|
45
|
-
|
46
|
-
it "should find the right erb file to render given a template, format and name" do
|
47
|
-
base = Generators::Base.new
|
48
|
-
file = File.join(YARD::TEMPLATE_ROOT, 'default', 'base', 'html', 'name.erb')
|
49
|
-
File.should_receive(:file?).with(file).and_return(true)
|
50
|
-
File.should_receive(:read).with(file).and_return("output")
|
51
|
-
base.stub!(:sections_for).and_return([:name])
|
52
|
-
base.generate(Registry.root).should == "output"
|
53
|
-
end
|
54
|
-
|
55
|
-
it "should allow the user to add extra search paths to find a custom template" do
|
56
|
-
Generators::Base.register_template_path 'doc'
|
57
|
-
base = Generators::Base.new
|
58
|
-
file = File.join('doc', 'default', 'base', 'html', 'name.erb')
|
59
|
-
File.should_receive(:file?).with(file).and_return(true)
|
60
|
-
File.should_receive(:read).with(file).and_return("output")
|
61
|
-
base.stub!(:sections_for).and_return([:name])
|
62
|
-
base.generate(Registry.root).should == "output"
|
63
|
-
end
|
64
|
-
end
|
@@ -1,29 +0,0 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__), *%w|.. spec_helper|)
|
2
|
-
|
3
|
-
class YARD::Generators::FullDocGenerator
|
4
|
-
public :generate_files, :readme_file_exists? # public for test
|
5
|
-
end
|
6
|
-
|
7
|
-
describe YARD::Generators::FullDocGenerator do
|
8
|
-
it "should know about absence of 'readme' file" do
|
9
|
-
generator = Generators::FullDocGenerator.new(:readme => nil)
|
10
|
-
generator.readme_file_exists?.should == false
|
11
|
-
end
|
12
|
-
|
13
|
-
it "should know about existence of 'readme' file" do
|
14
|
-
generator = Generators::FullDocGenerator.new(:readme => __FILE__)
|
15
|
-
generator.readme_file_exists?.should == true
|
16
|
-
end
|
17
|
-
|
18
|
-
it "should allow absence of 'readme' file" do
|
19
|
-
serializer = mock('serializer')
|
20
|
-
generator_options = {
|
21
|
-
:format => :html,
|
22
|
-
:serializer => serializer,
|
23
|
-
:readme => nil
|
24
|
-
}
|
25
|
-
generator = Generators::FullDocGenerator.new(generator_options)
|
26
|
-
serializer.should_not_receive(:serialize)
|
27
|
-
lambda { generator.generate_files }.should_not raise_error(Errno::ENOENT)
|
28
|
-
end
|
29
|
-
end
|
@@ -1,15 +0,0 @@
|
|
1
|
-
describe YARD::Generators::Helpers::BaseHelper, "#linkify" do
|
2
|
-
include YARD::Generators::Helpers::BaseHelper
|
3
|
-
|
4
|
-
it "should pass off to #link_object if argument is an object" do
|
5
|
-
obj = CodeObjects::NamespaceObject.new(nil, :YARD)
|
6
|
-
should_receive(:link_object).with(obj)
|
7
|
-
linkify obj
|
8
|
-
end
|
9
|
-
|
10
|
-
it "should pass off to #link_url if argument is recognized as a URL" do
|
11
|
-
url = "http://yard.soen.ca/"
|
12
|
-
should_receive(:link_url).with(url)
|
13
|
-
linkify url
|
14
|
-
end
|
15
|
-
end
|
@@ -1,13 +0,0 @@
|
|
1
|
-
describe YARD::Generators::QuickDocGenerator do
|
2
|
-
before { Registry.clear }
|
3
|
-
|
4
|
-
it "should call all sections" do
|
5
|
-
Parser::SourceParser.parse_string(<<-eof)
|
6
|
-
class A
|
7
|
-
# Docstring
|
8
|
-
def method1; end
|
9
|
-
end
|
10
|
-
eof
|
11
|
-
g = Generators::QuickDocGenerator.new
|
12
|
-
end
|
13
|
-
end
|
@@ -1,47 +0,0 @@
|
|
1
|
-
<div class="section <%= generator_name %>">
|
2
|
-
<h1>Attributes</h1>
|
3
|
-
|
4
|
-
<% ['class', 'instance'].select {|s| object.attributes[s].length > 0 }.each do |scope| %>
|
5
|
-
<div class="<%= scope %>">
|
6
|
-
<h2><%= scope.capitalize %> Attributes</h2>
|
7
|
-
<table>
|
8
|
-
<% object.attributes[scope].sort_by {|o| o.to_s.downcase }.each do |name, rw| %>
|
9
|
-
<% aliases = (rw[:read] || rw[:write]).aliases %>
|
10
|
-
<tr class="<%= 'hasaliases' if aliases.length > 0 %>">
|
11
|
-
<th class='signature'>
|
12
|
-
<span class='name'><%= h name %></span>
|
13
|
-
</td>
|
14
|
-
<td class="readwrite">
|
15
|
-
[<%= ['read', 'write'].map {|t|
|
16
|
-
rw[t] && (rw[t].is_explicit? ? t[0,1].upcase : "<span id='#{anchor_for rw[t]}'>#{t[0,1].upcase}</span>")
|
17
|
-
}.compact.join %>]
|
18
|
-
</td>
|
19
|
-
<td class="visibility">
|
20
|
-
<%= rw.values.compact.first.visibility %>
|
21
|
-
</td>
|
22
|
-
<td class="docstring">
|
23
|
-
<%= htmlify rw.values.compact.first.docstring.summary %>
|
24
|
-
<% if rw[:read] && rw[:read].tag(:return) && rw[:read].tag(:return).types %>
|
25
|
-
<p class='returns'>
|
26
|
-
Returns:
|
27
|
-
<span class='return_types'>
|
28
|
-
<%= format_return_types rw[:read] %>
|
29
|
-
</span>
|
30
|
-
</p>
|
31
|
-
<% end %>
|
32
|
-
</td>
|
33
|
-
</tr>
|
34
|
-
<% if aliases.length > 0 %>
|
35
|
-
<tr>
|
36
|
-
<td colspan='4' class='aliases'><span class='text'>Also known as:</span>
|
37
|
-
<% aliases.each_with_index do |obj, i| %>
|
38
|
-
<span class='alias'><%= h obj.name.to_s.sub(/=$/, '') %></span><%= "," if i < aliases.length - 1 %>
|
39
|
-
<% end %>
|
40
|
-
</td>
|
41
|
-
</tr>
|
42
|
-
<% end %>
|
43
|
-
<% end %>
|
44
|
-
</table>
|
45
|
-
</div>
|
46
|
-
<% end %>
|
47
|
-
</div>
|
@@ -1,10 +0,0 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
> Attributes:
|
4
|
-
-------------
|
5
|
-
<% ['class', 'instance'].select {|s| object.attributes[s].length > 0 }.each do |scope| %>
|
6
|
-
<% object.attributes[scope].sort_by {|o| o.to_s.downcase }.each do |name, rw| %>
|
7
|
-
<%= uml_visibility rw.values.compact.first %> <%= name %><%= " " if scope == 'class' %> [<%= ['read', 'write'].map {|t| rw[t] ? t[0,1].upcase : ' ' }.compact.join %>] (<%= rw.values.compact.first.visibility %>)
|
8
|
-
<% end %>
|
9
|
-
<% end %>
|
10
|
-
|
@@ -1,9 +0,0 @@
|
|
1
|
-
<div class="thisclass">
|
2
|
-
<h1>Constants</h1>
|
3
|
-
<dl>
|
4
|
-
<% object.constants(:included => false, :inherited => false).sort_by {|c| c.name.to_s.downcase }.each do |const| %>
|
5
|
-
<dt id="<%= anchor_for(const) %>"><%= h const.name %></dt>
|
6
|
-
<dd><%= h const.source.gsub(/\A.+?\=\s*/, '') %></dd>
|
7
|
-
<% end %>
|
8
|
-
</dl>
|
9
|
-
</div>
|