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
@@ -0,0 +1,11 @@
|
|
1
|
+
<h2>Tag Listing</h2>
|
2
|
+
<p>The following are a brief list of tags that can be used in YARD formatted
|
3
|
+
documentation. See <%= link_file "docs/Tags.md" %> for information on using tags.</p>
|
4
|
+
<ul id="tags" class="index_inline_list">
|
5
|
+
<% n = 1 %>
|
6
|
+
<% collect_tags.each do |tag| %>
|
7
|
+
<li class="r<%= n %>"><%= tag_link(tag) %></li>
|
8
|
+
<% n = n == 2 ? 1 : 2 %>
|
9
|
+
<% end %>
|
10
|
+
</ul>
|
11
|
+
<div class="clear"></div>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<% [["Tag", all_tags], ["Directive", all_directives]].each do |(name, list)| %>
|
2
|
+
<h2><%= name %> List</h2>
|
3
|
+
|
4
|
+
<% list.each_with_index do |tag, i| %>
|
5
|
+
<div class="method_details <%= i == 0 ? 'first' : '' %>">
|
6
|
+
<h3 class="signature"
|
7
|
+
id="<%= tag.name %>" toc-title="<%= tag_link_name(tag) %>">
|
8
|
+
<%= tag_signature tag %>
|
9
|
+
</h3>
|
10
|
+
<% if name == "Directive" %>
|
11
|
+
<%= yieldall :object => P("YARD::Tags::#{tag.text}") %>
|
12
|
+
<% else %>
|
13
|
+
<%= yieldall :object => tag.object %>
|
14
|
+
<% end %>
|
15
|
+
</div>
|
16
|
+
<% end %>
|
17
|
+
|
18
|
+
<% end%>
|
@@ -0,0 +1,27 @@
|
|
1
|
+
def init
|
2
|
+
sections :list, [T('docstring')]
|
3
|
+
end
|
4
|
+
|
5
|
+
def tag_signature(tag)
|
6
|
+
types = tag.types || []
|
7
|
+
signature = "<strong>#{tag_link_name(tag)}</strong> "
|
8
|
+
extra = nil
|
9
|
+
if sig_tag = tag.object.tag('yard.signature')
|
10
|
+
extra = sig_tag.text
|
11
|
+
end
|
12
|
+
extra = case types.first
|
13
|
+
when 'with_name'
|
14
|
+
"name description"
|
15
|
+
when 'with_types'
|
16
|
+
"[Types] description"
|
17
|
+
when 'with_types_and_name'
|
18
|
+
"name [Types] description"
|
19
|
+
when 'with_title_and_text'
|
20
|
+
"title\ndescription"
|
21
|
+
when 'with_types_and_title'
|
22
|
+
"[Types] title\ndescription"
|
23
|
+
else
|
24
|
+
"description"
|
25
|
+
end if extra.nil?
|
26
|
+
signature + h(extra).gsub(/\n/, "<br/> ")
|
27
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
include YARD
|
2
|
+
include Templates
|
3
|
+
|
4
|
+
module TagTemplateHelper
|
5
|
+
def all_tags
|
6
|
+
Registry.all(:method).map {|m| m.tag('yard.tag') }.compact
|
7
|
+
end
|
8
|
+
|
9
|
+
def all_directives
|
10
|
+
Registry.all(:method).map {|m| m.tag('yard.directive') }.compact
|
11
|
+
end
|
12
|
+
|
13
|
+
def collect_tags
|
14
|
+
(all_tags + all_directives).sort_by {|t| t.name }
|
15
|
+
end
|
16
|
+
|
17
|
+
def tag_link(tag)
|
18
|
+
link_file("docs/Tags.md", tag_link_name(tag), tag.name)
|
19
|
+
end
|
20
|
+
|
21
|
+
def tag_link_name(tag)
|
22
|
+
prefix = tag.tag_name == 'yard.directive' ? '@!' : '@'
|
23
|
+
h(prefix + tag.name)
|
24
|
+
end
|
25
|
+
|
26
|
+
# Wrap url_for and url_for_file to rewrite object when generating docs for
|
27
|
+
# yard.tag/directive objects.
|
28
|
+
%w(url_for, url_for_file).each do |meth|
|
29
|
+
self.class.send(:define_method, meth) do
|
30
|
+
if object.is_a?(CodeObjects::Base) &&
|
31
|
+
(object.tag('yard.tag') || object.tag('yard.directive') ||
|
32
|
+
(object.type == :class && object.superclass.name == :Directive))
|
33
|
+
obj, self.object = object, Registry.root
|
34
|
+
url = super
|
35
|
+
self.object = obj
|
36
|
+
url
|
37
|
+
else
|
38
|
+
super
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def linkify(*args)
|
44
|
+
if args.first.is_a?(String)
|
45
|
+
case args.first
|
46
|
+
when "yard:include_tags"
|
47
|
+
return T('yard_tags').run(options)
|
48
|
+
when /^tag:(\S+)/
|
49
|
+
tag_name, suffix = $1, "tag"
|
50
|
+
if tag_name =~ /^!/
|
51
|
+
tag_name, suffix = tag_name[1..-1], "directive"
|
52
|
+
end
|
53
|
+
if obj = Registry.at("YARD::Tags::Library##{tag_name}_#{suffix}")
|
54
|
+
return tag_link(obj.tag("yard.#{suffix}"))
|
55
|
+
end
|
56
|
+
log.warn "Cannot find tag: #{args.first}"
|
57
|
+
return args.first
|
58
|
+
end
|
59
|
+
end
|
60
|
+
super
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
Template.extra_includes << TagTemplateHelper
|
65
|
+
Engine.register_template_path(File.dirname(__FILE__))
|
data/lib/yard.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
module YARD
|
2
|
-
VERSION = "0.
|
2
|
+
VERSION = "0.8.0"
|
3
3
|
|
4
4
|
# The root path for YARD source libraries
|
5
5
|
ROOT = File.expand_path(File.dirname(__FILE__))
|
@@ -32,15 +32,6 @@ end
|
|
32
32
|
# Keep track of Ruby version for compatibility code
|
33
33
|
RUBY19, RUBY18 = *(RUBY_VERSION >= "1.9.1" ? [true, false] : [false, true])
|
34
34
|
|
35
|
-
# Whether or not continuations are (properly) supported
|
36
|
-
begin
|
37
|
-
begin; require 'continuation'; rescue LoadError; end
|
38
|
-
cc = callcc {|cc| cc }; cc.call if cc
|
39
|
-
CONTINUATIONS_SUPPORTED = true
|
40
|
-
rescue Exception
|
41
|
-
CONTINUATIONS_SUPPORTED = false
|
42
|
-
end
|
43
|
-
|
44
35
|
# Load Ruby core extension classes
|
45
36
|
Dir.glob(File.join(YARD::ROOT, 'yard', 'core_ext', '*.rb')).each do |file|
|
46
37
|
require file
|
data/lib/yard/autoload.rb
CHANGED
@@ -15,6 +15,7 @@ module YARD
|
|
15
15
|
autoload :Stats, __p('cli/stats')
|
16
16
|
autoload :Yardoc, __p('cli/yardoc')
|
17
17
|
autoload :YRI, __p('cli/yri')
|
18
|
+
autoload :I18n, __p('cli/i18n')
|
18
19
|
end
|
19
20
|
|
20
21
|
# A "code object" is defined as any entity in the Ruby language.
|
@@ -57,6 +58,26 @@ module YARD
|
|
57
58
|
# parsing phase. This allows YARD as well as any custom extension to
|
58
59
|
# analyze source and generate {CodeObjects} to be stored for later use.
|
59
60
|
module Handlers
|
61
|
+
# CRuby Handlers
|
62
|
+
# @since 0.8.0
|
63
|
+
module C
|
64
|
+
autoload :Base, __p('handlers/c/base')
|
65
|
+
|
66
|
+
autoload :AliasHandler, __p('handlers/c/alias_handler')
|
67
|
+
autoload :AttributeHandler, __p('handlers/c/attribute_handler')
|
68
|
+
autoload :ClassHandler, __p('handlers/c/class_handler')
|
69
|
+
autoload :ConstantHandler, __p('handlers/c/constant_handler')
|
70
|
+
autoload :HandlerMethods, __p('handlers/c/handler_methods')
|
71
|
+
autoload :InitHandler, __p('handlers/c/init_handler')
|
72
|
+
autoload :MethodHandler, __p('handlers/c/method_handler')
|
73
|
+
autoload :MixinHandler, __p('handlers/c/mixin_handler')
|
74
|
+
autoload :ModuleHandler, __p('handlers/c/module_handler')
|
75
|
+
autoload :OverrideCommentHandler, __p('handlers/c/override_comment_handler')
|
76
|
+
autoload :PathHandler, __p('handlers/c/path_handler')
|
77
|
+
autoload :StructHandler, __p('handlers/c/struct_handler')
|
78
|
+
autoload :SymbolHandler, __p('handlers/c/symbol_handler')
|
79
|
+
end
|
80
|
+
|
60
81
|
module Ruby # All Ruby handlers
|
61
82
|
module Legacy # Handlers for old Ruby 1.8 parser
|
62
83
|
autoload :Base, __p('handlers/ruby/legacy/base')
|
@@ -66,13 +87,15 @@ module YARD
|
|
66
87
|
autoload :ClassHandler, __p('handlers/ruby/legacy/class_handler')
|
67
88
|
autoload :ClassConditionHandler, __p('handlers/ruby/legacy/class_condition_handler')
|
68
89
|
autoload :ClassVariableHandler, __p('handlers/ruby/legacy/class_variable_handler')
|
90
|
+
autoload :CommentHandler, __p('handlers/ruby/legacy/comment_handler')
|
69
91
|
autoload :ConstantHandler, __p('handlers/ruby/legacy/constant_handler')
|
92
|
+
autoload :DSLHandler, __p('handlers/ruby/legacy/dsl_handler')
|
70
93
|
autoload :ExceptionHandler, __p('handlers/ruby/legacy/exception_handler')
|
71
94
|
autoload :ExtendHandler, __p('handlers/ruby/legacy/extend_handler')
|
72
|
-
autoload :MacroHandler, __p('handlers/ruby/legacy/macro_handler')
|
73
95
|
autoload :MethodHandler, __p('handlers/ruby/legacy/method_handler')
|
74
96
|
autoload :MixinHandler, __p('handlers/ruby/legacy/mixin_handler')
|
75
97
|
autoload :ModuleHandler, __p('handlers/ruby/legacy/module_handler')
|
98
|
+
autoload :ModuleFunctionHandler, __p('handlers/ruby/legacy/module_function_handler')
|
76
99
|
autoload :PrivateConstantHandler, __p('handlers/ruby/legacy/private_constant_handler')
|
77
100
|
autoload :VisibilityHandler, __p('handlers/ruby/legacy/visibility_handler')
|
78
101
|
autoload :YieldHandler, __p('handlers/ruby/legacy/yield_handler')
|
@@ -85,15 +108,17 @@ module YARD
|
|
85
108
|
autoload :ClassHandler, __p('handlers/ruby/class_handler')
|
86
109
|
autoload :ClassConditionHandler, __p('handlers/ruby/class_condition_handler')
|
87
110
|
autoload :ClassVariableHandler, __p('handlers/ruby/class_variable_handler')
|
111
|
+
autoload :CommentHandler, __p('handlers/ruby/comment_handler')
|
88
112
|
autoload :ConstantHandler, __p('handlers/ruby/constant_handler')
|
113
|
+
autoload :DSLHandler, __p('handlers/ruby/dsl_handler')
|
114
|
+
autoload :DSLHandlerMethods, __p('handlers/ruby/dsl_handler_methods')
|
89
115
|
autoload :ExceptionHandler, __p('handlers/ruby/exception_handler')
|
90
116
|
autoload :ExtendHandler, __p('handlers/ruby/extend_handler')
|
91
|
-
autoload :MacroHandler, __p('handlers/ruby/macro_handler')
|
92
|
-
autoload :MacroHandlerMethods, __p('handlers/ruby/macro_handler_methods')
|
93
117
|
autoload :MethodHandler, __p('handlers/ruby/method_handler')
|
94
118
|
autoload :MethodConditionHandler, __p('handlers/ruby/method_condition_handler')
|
95
119
|
autoload :MixinHandler, __p('handlers/ruby/mixin_handler')
|
96
120
|
autoload :ModuleHandler, __p('handlers/ruby/module_handler')
|
121
|
+
autoload :ModuleFunctionHandler, __p('handlers/ruby/module_function_handler')
|
97
122
|
autoload :PrivateConstantHandler, __p('handlers/ruby/private_constant_handler')
|
98
123
|
autoload :StructHandlerMethods, __p('handlers/ruby/struct_handler_methods')
|
99
124
|
autoload :VisibilityHandler, __p('handlers/ruby/visibility_handler')
|
@@ -105,9 +130,25 @@ module YARD
|
|
105
130
|
autoload :Processor, __p('handlers/processor')
|
106
131
|
end
|
107
132
|
|
133
|
+
# Namespace for internationalization (i18n)
|
134
|
+
# @since 0.8.0
|
135
|
+
module I18n
|
136
|
+
autoload :PotGenerator, __p('i18n/pot_generator')
|
137
|
+
autoload :Text, __p('i18n/text')
|
138
|
+
end
|
139
|
+
|
108
140
|
# The parser namespace holds all parsing engines used by YARD.
|
109
141
|
# Currently only Ruby and C (Ruby) parsers are implemented.
|
110
142
|
module Parser
|
143
|
+
module C # CRuby Parsing components
|
144
|
+
autoload :BodyStatement, __p('parser/c/statement')
|
145
|
+
autoload :Comment, __p('parser/c/statement')
|
146
|
+
autoload :CommentParser, __p('parser/c/comment_parser')
|
147
|
+
autoload :CParser, __p('parser/c/c_parser')
|
148
|
+
autoload :Statement, __p('parser/c/statement')
|
149
|
+
autoload :ToplevelStatement, __p('parser/c/statement')
|
150
|
+
end
|
151
|
+
|
111
152
|
module Ruby # Ruby parsing components.
|
112
153
|
module Legacy # Handles Ruby parsing in Ruby 1.8.
|
113
154
|
autoload :RipperParser, __p('parser/ruby/legacy/ruby_parser')
|
@@ -123,7 +164,6 @@ module YARD
|
|
123
164
|
end
|
124
165
|
|
125
166
|
autoload :Base, __p('parser/base')
|
126
|
-
autoload :CParser, __p('parser/c_parser')
|
127
167
|
autoload :ParserSyntaxError, __p('parser/source_parser')
|
128
168
|
autoload :SourceParser, __p('parser/source_parser')
|
129
169
|
autoload :UndocumentableError, __p('parser/source_parser')
|
@@ -162,9 +202,6 @@ module YARD
|
|
162
202
|
autoload :DisplayObjectCommand, __p('server/commands/display_object_command')
|
163
203
|
autoload :FramesCommand, __p('server/commands/frames_command')
|
164
204
|
autoload :ListCommand, __p('server/commands/list_command')
|
165
|
-
autoload :ListClassesCommand, __p('server/commands/list_command')
|
166
|
-
autoload :ListFilesCommand, __p('server/commands/list_command')
|
167
|
-
autoload :ListMethodsCommand, __p('server/commands/list_command')
|
168
205
|
autoload :LibraryCommand, __p('server/commands/library_command')
|
169
206
|
autoload :LibraryIndexCommand, __p('server/commands/library_index_command')
|
170
207
|
autoload :SearchCommand, __p('server/commands/search_command')
|
@@ -186,15 +223,23 @@ module YARD
|
|
186
223
|
end
|
187
224
|
|
188
225
|
module Tags # Namespace for Tag components
|
189
|
-
autoload :
|
190
|
-
autoload :
|
191
|
-
autoload :
|
192
|
-
autoload :
|
193
|
-
autoload :
|
194
|
-
autoload :
|
195
|
-
autoload :
|
196
|
-
autoload :
|
197
|
-
autoload :
|
226
|
+
autoload :AttributeDirective, __p('tags/directives')
|
227
|
+
autoload :DefaultFactory, __p('tags/default_factory')
|
228
|
+
autoload :DefaultTag, __p('tags/default_tag')
|
229
|
+
autoload :EndGroupDirective, __p('tags/directives')
|
230
|
+
autoload :GroupDirective, __p('tags/directives')
|
231
|
+
autoload :Library, __p('tags/library')
|
232
|
+
autoload :MacroDirective, __p('tags/directives')
|
233
|
+
autoload :MethodDirective, __p('tags/directives')
|
234
|
+
autoload :OptionTag, __p('tags/option_tag')
|
235
|
+
autoload :OverloadTag, __p('tags/overload_tag')
|
236
|
+
autoload :ParseDirective, __p('tags/directives')
|
237
|
+
autoload :RefTag, __p('tags/ref_tag')
|
238
|
+
autoload :RefTagList, __p('tags/ref_tag_list')
|
239
|
+
autoload :ScopeDirective, __p('tags/directives')
|
240
|
+
autoload :Tag, __p('tags/tag')
|
241
|
+
autoload :TagFormatError, __p('tags/tag_format_error')
|
242
|
+
autoload :VisibilityDirective, __p('tags/directives')
|
198
243
|
end
|
199
244
|
|
200
245
|
# Namespace for templating system
|
@@ -215,19 +260,22 @@ module YARD
|
|
215
260
|
autoload :UMLHelper, __p('templates/helpers/uml_helper')
|
216
261
|
end
|
217
262
|
|
218
|
-
autoload :Engine,
|
219
|
-
autoload :ErbCache,
|
220
|
-
autoload :Section,
|
221
|
-
autoload :Template,
|
263
|
+
autoload :Engine, __p('templates/engine')
|
264
|
+
autoload :ErbCache, __p('templates/erb_cache')
|
265
|
+
autoload :Section, __p('templates/section')
|
266
|
+
autoload :Template, __p('templates/template')
|
267
|
+
autoload :TemplateOptions, __p('templates/template_options')
|
222
268
|
end
|
223
269
|
|
224
|
-
autoload :Config,
|
225
|
-
autoload :Docstring,
|
226
|
-
autoload :
|
227
|
-
autoload :
|
228
|
-
autoload :
|
229
|
-
autoload :
|
230
|
-
autoload :
|
270
|
+
autoload :Config, __p('config')
|
271
|
+
autoload :Docstring, __p('docstring')
|
272
|
+
autoload :DocstringParser, __p('docstring_parser')
|
273
|
+
autoload :Logger, __p('logging')
|
274
|
+
autoload :Options, __p('options')
|
275
|
+
autoload :Registry, __p('registry')
|
276
|
+
autoload :RegistryStore, __p('registry_store')
|
277
|
+
autoload :StubProxy, __p('serializers/yardoc_serializer')
|
278
|
+
autoload :Verifier, __p('verifier')
|
231
279
|
end
|
232
280
|
|
233
281
|
undef __p
|
data/lib/yard/cli/command.rb
CHANGED
@@ -34,6 +34,9 @@ module YARD
|
|
34
34
|
' Always on in 1.8.x.') do
|
35
35
|
YARD::Parser::SourceParser.parser_type = :ruby18
|
36
36
|
end
|
37
|
+
opts.on('--safe', 'Enable safe mode for this instance') do
|
38
|
+
# Parsed in YARD::Config.load
|
39
|
+
end
|
37
40
|
opts.on_tail('-q', '--quiet', 'Show no warnings.') { log.level = Logger::ERROR }
|
38
41
|
opts.on_tail('--verbose', 'Show more information.') { log.level = Logger::INFO }
|
39
42
|
opts.on_tail('--debug', 'Show debugging information.') { log.level = Logger::DEBUG }
|
@@ -56,14 +59,14 @@ module YARD
|
|
56
59
|
retry
|
57
60
|
end
|
58
61
|
|
59
|
-
# Loads a Ruby script. If
|
62
|
+
# Loads a Ruby script. If <tt>Config.options[:safe_mode]</tt> is enabled,
|
60
63
|
# this method will do nothing.
|
61
64
|
#
|
62
65
|
# @param [String] file the path to the script to load
|
63
66
|
# @since 0.6.2
|
64
67
|
def load_script(file)
|
65
68
|
return if YARD::Config.options[:safe_mode]
|
66
|
-
|
69
|
+
load(file)
|
67
70
|
rescue LoadError => load_exception
|
68
71
|
log.error "The file `#{file}' could not be loaded:\n#{load_exception}"
|
69
72
|
exit
|
data/lib/yard/cli/diff.rb
CHANGED
@@ -0,0 +1,69 @@
|
|
1
|
+
require "pathname"
|
2
|
+
|
3
|
+
module YARD
|
4
|
+
module CLI
|
5
|
+
# CLI command to support internationalization (a.k.a. i18n).
|
6
|
+
# I18n feature is based on gettext technology.
|
7
|
+
# This command generates .pot file from docstring and extra
|
8
|
+
# documentation.
|
9
|
+
#
|
10
|
+
# @since 0.8.0
|
11
|
+
# @todo Support msgminit and msgmerge features?
|
12
|
+
class I18n < Yardoc
|
13
|
+
def initialize
|
14
|
+
super
|
15
|
+
@options.serializer.basepath = "po/yard.pot"
|
16
|
+
end
|
17
|
+
|
18
|
+
def description
|
19
|
+
'Generates .pot file from source code and extra documentation'
|
20
|
+
end
|
21
|
+
|
22
|
+
def run(*args)
|
23
|
+
if args.size == 0 || !args.first.nil?
|
24
|
+
# fail early if arguments are not valid
|
25
|
+
return unless parse_arguments(*args)
|
26
|
+
end
|
27
|
+
|
28
|
+
YARD.parse(files, excluded)
|
29
|
+
|
30
|
+
serializer = options.serializer
|
31
|
+
pot_file_path = Pathname.new(serializer.basepath).expand_path
|
32
|
+
pot_file_dir_path, pot_file_basename = pot_file_path.split
|
33
|
+
relative_base_path = Pathname.pwd.relative_path_from(pot_file_dir_path)
|
34
|
+
serializer.basepath = pot_file_dir_path.to_s
|
35
|
+
serializer.serialize(pot_file_basename.to_s,
|
36
|
+
generate_pot(relative_base_path.to_s))
|
37
|
+
|
38
|
+
true
|
39
|
+
end
|
40
|
+
|
41
|
+
private
|
42
|
+
|
43
|
+
def general_options(opts)
|
44
|
+
opts.banner = "Usage: yard i18n [options] [source_files [- extra_files]]"
|
45
|
+
opts.top.list.clear
|
46
|
+
opts.separator "(if a list of source files is omitted, "
|
47
|
+
opts.separator " {lib,app}/**/*.rb ext/**/*.c is used.)"
|
48
|
+
opts.separator ""
|
49
|
+
opts.separator "Example: yard i18n -o yard.pot - FAQ LICENSE"
|
50
|
+
opts.separator " The above example outputs .pot file for files in"
|
51
|
+
opts.separator " lib/**/*.rb to yard.pot including the extra files"
|
52
|
+
opts.separator " FAQ and LICENSE."
|
53
|
+
opts.separator ""
|
54
|
+
opts.separator "A base set of options can be specified by adding a .yardopts"
|
55
|
+
opts.separator "file to your base path containing all extra options separated"
|
56
|
+
opts.separator "by whitespace."
|
57
|
+
super(opts)
|
58
|
+
end
|
59
|
+
|
60
|
+
def generate_pot(relative_base_path)
|
61
|
+
generator = YARD::I18n::PotGenerator.new(relative_base_path)
|
62
|
+
objects = run_verifier(all_objects)
|
63
|
+
generator.parse_objects(objects)
|
64
|
+
generator.parse_files(options.files || [])
|
65
|
+
generator.generate
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|