yard 0.7.5 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of yard might be problematic. Click here for more details.
- data/.yardopts +10 -2
- data/ChangeLog +1263 -38
- data/LEGAL +5 -5
- data/LICENSE +1 -1
- data/README.md +91 -82
- data/Rakefile +6 -6
- data/benchmarks/builtins_vs_eval.rb +1 -1
- data/benchmarks/erb_vs_erubis.rb +4 -4
- data/benchmarks/generation.rb +5 -5
- data/benchmarks/parsing.rb +2 -2
- data/benchmarks/registry_store_types.rb +48 -0
- data/bin/yard +9 -1
- data/bin/yardoc +9 -1
- data/bin/yri +10 -2
- data/docs/CodeObjects.md +10 -10
- data/docs/GettingStarted.md +85 -83
- data/docs/Handlers.md +21 -21
- data/docs/Overview.md +7 -7
- data/docs/Parser.md +30 -30
- data/docs/Tags.md +250 -554
- data/docs/TagsArch.md +123 -0
- data/docs/Templates.md +58 -80
- data/docs/WhatsNew.md +378 -133
- data/docs/templates/default/fulldoc/html/full_list_tag.erb +7 -0
- data/docs/templates/default/fulldoc/html/setup.rb +6 -0
- data/docs/templates/default/layout/html/setup.rb +8 -0
- data/docs/templates/default/layout/html/tag_list.erb +11 -0
- data/docs/templates/default/yard_tags/html/list.erb +18 -0
- data/docs/templates/default/yard_tags/html/setup.rb +27 -0
- data/docs/templates/plugin.rb +65 -0
- data/lib/yard.rb +1 -10
- data/lib/yard/autoload.rb +75 -27
- data/lib/yard/cli/command.rb +5 -2
- data/lib/yard/cli/command_parser.rb +3 -2
- data/lib/yard/cli/diff.rb +1 -1
- data/lib/yard/cli/i18n.rb +69 -0
- data/lib/yard/cli/list.rb +1 -1
- data/lib/yard/cli/server.rb +30 -7
- data/lib/yard/cli/stats.rb +5 -6
- data/lib/yard/cli/yardoc.rb +95 -45
- data/lib/yard/cli/yri.rb +24 -3
- data/lib/yard/code_objects/base.rb +35 -4
- data/lib/yard/code_objects/extra_file_object.rb +1 -1
- data/lib/yard/code_objects/macro_object.rb +56 -99
- data/lib/yard/code_objects/method_object.rb +44 -6
- data/lib/yard/config.rb +18 -8
- data/lib/yard/core_ext/symbol_hash.rb +1 -1
- data/lib/yard/docstring.rb +45 -85
- data/lib/yard/docstring_parser.rb +269 -0
- data/lib/yard/handlers/base.rb +129 -118
- data/lib/yard/handlers/c/alias_handler.rb +15 -0
- data/lib/yard/handlers/c/attribute_handler.rb +13 -0
- data/lib/yard/handlers/c/base.rb +110 -0
- data/lib/yard/handlers/c/class_handler.rb +26 -0
- data/lib/yard/handlers/c/constant_handler.rb +12 -0
- data/lib/yard/handlers/c/handler_methods.rb +165 -0
- data/lib/yard/handlers/c/init_handler.rb +16 -0
- data/lib/yard/handlers/c/method_handler.rb +35 -0
- data/lib/yard/handlers/c/mixin_handler.rb +13 -0
- data/lib/yard/handlers/c/module_handler.rb +16 -0
- data/lib/yard/handlers/c/override_comment_handler.rb +22 -0
- data/lib/yard/handlers/c/path_handler.rb +10 -0
- data/lib/yard/handlers/c/struct_handler.rb +12 -0
- data/lib/yard/handlers/c/symbol_handler.rb +7 -0
- data/lib/yard/handlers/processor.rb +41 -30
- data/lib/yard/handlers/ruby/alias_handler.rb +0 -2
- data/lib/yard/handlers/ruby/attribute_handler.rb +16 -17
- data/lib/yard/handlers/ruby/base.rb +10 -6
- data/lib/yard/handlers/ruby/comment_handler.rb +9 -0
- data/lib/yard/handlers/ruby/dsl_handler.rb +14 -0
- data/lib/yard/handlers/ruby/dsl_handler_methods.rb +71 -0
- data/lib/yard/handlers/ruby/legacy/alias_handler.rb +0 -3
- data/lib/yard/handlers/ruby/legacy/attribute_handler.rb +16 -17
- data/lib/yard/handlers/ruby/legacy/base.rb +28 -6
- data/lib/yard/handlers/ruby/legacy/comment_handler.rb +9 -0
- data/lib/yard/handlers/ruby/legacy/dsl_handler.rb +16 -0
- data/lib/yard/handlers/ruby/legacy/method_handler.rb +0 -2
- data/lib/yard/handlers/ruby/legacy/mixin_handler.rb +1 -1
- data/lib/yard/handlers/ruby/legacy/module_function_handler.rb +18 -0
- data/lib/yard/handlers/ruby/method_handler.rb +10 -15
- data/lib/yard/handlers/ruby/mixin_handler.rb +1 -1
- data/lib/yard/handlers/ruby/module_function_handler.rb +26 -0
- data/lib/yard/handlers/ruby/struct_handler_methods.rb +3 -2
- data/lib/yard/i18n/pot_generator.rb +281 -0
- data/lib/yard/i18n/text.rb +72 -0
- data/lib/yard/logging.rb +3 -7
- data/lib/yard/options.rb +216 -0
- data/lib/yard/parser/c/c_parser.rb +225 -0
- data/lib/yard/parser/c/comment_parser.rb +131 -0
- data/lib/yard/parser/c/statement.rb +63 -0
- data/lib/yard/parser/ruby/ast_node.rb +91 -1
- data/lib/yard/parser/ruby/legacy/ruby_parser.rb +1 -0
- data/lib/yard/parser/ruby/legacy/statement.rb +7 -2
- data/lib/yard/parser/ruby/legacy/statement_list.rb +13 -22
- data/lib/yard/parser/ruby/ruby_parser.rb +87 -26
- data/lib/yard/parser/source_parser.rb +89 -88
- data/lib/yard/rake/yardoc_task.rb +1 -1
- data/lib/yard/registry.rb +21 -10
- data/lib/yard/registry_store.rb +48 -0
- data/lib/yard/serializers/file_system_serializer.rb +18 -20
- data/lib/yard/serializers/yardoc_serializer.rb +1 -0
- data/lib/yard/server/adapter.rb +2 -2
- data/lib/yard/server/commands/base.rb +1 -1
- data/lib/yard/server/commands/display_object_command.rb +13 -6
- data/lib/yard/server/commands/frames_command.rb +4 -21
- data/lib/yard/server/commands/library_command.rb +57 -11
- data/lib/yard/server/commands/list_command.rb +10 -34
- data/lib/yard/server/commands/search_command.rb +8 -2
- data/lib/yard/server/doc_server_helper.rb +34 -0
- data/lib/yard/server/rack_adapter.rb +5 -1
- data/lib/yard/server/router.rb +4 -10
- data/lib/yard/server/static_caching.rb +2 -2
- data/lib/yard/server/templates/default/fulldoc/html/css/custom.css +2 -2
- data/lib/yard/server/templates/default/fulldoc/html/js/live.js +0 -15
- data/lib/yard/server/templates/default/layout/html/breadcrumb.erb +3 -3
- data/lib/yard/server/templates/default/layout/html/script_setup.erb +8 -0
- data/lib/yard/server/templates/doc_server/processing/html/processing.erb +1 -1
- data/lib/yard/server/templates/doc_server/search/html/setup.rb +1 -1
- data/lib/yard/tags/default_factory.rb +31 -4
- data/lib/yard/tags/directives.rb +593 -0
- data/lib/yard/tags/library.rb +437 -35
- data/lib/yard/templates/engine.rb +17 -12
- data/lib/yard/templates/helpers/base_helper.rb +8 -2
- data/lib/yard/templates/helpers/html_helper.rb +57 -14
- data/lib/yard/templates/helpers/markup/rdoc_markup.rb +1 -1
- data/lib/yard/templates/helpers/markup_helper.rb +9 -9
- data/lib/yard/templates/helpers/text_helper.rb +2 -2
- data/lib/yard/templates/template.rb +42 -13
- data/lib/yard/templates/template_options.rb +81 -0
- data/spec/cli/command_parser_spec.rb +4 -4
- data/spec/cli/command_spec.rb +3 -3
- data/spec/cli/config_spec.rb +13 -13
- data/spec/cli/diff_spec.rb +13 -10
- data/spec/cli/gems_spec.rb +12 -12
- data/spec/cli/help_spec.rb +2 -2
- data/spec/cli/i18n_spec.rb +111 -0
- data/spec/cli/server_spec.rb +66 -18
- data/spec/cli/stats_spec.rb +15 -15
- data/spec/cli/yardoc_spec.rb +124 -97
- data/spec/cli/yri_spec.rb +14 -12
- data/spec/code_objects/base_spec.rb +104 -46
- data/spec/code_objects/class_object_spec.rb +33 -33
- data/spec/code_objects/code_object_list_spec.rb +5 -5
- data/spec/code_objects/constants_spec.rb +4 -3
- data/spec/code_objects/extra_file_object_spec.rb +19 -19
- data/spec/code_objects/macro_object_spec.rb +31 -37
- data/spec/code_objects/method_object_spec.rb +46 -23
- data/spec/code_objects/module_object_spec.rb +16 -16
- data/spec/code_objects/namespace_object_spec.rb +6 -6
- data/spec/code_objects/proxy_spec.rb +19 -19
- data/spec/config_spec.rb +33 -24
- data/spec/core_ext/array_spec.rb +1 -1
- data/spec/core_ext/file_spec.rb +8 -8
- data/spec/core_ext/hash_spec.rb +1 -1
- data/spec/core_ext/insertion_spec.rb +3 -3
- data/spec/core_ext/module_spec.rb +1 -1
- data/spec/core_ext/string_spec.rb +6 -6
- data/spec/core_ext/symbol_hash_spec.rb +11 -11
- data/spec/docstring_parser_spec.rb +207 -0
- data/spec/docstring_spec.rb +33 -146
- data/spec/handlers/alias_handler_spec.rb +14 -14
- data/spec/handlers/attribute_handler_spec.rb +20 -20
- data/spec/handlers/base_spec.rb +16 -16
- data/spec/handlers/c/alias_handler_spec.rb +33 -0
- data/spec/handlers/c/attribute_handler_spec.rb +40 -0
- data/spec/handlers/c/class_handler_spec.rb +64 -0
- data/spec/handlers/c/constant_handler_spec.rb +68 -0
- data/spec/handlers/c/init_handler_spec.rb +36 -0
- data/spec/handlers/c/method_handler_spec.rb +228 -0
- data/spec/handlers/c/mixin_handler_spec.rb +27 -0
- data/spec/handlers/c/module_handler_spec.rb +38 -0
- data/spec/handlers/c/override_comment_handler_spec.rb +43 -0
- data/spec/handlers/c/path_handler_spec.rb +35 -0
- data/spec/handlers/c/spec_helper.rb +11 -0
- data/spec/handlers/c/struct_handler_spec.rb +15 -0
- data/spec/handlers/class_condition_handler_spec.rb +10 -10
- data/spec/handlers/class_handler_spec.rb +38 -38
- data/spec/handlers/class_variable_handler_spec.rb +1 -1
- data/spec/handlers/constant_handler_spec.rb +7 -7
- data/spec/handlers/{macro_handler_spec.rb → dsl_handler_spec.rb} +72 -53
- data/spec/handlers/examples/alias_handler_001.rb.txt +5 -5
- data/spec/handlers/examples/class_condition_handler_001.rb.txt +9 -9
- data/spec/handlers/examples/class_handler_001.rb.txt +1 -1
- data/spec/handlers/examples/dsl_handler_001.rb.txt +110 -0
- data/spec/handlers/examples/exception_handler_001.rb.txt +14 -14
- data/spec/handlers/examples/method_condition_handler_001.rb.txt +2 -2
- data/spec/handlers/examples/method_handler_001.rb.txt +16 -16
- data/spec/handlers/examples/mixin_handler_001.rb.txt +8 -4
- data/spec/handlers/examples/private_constant_handler_001.rb.txt +1 -1
- data/spec/handlers/examples/visibility_handler_001.rb.txt +3 -3
- data/spec/handlers/examples/yield_handler_001.rb.txt +13 -14
- data/spec/handlers/exception_handler_spec.rb +9 -9
- data/spec/handlers/extend_handler_spec.rb +2 -2
- data/spec/handlers/legacy_base_spec.rb +34 -34
- data/spec/handlers/method_condition_handler_spec.rb +2 -2
- data/spec/handlers/method_handler_spec.rb +33 -33
- data/spec/handlers/mixin_handler_spec.rb +13 -9
- data/spec/handlers/module_function_handler_spec.rb +82 -0
- data/spec/handlers/module_handler_spec.rb +6 -6
- data/spec/handlers/private_constant_handler_spec.rb +3 -3
- data/spec/handlers/processor_spec.rb +5 -5
- data/spec/handlers/ruby/base_spec.rb +10 -6
- data/spec/handlers/ruby/legacy/base_spec.rb +11 -7
- data/spec/handlers/spec_helper.rb +2 -3
- data/spec/handlers/visibility_handler_spec.rb +6 -6
- data/spec/handlers/yield_handler_spec.rb +8 -8
- data/spec/i18n/pot_generator_spec.rb +244 -0
- data/spec/i18n/text_spec.rb +69 -0
- data/spec/options_spec.rb +160 -0
- data/spec/parser/base_spec.rb +3 -3
- data/spec/parser/c_parser_spec.rb +31 -257
- data/spec/parser/examples/array.c.txt +187 -187
- data/spec/parser/examples/extrafile.c.txt +1 -1
- data/spec/parser/examples/override.c.txt +1 -1
- data/spec/parser/ruby/ast_node_spec.rb +1 -1
- data/spec/parser/ruby/legacy/statement_list_spec.rb +24 -24
- data/spec/parser/ruby/legacy/token_list_spec.rb +7 -7
- data/spec/parser/ruby/ruby_parser_spec.rb +56 -34
- data/spec/parser/source_parser_spec.rb +125 -65
- data/spec/parser/tag_parsing_spec.rb +4 -4
- data/spec/rake/yardoc_task_spec.rb +10 -8
- data/spec/registry_spec.rb +65 -36
- data/spec/registry_store_spec.rb +90 -40
- data/spec/serializers/file_system_serializer_spec.rb +12 -12
- data/spec/serializers/yardoc_serializer_spec.rb +2 -2
- data/spec/server/adapter_spec.rb +3 -3
- data/spec/server/commands/base_spec.rb +8 -8
- data/spec/server/commands/library_command_spec.rb +3 -3
- data/spec/server/commands/static_file_command_spec.rb +7 -7
- data/spec/server/doc_server_helper_spec.rb +1 -1
- data/spec/server/doc_server_serializer_spec.rb +6 -6
- data/spec/server/rack_adapter_spec.rb +3 -3
- data/spec/server/router_spec.rb +19 -19
- data/spec/server/static_caching_spec.rb +4 -4
- data/spec/spec_helper.rb +7 -7
- data/spec/tags/default_factory_spec.rb +24 -16
- data/spec/tags/directives_spec.rb +422 -0
- data/spec/tags/library_spec.rb +15 -4
- data/spec/tags/overload_tag_spec.rb +6 -6
- data/spec/tags/ref_tag_list_spec.rb +8 -8
- data/spec/templates/class_spec.rb +7 -7
- data/spec/templates/constant_spec.rb +7 -7
- data/spec/templates/engine_spec.rb +28 -36
- data/spec/templates/examples/class001.html +108 -108
- data/spec/templates/examples/class002.html +17 -17
- data/spec/templates/examples/constant001.txt +1 -1
- data/spec/templates/examples/method001.html +45 -45
- data/spec/templates/examples/method002.html +25 -25
- data/spec/templates/examples/method003.html +60 -60
- data/spec/templates/examples/method004.html +7 -7
- data/spec/templates/examples/method005.html +28 -28
- data/spec/templates/examples/module001.html +321 -321
- data/spec/templates/examples/module001.txt +1 -1
- data/spec/templates/examples/module002.html +130 -130
- data/spec/templates/examples/module003.html +74 -74
- data/spec/templates/examples/module004.html +388 -0
- data/spec/templates/helpers/base_helper_spec.rb +32 -32
- data/spec/templates/helpers/html_helper_spec.rb +87 -68
- data/spec/templates/helpers/html_syntax_highlight_helper_spec.rb +9 -9
- data/spec/templates/helpers/markup/rdoc_markup_spec.rb +16 -16
- data/spec/templates/helpers/markup_helper_spec.rb +31 -28
- data/spec/templates/helpers/method_helper_spec.rb +7 -7
- data/spec/templates/helpers/shared_signature_examples.rb +9 -7
- data/spec/templates/helpers/text_helper_spec.rb +3 -3
- data/spec/templates/method_spec.rb +13 -13
- data/spec/templates/module_spec.rb +70 -24
- data/spec/templates/onefile_spec.rb +32 -15
- data/spec/templates/section_spec.rb +23 -23
- data/spec/templates/spec_helper.rb +31 -1
- data/spec/templates/tag_spec.rb +5 -5
- data/spec/templates/template_spec.rb +54 -46
- data/spec/verifier_spec.rb +5 -5
- data/templates/default/class/setup.rb +2 -2
- data/templates/default/docstring/html/abstract.erb +1 -1
- data/templates/default/docstring/html/note.erb +1 -1
- data/templates/default/docstring/html/private.erb +1 -1
- data/templates/default/docstring/html/todo.erb +1 -1
- data/templates/default/docstring/setup.rb +2 -2
- data/templates/default/fulldoc/html/css/full_list.css +4 -2
- data/templates/default/fulldoc/html/css/style.css +50 -44
- data/templates/default/fulldoc/html/frames.erb +21 -6
- data/templates/default/fulldoc/html/full_list.erb +5 -3
- data/templates/default/fulldoc/html/{full_list_files.erb → full_list_file.erb} +0 -0
- data/templates/default/fulldoc/html/js/app.js +29 -26
- data/templates/default/fulldoc/html/js/full_list.js +9 -9
- data/templates/default/fulldoc/html/js/jquery.js +4 -16
- data/templates/default/fulldoc/html/setup.rb +42 -38
- data/templates/default/layout/dot/header.erb +1 -1
- data/templates/default/layout/html/breadcrumb.erb +6 -6
- data/templates/default/layout/html/files.erb +1 -1
- data/templates/default/layout/html/footer.erb +1 -1
- data/templates/default/layout/html/headers.erb +3 -6
- data/templates/default/layout/html/index.erb +1 -1
- data/templates/default/layout/html/layout.erb +3 -7
- data/templates/default/layout/html/objects.erb +1 -1
- data/templates/default/layout/html/script_setup.erb +5 -0
- data/templates/default/layout/html/search.erb +4 -1
- data/templates/default/layout/html/setup.rb +8 -8
- data/templates/default/method_details/html/method_signature.erb +10 -3
- data/templates/default/method_details/setup.rb +1 -0
- data/templates/default/module/dot/info.erb +1 -1
- data/templates/default/module/dot/setup.rb +2 -2
- data/templates/default/module/html/attribute_details.erb +1 -1
- data/templates/default/module/html/children.erb +1 -1
- data/templates/default/module/html/defines.erb +1 -1
- data/templates/default/module/html/inherited_methods.erb +5 -4
- data/templates/default/module/html/item_summary.erb +15 -5
- data/templates/default/module/html/method_details_list.erb +2 -2
- data/templates/default/module/setup.rb +25 -12
- data/templates/default/module/text/setup.rb +1 -1
- data/templates/default/onefile/html/layout.erb +1 -1
- data/templates/default/onefile/html/setup.rb +2 -2
- data/templates/default/tags/html/example.erb +4 -2
- data/templates/default/tags/html/option.erb +1 -1
- data/templates/default/tags/html/overload.erb +1 -1
- data/templates/default/tags/html/see.erb +1 -1
- data/templates/default/tags/html/tag.erb +1 -1
- data/templates/default/tags/setup.rb +4 -3
- data/templates/guide/fulldoc/html/css/style.css +8 -8
- data/templates/guide/fulldoc/html/js/app.js +6 -6
- data/templates/guide/fulldoc/html/setup.rb +12 -12
- data/templates/guide/layout/html/layout.erb +11 -11
- data/templates/guide/layout/html/setup.rb +9 -9
- data/templates/guide/method/html/header.erb +2 -2
- data/templates/guide/method/html/setup.rb +1 -1
- metadata +68 -18
- data/bin/yard-graph +0 -4
- data/bin/yard-server +0 -4
- data/docs/Glossary.md +0 -12
- data/lib/yard/handlers/ruby/legacy/macro_handler.rb +0 -39
- data/lib/yard/handlers/ruby/macro_handler.rb +0 -40
- data/lib/yard/handlers/ruby/macro_handler_methods.rb +0 -131
- data/lib/yard/parser/c_parser.rb +0 -497
- data/lib/yard/server/templates/default/layout/html/headers.erb +0 -16
- data/lib/yard/server/templates/doc_server/frames/html/frames.erb +0 -13
- data/lib/yard/server/templates/doc_server/frames/html/setup.rb +0 -3
- data/lib/yard/server/templates/doc_server/full_list/html/full_list.erb +0 -34
- data/lib/yard/server/templates/doc_server/full_list/html/setup.rb +0 -20
- data/spec/handlers/examples/macro_handler_001.rb.txt +0 -83
data/lib/yard/cli/list.rb
CHANGED
@@ -3,7 +3,7 @@ module YARD
|
|
3
3
|
# Lists all constant and method names in the codebase. Uses {Yardoc} --list.
|
4
4
|
class List < Command
|
5
5
|
def description; 'Lists all constant and methods. Uses `yard doc --list`' end
|
6
|
-
|
6
|
+
|
7
7
|
# Runs the commandline utility, parsing arguments and displaying a
|
8
8
|
# list of objects
|
9
9
|
#
|
data/lib/yard/cli/server.rb
CHANGED
@@ -23,11 +23,9 @@ module YARD
|
|
23
23
|
# @since 0.6.2
|
24
24
|
attr_accessor :template_paths
|
25
25
|
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
def run(*args)
|
26
|
+
# Creates a new instance of the Server command line utility
|
27
|
+
def initialize
|
28
|
+
super
|
31
29
|
self.scripts = []
|
32
30
|
self.template_paths = []
|
33
31
|
self.libraries = {}
|
@@ -36,6 +34,13 @@ module YARD
|
|
36
34
|
:caching => false
|
37
35
|
)
|
38
36
|
self.server_options = {:Port => 8808}
|
37
|
+
end
|
38
|
+
|
39
|
+
def description
|
40
|
+
"Runs a local documentation server"
|
41
|
+
end
|
42
|
+
|
43
|
+
def run(*args)
|
39
44
|
optparse(*args)
|
40
45
|
|
41
46
|
select_adapter.setup
|
@@ -71,7 +76,7 @@ module YARD
|
|
71
76
|
yardoc = File.expand_path(yardoc)
|
72
77
|
if File.exist?(yardoc)
|
73
78
|
libraries[library] ||= []
|
74
|
-
libraries[library]
|
79
|
+
libraries[library] |= [YARD::Server::LibraryVersion.new(library, nil, yardoc)]
|
75
80
|
else
|
76
81
|
log.warn "Cannot find yardoc db for #{library}: #{yardoc}"
|
77
82
|
end
|
@@ -82,10 +87,25 @@ module YARD
|
|
82
87
|
require 'rubygems'
|
83
88
|
Gem.source_index.find_name('').each do |spec|
|
84
89
|
libraries[spec.name] ||= []
|
85
|
-
libraries[spec.name]
|
90
|
+
libraries[spec.name] |= [YARD::Server::LibraryVersion.new(spec.name, spec.version.to_s, nil, :gem)]
|
86
91
|
end
|
87
92
|
end
|
88
93
|
|
94
|
+
def add_gems_from_gemfile(gemfile = nil)
|
95
|
+
require 'bundler'
|
96
|
+
gemfile ||= "Gemfile"
|
97
|
+
if File.exists?("#{gemfile}.lock")
|
98
|
+
Bundler::LockfileParser.new(File.read("#{gemfile}.lock")).specs.each do |spec|
|
99
|
+
libraries[spec.name] ||= []
|
100
|
+
libraries[spec.name] |= [YARD::Server::LibraryVersion.new(spec.name, spec.version.to_s, nil, :gem)]
|
101
|
+
end
|
102
|
+
else
|
103
|
+
log.warn "Cannot find #{gemfile}.lock, ignoring --gemfile option"
|
104
|
+
end
|
105
|
+
rescue LoadError
|
106
|
+
log.error "Bundler not available, ignoring --gemfile option"
|
107
|
+
end
|
108
|
+
|
89
109
|
def optparse(*args)
|
90
110
|
opts = OptionParser.new
|
91
111
|
opts.banner = 'Usage: yard server [options] [[library yardoc_file] ...]'
|
@@ -109,6 +129,9 @@ module YARD
|
|
109
129
|
opts.on('-g', '--gems', 'Serves documentation for installed gems') do
|
110
130
|
add_gems
|
111
131
|
end
|
132
|
+
opts.on('-G', '--gemfile [GEMFILE]', 'Serves documentation for gems from Gemfile') do |gemfile|
|
133
|
+
add_gems_from_gemfile(gemfile)
|
134
|
+
end
|
112
135
|
opts.on('-t', '--template-path PATH',
|
113
136
|
'The template path to look for templates in. (used with -t).') do |path|
|
114
137
|
self.template_paths << path
|
data/lib/yard/cli/stats.rb
CHANGED
@@ -33,11 +33,9 @@ module YARD
|
|
33
33
|
def run(*args)
|
34
34
|
parse_arguments(*args)
|
35
35
|
|
36
|
-
if
|
37
|
-
|
38
|
-
|
39
|
-
checksums = Registry.checksums.dup
|
40
|
-
end
|
36
|
+
if use_cache
|
37
|
+
Registry.load!
|
38
|
+
elsif parse
|
41
39
|
YARD.parse(files, excluded)
|
42
40
|
Registry.save(use_cache) if save_yardoc
|
43
41
|
end
|
@@ -75,7 +73,8 @@ module YARD
|
|
75
73
|
max = objects.sort_by {|o| o.path.length }.last.path.length
|
76
74
|
if @compact
|
77
75
|
objects.each do |object|
|
78
|
-
puts("%-#{max}s (%s)" % [object.path,
|
76
|
+
puts("%-#{max}s (%s)" % [object.path,
|
77
|
+
[object.file, object.line].compact.join(":")])
|
79
78
|
end
|
80
79
|
else
|
81
80
|
last_file = nil
|
data/lib/yard/cli/yardoc.rb
CHANGED
@@ -3,6 +3,50 @@ require 'fileutils'
|
|
3
3
|
|
4
4
|
module YARD
|
5
5
|
module CLI
|
6
|
+
# Default options used in +yard doc+ command.
|
7
|
+
class YardocOptions < Templates::TemplateOptions
|
8
|
+
# @return [Array<CodeObjects::ExtraFileObject>]
|
9
|
+
# the list of extra files rendered along with objects
|
10
|
+
default_attr :files, lambda { [] }
|
11
|
+
|
12
|
+
# @return [String] the default title appended to each generated page
|
13
|
+
default_attr :title, "Documentation by YARD #{YARD::VERSION}"
|
14
|
+
|
15
|
+
# @return [Verifier] the default verifier object to filter queries
|
16
|
+
default_attr :verifier, lambda { Verifier.new }
|
17
|
+
|
18
|
+
# @return [Serializers::Base] the default serializer for generating output
|
19
|
+
# to disk.
|
20
|
+
default_attr :serializer, lambda { Serializers::FileSystemSerializer.new }
|
21
|
+
|
22
|
+
# @return [Symbol] the default output format (:html).
|
23
|
+
default_attr :format, :html
|
24
|
+
|
25
|
+
# @return [Boolean] whether the data should be rendered in a single page,
|
26
|
+
# if the template supports it.
|
27
|
+
default_attr :onefile, false
|
28
|
+
|
29
|
+
# @return [CodeObjects::ExtraFileObject] the README file object rendered
|
30
|
+
# along with objects
|
31
|
+
attr_accessor :readme
|
32
|
+
|
33
|
+
# @return [Array<CodeObjects::Base>] the list of code objects to render
|
34
|
+
# the templates with.
|
35
|
+
attr_accessor :objects
|
36
|
+
|
37
|
+
# @return [Numeric] An index value for rendering sequentially related templates
|
38
|
+
attr_accessor :index
|
39
|
+
|
40
|
+
# @return [CodeObjects::Base] an extra item to send to a template that is not
|
41
|
+
# the main rendered object
|
42
|
+
attr_accessor :item
|
43
|
+
|
44
|
+
# @return [CodeObjects::ExtraFileObject] the file object being rendered.
|
45
|
+
# The +object+ key is not used so that a file may be rendered in the context
|
46
|
+
# of an object's namespace (for generating links).
|
47
|
+
attr_accessor :file
|
48
|
+
end
|
49
|
+
|
6
50
|
# Yardoc is the default YARD CLI command (+yard doc+ and historic +yardoc+
|
7
51
|
# executable) used to generate and output (mainly) HTML documentation given
|
8
52
|
# a set of source files.
|
@@ -150,7 +194,7 @@ module YARD
|
|
150
194
|
# @return [Array<String>] a list of assets to copy after generation
|
151
195
|
# @since 0.6.0
|
152
196
|
attr_accessor :assets
|
153
|
-
|
197
|
+
|
154
198
|
# @return [Boolean] whether markup option was specified
|
155
199
|
# @since 0.7.0
|
156
200
|
attr_accessor :has_markup
|
@@ -158,19 +202,8 @@ module YARD
|
|
158
202
|
# Creates a new instance of the commandline utility
|
159
203
|
def initialize
|
160
204
|
super
|
161
|
-
@options =
|
162
|
-
@options.
|
163
|
-
:format => :html,
|
164
|
-
:template => :default,
|
165
|
-
:markup => :rdoc, # default is :rdoc but falls back on :none
|
166
|
-
:serializer => YARD::Serializers::FileSystemSerializer.new,
|
167
|
-
:default_return => "Object",
|
168
|
-
:hide_void_return => false,
|
169
|
-
:no_highlight => false,
|
170
|
-
:files => [],
|
171
|
-
:title => "Documentation by YARD #{YARD::VERSION}",
|
172
|
-
:verifier => Verifier.new
|
173
|
-
)
|
205
|
+
@options = YardocOptions.new
|
206
|
+
@options.reset_defaults
|
174
207
|
@visibilities = [:public]
|
175
208
|
@assets = {}
|
176
209
|
@excluded = []
|
@@ -248,13 +281,21 @@ module YARD
|
|
248
281
|
self.files = ['{lib,app}/**/*.rb', 'ext/**/*.c'] if self.files.empty?
|
249
282
|
self.files.delete_if {|x| x =~ /\A\s*\Z/ } # remove empty ones
|
250
283
|
readme = Dir.glob('README*').first
|
251
|
-
readme ||= Dir.glob(files.first).first if options
|
252
|
-
options
|
253
|
-
options
|
284
|
+
readme ||= Dir.glob(files.first).first if options.onefile
|
285
|
+
options.readme ||= CodeObjects::ExtraFileObject.new(readme) if readme
|
286
|
+
options.files.unshift(options.readme).uniq! if options.readme
|
254
287
|
|
255
288
|
Tags::Library.visible_tags -= hidden_tags
|
256
289
|
add_visibility_verifier
|
257
290
|
|
291
|
+
# US-ASCII is invalid encoding for onefile
|
292
|
+
if defined?(::Encoding) && options.onefile
|
293
|
+
if ::Encoding.default_internal == ::Encoding::US_ASCII
|
294
|
+
log.warn "--one-file is not compatible with US-ASCII encoding, using ASCII-8BIT"
|
295
|
+
::Encoding.default_external, ::Encoding.default_internal = ['ascii-8bit'] * 2
|
296
|
+
end
|
297
|
+
end
|
298
|
+
|
258
299
|
if generate && !verify_markup_options
|
259
300
|
false
|
260
301
|
else
|
@@ -295,7 +336,7 @@ module YARD
|
|
295
336
|
end
|
296
337
|
Registry.load_all if use_cache
|
297
338
|
objects = run_verifier(all_objects).reject do |object|
|
298
|
-
serialized = !options
|
339
|
+
serialized = !options.serializer || options.serializer.exists?(object)
|
299
340
|
if checksums && serialized && !object.files.any? {|f, line| changed_files.include?(f) }
|
300
341
|
true
|
301
342
|
else
|
@@ -314,17 +355,17 @@ module YARD
|
|
314
355
|
result, lvl = false, has_markup ? log.level : Logger::FATAL
|
315
356
|
obj = Struct.new(:options).new(options)
|
316
357
|
obj.extend(Templates::Helpers::MarkupHelper)
|
317
|
-
options
|
358
|
+
options.files.each do |file|
|
318
359
|
markup = file.attributes[:markup] || obj.markup_for_file('', file.filename)
|
319
360
|
result = obj.load_markup_provider(markup)
|
320
361
|
return false if !result && markup != :rdoc
|
321
362
|
end
|
322
|
-
options
|
363
|
+
options.markup = :rdoc unless has_markup
|
323
364
|
log.enter_level(lvl) { result = obj.load_markup_provider }
|
324
365
|
if !result && !has_markup
|
325
366
|
log.warn "Could not load default RDoc formatter, " +
|
326
367
|
"ignoring any markup (install RDoc to get default formatting)."
|
327
|
-
options
|
368
|
+
options.markup = :none
|
328
369
|
true
|
329
370
|
else
|
330
371
|
result
|
@@ -335,8 +376,8 @@ module YARD
|
|
335
376
|
# @return [void]
|
336
377
|
# @since 0.6.0
|
337
378
|
def copy_assets
|
338
|
-
return unless options
|
339
|
-
outpath = options
|
379
|
+
return unless options.serializer
|
380
|
+
outpath = options.serializer.basepath
|
340
381
|
assets.each do |from, to|
|
341
382
|
to = File.join(outpath, to)
|
342
383
|
log.debug "Copying asset '#{from}' to '#{to}'"
|
@@ -355,7 +396,7 @@ module YARD
|
|
355
396
|
puts "#{item.file}:#{item.line}: #{item.path}"
|
356
397
|
end
|
357
398
|
end
|
358
|
-
|
399
|
+
|
359
400
|
# Parses out the yardopts/document options
|
360
401
|
def parse_yardopts_options(*args)
|
361
402
|
opts = OptionParser.new
|
@@ -386,7 +427,7 @@ module YARD
|
|
386
427
|
files.map! {|f| f.include?("*") ? Dir.glob(f) : f }.flatten!
|
387
428
|
files.each do |file|
|
388
429
|
if File.file?(file)
|
389
|
-
options
|
430
|
+
options.files << CodeObjects::ExtraFileObject.new(file)
|
390
431
|
else
|
391
432
|
log.warn "Could not find extra file: #{file}"
|
392
433
|
end
|
@@ -424,12 +465,12 @@ module YARD
|
|
424
465
|
# @since 0.5.6
|
425
466
|
def add_visibility_verifier
|
426
467
|
vis_expr = "object.type != :method || #{visibilities.uniq.inspect}.include?(object.visibility)"
|
427
|
-
options
|
468
|
+
options.verifier.add_expressions(vis_expr)
|
428
469
|
end
|
429
470
|
|
430
471
|
# (see Templates::Helpers::BaseHelper#run_verifier)
|
431
472
|
def run_verifier(list)
|
432
|
-
options
|
473
|
+
options.verifier ? options.verifier.run(list) : list
|
433
474
|
end
|
434
475
|
|
435
476
|
# @since 0.6.0
|
@@ -506,10 +547,10 @@ module YARD
|
|
506
547
|
self.excluded << path
|
507
548
|
end
|
508
549
|
end
|
509
|
-
|
550
|
+
|
510
551
|
# Adds --[no-]yardopts / --[no-]document
|
511
552
|
def yardopts_options(opts)
|
512
|
-
opts.on('--[no-]yardopts [FILE]',
|
553
|
+
opts.on('--[no-]yardopts [FILE]',
|
513
554
|
"If arguments should be read from FILE",
|
514
555
|
" (defaults to yes, FILE defaults to .yardopts)") do |use_yardopts|
|
515
556
|
if use_yardopts.is_a?(String)
|
@@ -532,7 +573,7 @@ module YARD
|
|
532
573
|
opts.separator "Output options:"
|
533
574
|
|
534
575
|
opts.on('--one-file', 'Generates output as a single file') do
|
535
|
-
options
|
576
|
+
options.onefile = true
|
536
577
|
end
|
537
578
|
|
538
579
|
opts.on('--list', 'List objects to standard out (implies -n)') do |format|
|
@@ -553,37 +594,46 @@ module YARD
|
|
553
594
|
end
|
554
595
|
|
555
596
|
opts.on('--no-private', "Hide objects with @private tag") do
|
556
|
-
options
|
597
|
+
options.verifier.add_expressions '!object.tag(:private) &&
|
557
598
|
(object.namespace.is_a?(CodeObjects::Proxy) || !object.namespace.tag(:private))'
|
558
599
|
end
|
559
600
|
|
601
|
+
opts.on('--embed-mixins', "Embeds mixin methods into class documentation") do
|
602
|
+
options.embed_mixins << '*'
|
603
|
+
end
|
604
|
+
|
605
|
+
opts.on('--embed-mixin [MODULE]', "Embeds mixin methods from a particular",
|
606
|
+
" module into class documentation") do |mod|
|
607
|
+
options.embed_mixins << mod
|
608
|
+
end
|
609
|
+
|
560
610
|
opts.on('--no-highlight', "Don't highlight code blocks in output.") do
|
561
|
-
options
|
611
|
+
options.highlight = false
|
562
612
|
end
|
563
613
|
|
564
614
|
opts.on('--default-return TYPE', "Shown if method has no return type. ",
|
565
615
|
" (defaults to 'Object')") do |type|
|
566
|
-
options
|
616
|
+
options.default_return = type
|
567
617
|
end
|
568
618
|
|
569
619
|
opts.on('--hide-void-return', "Hides return types specified as 'void'. ",
|
570
620
|
" (default is shown)") do
|
571
|
-
options
|
621
|
+
options.hide_void_return = true
|
572
622
|
end
|
573
623
|
|
574
624
|
opts.on('--query QUERY', "Only show objects that match a specific query") do |query|
|
575
625
|
next if YARD::Config.options[:safe_mode]
|
576
|
-
options
|
626
|
+
options.verifier.add_expressions(query.taint)
|
577
627
|
end
|
578
628
|
|
579
629
|
opts.on('--title TITLE', 'Add a specific title to HTML documents') do |title|
|
580
|
-
options
|
630
|
+
options.title = title
|
581
631
|
end
|
582
632
|
|
583
633
|
opts.on('-r', '--readme FILE', '--main FILE', 'The readme file used as the title page',
|
584
634
|
' of documentation.') do |readme|
|
585
635
|
if File.file?(readme)
|
586
|
-
options
|
636
|
+
options.readme = CodeObjects::ExtraFileObject.new(readme)
|
587
637
|
else
|
588
638
|
log.warn "Could not find readme file: #{readme}"
|
589
639
|
end
|
@@ -608,23 +658,23 @@ module YARD
|
|
608
658
|
|
609
659
|
opts.on('-o', '--output-dir PATH',
|
610
660
|
'The output directory. (defaults to ./doc)') do |dir|
|
611
|
-
options
|
661
|
+
options.serializer.basepath = dir
|
612
662
|
end
|
613
663
|
|
614
664
|
opts.on('-m', '--markup MARKUP',
|
615
665
|
'Markup style used in documentation, like textile, ',
|
616
666
|
' markdown or rdoc. (defaults to rdoc)') do |markup|
|
617
667
|
self.has_markup = true
|
618
|
-
options
|
668
|
+
options.markup = markup.to_sym
|
619
669
|
end
|
620
670
|
|
621
671
|
opts.on('-M', '--markup-provider MARKUP_PROVIDER',
|
622
|
-
'Overrides the library used to process markup ',
|
672
|
+
'Overrides the library used to process markup ',
|
623
673
|
' formatting (specify the gem name)') do |markup_provider|
|
624
|
-
options
|
674
|
+
options.markup_provider = markup_provider.to_sym
|
625
675
|
end
|
626
676
|
|
627
|
-
opts.on('--charset ENC', 'Character set to use when parsing files ',
|
677
|
+
opts.on('--charset ENC', 'Character set to use when parsing files ',
|
628
678
|
' (default is system locale)') do |encoding|
|
629
679
|
begin
|
630
680
|
if defined?(Encoding) && Encoding.respond_to?(:default_external=)
|
@@ -637,20 +687,20 @@ module YARD
|
|
637
687
|
|
638
688
|
opts.on('-t', '--template TEMPLATE',
|
639
689
|
'The template to use. (defaults to "default")') do |template|
|
640
|
-
options
|
690
|
+
options.template = template.to_sym
|
641
691
|
end
|
642
692
|
|
643
693
|
opts.on('-p', '--template-path PATH',
|
644
694
|
'The template path to look for templates in.',
|
645
695
|
' (used with -t).') do |path|
|
646
696
|
next if YARD::Config.options[:safe_mode]
|
647
|
-
YARD::Templates::Engine.register_template_path(path)
|
697
|
+
YARD::Templates::Engine.register_template_path(File.expand_path(path))
|
648
698
|
end
|
649
699
|
|
650
700
|
opts.on('-f', '--format FORMAT',
|
651
701
|
'The output format for the template.',
|
652
702
|
' (defaults to html)') do |format|
|
653
|
-
options
|
703
|
+
options.format = format.to_sym
|
654
704
|
end
|
655
705
|
|
656
706
|
opts.on('--no-stats', 'Don\'t print statistics') do
|
data/lib/yard/cli/yri.rb
CHANGED
@@ -110,14 +110,18 @@ module YARD
|
|
110
110
|
@search_paths.unshift(@cache[name]) if @cache[name]
|
111
111
|
@search_paths.unshift(Registry.yardoc_file)
|
112
112
|
|
113
|
+
# Try to load it from in memory cache
|
114
|
+
log.debug "Searching for #{name} in memory"
|
115
|
+
if obj = try_load_object(name, nil)
|
116
|
+
return obj
|
117
|
+
end
|
118
|
+
|
113
119
|
log.debug "Searching for #{name} in search paths"
|
114
120
|
@search_paths.each do |path|
|
115
121
|
next unless File.exist?(path)
|
116
122
|
log.debug "Searching for #{name} in #{path}..."
|
117
123
|
Registry.load(path)
|
118
|
-
obj =
|
119
|
-
if obj
|
120
|
-
cache_object(name, path)
|
124
|
+
if obj = try_load_object(name, path)
|
121
125
|
return obj
|
122
126
|
end
|
123
127
|
end
|
@@ -126,6 +130,23 @@ module YARD
|
|
126
130
|
|
127
131
|
private
|
128
132
|
|
133
|
+
# Tries to load the object with name. If successful, caches the object
|
134
|
+
# with the cache_path
|
135
|
+
#
|
136
|
+
# @param [String] name the object path
|
137
|
+
# @param [String] cache_path the location of the yardoc
|
138
|
+
# db containing the object to cache for future lookups.
|
139
|
+
# No caching is done if this is nil.
|
140
|
+
# @return [void]
|
141
|
+
def try_load_object(name, cache_path)
|
142
|
+
if obj = Registry.at(name)
|
143
|
+
if cache_path
|
144
|
+
cache_object(name, cache_path)
|
145
|
+
end
|
146
|
+
return obj
|
147
|
+
end
|
148
|
+
end
|
149
|
+
|
129
150
|
# Loads {CACHE_FILE}
|
130
151
|
# @return [void]
|
131
152
|
def load_cache
|