yard 0.6.8 → 0.7.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 +1 -0
- data/ChangeLog +723 -0
- data/README.md +16 -6
- data/docs/CodeObjects.md +10 -16
- data/docs/GettingStarted.md +232 -32
- data/docs/Glossary.md +1 -2
- data/docs/Handlers.md +10 -16
- data/docs/Overview.md +14 -13
- data/docs/Parser.md +13 -22
- data/docs/Tags.md +209 -16
- data/docs/Templates.md +237 -26
- data/docs/WhatsNew.md +178 -2
- data/lib/yard.rb +13 -10
- data/lib/yard/autoload.rb +22 -18
- data/lib/yard/cli/command.rb +13 -12
- data/lib/yard/cli/command_parser.rb +20 -19
- data/lib/yard/cli/config.rb +19 -19
- data/lib/yard/cli/diff.rb +46 -21
- data/lib/yard/cli/gems.rb +11 -11
- data/lib/yard/cli/graph.rb +13 -13
- data/lib/yard/cli/help.rb +1 -1
- data/lib/yard/cli/list.rb +22 -0
- data/lib/yard/cli/server.rb +17 -17
- data/lib/yard/cli/stats.rb +32 -32
- data/lib/yard/cli/yardoc.rb +181 -135
- data/lib/yard/cli/yri.rb +29 -29
- data/lib/yard/code_objects/base.rb +101 -101
- data/lib/yard/code_objects/class_object.rb +20 -20
- data/lib/yard/code_objects/constant_object.rb +1 -1
- data/lib/yard/code_objects/extended_method_object.rb +5 -5
- data/lib/yard/code_objects/extra_file_object.rb +89 -0
- data/lib/yard/code_objects/macro_object.rb +215 -0
- data/lib/yard/code_objects/method_object.rb +30 -30
- data/lib/yard/code_objects/module_object.rb +1 -1
- data/lib/yard/code_objects/namespace_object.rb +39 -39
- data/lib/yard/code_objects/proxy.rb +38 -38
- data/lib/yard/code_objects/root_object.rb +1 -1
- data/lib/yard/config.rb +40 -40
- data/lib/yard/core_ext/array.rb +2 -2
- data/lib/yard/core_ext/file.rb +11 -11
- data/lib/yard/core_ext/insertion.rb +10 -10
- data/lib/yard/core_ext/module.rb +2 -2
- data/lib/yard/core_ext/string.rb +2 -2
- data/lib/yard/core_ext/symbol_hash.rb +14 -14
- data/lib/yard/docstring.rb +122 -54
- data/lib/yard/globals.rb +2 -2
- data/lib/yard/handlers/base.rb +216 -127
- data/lib/yard/handlers/processor.rb +65 -27
- data/lib/yard/handlers/ruby/alias_handler.rb +6 -3
- data/lib/yard/handlers/ruby/attribute_handler.rb +7 -6
- data/lib/yard/handlers/ruby/base.rb +50 -31
- data/lib/yard/handlers/ruby/class_condition_handler.rb +11 -11
- data/lib/yard/handlers/ruby/class_handler.rb +10 -10
- data/lib/yard/handlers/ruby/class_variable_handler.rb +3 -3
- data/lib/yard/handlers/ruby/constant_handler.rb +7 -7
- data/lib/yard/handlers/ruby/exception_handler.rb +2 -2
- data/lib/yard/handlers/ruby/extend_handler.rb +1 -1
- data/lib/yard/handlers/ruby/legacy/alias_handler.rb +8 -5
- data/lib/yard/handlers/ruby/legacy/attribute_handler.rb +6 -5
- data/lib/yard/handlers/ruby/legacy/base.rb +42 -27
- data/lib/yard/handlers/ruby/legacy/class_condition_handler.rb +9 -9
- data/lib/yard/handlers/ruby/legacy/class_handler.rb +13 -12
- data/lib/yard/handlers/ruby/legacy/class_variable_handler.rb +3 -6
- data/lib/yard/handlers/ruby/legacy/constant_handler.rb +5 -8
- data/lib/yard/handlers/ruby/legacy/exception_handler.rb +1 -1
- data/lib/yard/handlers/ruby/legacy/extend_handler.rb +1 -0
- data/lib/yard/handlers/ruby/legacy/macro_handler.rb +40 -0
- data/lib/yard/handlers/ruby/legacy/method_handler.rb +10 -10
- data/lib/yard/handlers/ruby/legacy/mixin_handler.rb +4 -3
- data/lib/yard/handlers/ruby/legacy/module_handler.rb +2 -1
- data/lib/yard/handlers/ruby/legacy/private_constant_handler.rb +4 -4
- data/lib/yard/handlers/ruby/legacy/visibility_handler.rb +2 -1
- data/lib/yard/handlers/ruby/legacy/yield_handler.rb +3 -3
- data/lib/yard/handlers/ruby/macro_handler.rb +41 -0
- data/lib/yard/handlers/ruby/macro_handler_methods.rb +130 -0
- data/lib/yard/handlers/ruby/method_condition_handler.rb +1 -1
- data/lib/yard/handlers/ruby/method_handler.rb +13 -13
- data/lib/yard/handlers/ruby/mixin_handler.rb +4 -4
- data/lib/yard/handlers/ruby/module_handler.rb +2 -1
- data/lib/yard/handlers/ruby/private_constant_handler.rb +4 -4
- data/lib/yard/handlers/ruby/struct_handler_methods.rb +11 -11
- data/lib/yard/handlers/ruby/visibility_handler.rb +1 -1
- data/lib/yard/handlers/ruby/yield_handler.rb +5 -5
- data/lib/yard/logging.rb +11 -11
- data/lib/yard/parser/base.rb +8 -8
- data/lib/yard/parser/c_parser.rb +42 -33
- data/lib/yard/parser/ruby/ast_node.rb +62 -61
- data/lib/yard/parser/ruby/legacy/ruby_lex.rb +66 -66
- data/lib/yard/parser/ruby/legacy/ruby_parser.rb +4 -4
- data/lib/yard/parser/ruby/legacy/statement.rb +11 -11
- data/lib/yard/parser/ruby/legacy/statement_list.rb +15 -15
- data/lib/yard/parser/ruby/legacy/token_list.rb +9 -9
- data/lib/yard/parser/ruby/ruby_parser.rb +51 -37
- data/lib/yard/parser/source_parser.rb +271 -46
- data/lib/yard/rake/yardoc_task.rb +18 -17
- data/lib/yard/registry.rb +64 -64
- data/lib/yard/registry_store.rb +34 -34
- data/lib/yard/rubygems/backports.rb +8 -0
- data/lib/yard/rubygems/backports/LICENSE.txt +57 -0
- data/lib/yard/rubygems/backports/MIT.txt +20 -0
- data/lib/yard/rubygems/backports/gem.rb +8 -0
- data/lib/yard/rubygems/backports/source_index.rb +353 -0
- data/lib/yard/rubygems/specification.rb +2 -2
- data/lib/yard/serializers/base.rb +20 -20
- data/lib/yard/serializers/file_system_serializer.rb +28 -24
- data/lib/yard/serializers/process_serializer.rb +3 -3
- data/lib/yard/serializers/stdout_serializer.rb +6 -6
- data/lib/yard/serializers/yardoc_serializer.rb +17 -17
- data/lib/yard/server/adapter.rb +12 -12
- data/lib/yard/server/commands/base.rb +26 -26
- data/lib/yard/server/commands/display_file_command.rb +3 -2
- data/lib/yard/server/commands/display_object_command.rb +5 -5
- data/lib/yard/server/commands/frames_command.rb +1 -1
- data/lib/yard/server/commands/library_command.rb +7 -7
- data/lib/yard/server/commands/library_index_command.rb +2 -2
- data/lib/yard/server/commands/list_command.rb +8 -8
- data/lib/yard/server/commands/search_command.rb +8 -8
- data/lib/yard/server/commands/static_file_command.rb +3 -3
- data/lib/yard/server/doc_server_helper.rb +6 -3
- data/lib/yard/server/doc_server_serializer.rb +1 -1
- data/lib/yard/server/library_version.rb +45 -45
- data/lib/yard/server/rack_adapter.rb +10 -10
- data/lib/yard/server/router.rb +28 -28
- data/lib/yard/server/static_caching.rb +5 -5
- data/lib/yard/server/templates/default/fulldoc/html/css/custom.css +3 -3
- data/lib/yard/server/templates/default/fulldoc/html/js/live.js +1 -1
- data/lib/yard/server/templates/default/layout/html/breadcrumb.erb +2 -2
- data/lib/yard/server/templates/default/layout/html/headers.erb +13 -8
- data/lib/yard/server/templates/default/layout/html/setup.rb +7 -0
- data/lib/yard/server/templates/doc_server/full_list/html/full_list.erb +2 -2
- data/lib/yard/server/templates/doc_server/full_list/html/setup.rb +14 -4
- data/lib/yard/server/templates/doc_server/library_list/html/contents.erb +2 -2
- data/lib/yard/server/templates/doc_server/library_list/html/headers.erb +2 -2
- data/lib/yard/server/templates/doc_server/processing/html/processing.erb +1 -1
- data/lib/yard/server/templates/doc_server/search/html/search.erb +1 -1
- data/lib/yard/server/webrick_adapter.rb +2 -2
- data/lib/yard/tags/default_factory.rb +19 -19
- data/lib/yard/tags/default_tag.rb +1 -1
- data/lib/yard/tags/library.rb +68 -63
- data/lib/yard/tags/option_tag.rb +1 -1
- data/lib/yard/tags/overload_tag.rb +9 -9
- data/lib/yard/tags/ref_tag_list.rb +2 -2
- data/lib/yard/tags/tag.rb +7 -7
- data/lib/yard/templates/engine.rb +31 -31
- data/lib/yard/templates/erb_cache.rb +1 -1
- data/lib/yard/templates/helpers/base_helper.rb +46 -32
- data/lib/yard/templates/helpers/filter_helper.rb +2 -2
- data/lib/yard/templates/helpers/html_helper.rb +120 -81
- data/lib/yard/templates/helpers/html_syntax_highlight_helper.rb +4 -4
- data/lib/yard/templates/helpers/markup/rdoc_markup.rb +9 -9
- data/lib/yard/templates/helpers/markup_helper.rb +37 -30
- data/lib/yard/templates/helpers/method_helper.rb +7 -7
- data/lib/yard/templates/helpers/text_helper.rb +7 -7
- data/lib/yard/templates/helpers/uml_helper.rb +3 -3
- data/lib/yard/templates/section.rb +14 -14
- data/lib/yard/templates/template.rb +54 -54
- data/lib/yard/verifier.rb +27 -27
- data/spec/cli/list_spec.rb +8 -0
- data/spec/cli/yardoc_spec.rb +58 -10
- data/spec/code_objects/extra_file_object_spec.rb +132 -0
- data/spec/code_objects/macro_object_spec.rb +154 -0
- data/spec/docstring_spec.rb +90 -0
- data/spec/handlers/base_spec.rb +22 -0
- data/spec/handlers/examples/macro_handler_001.rb.txt +73 -0
- data/spec/handlers/examples/method_handler_001.rb.txt +17 -0
- data/spec/handlers/macro_handler_spec.rb +140 -0
- data/spec/handlers/method_handler_spec.rb +28 -0
- data/spec/handlers/processor_spec.rb +4 -0
- data/spec/handlers/spec_helper.rb +1 -1
- data/spec/parser/c_parser_spec.rb +47 -16
- data/spec/parser/examples/extrafile.c.txt +8 -0
- data/spec/parser/examples/multifile.c.txt +6 -0
- data/spec/parser/ruby/ruby_parser_spec.rb +5 -0
- data/spec/parser/source_parser_spec.rb +235 -0
- data/spec/rake/yardoc_task_spec.rb +22 -17
- data/spec/serializers/file_system_serializer_spec.rb +6 -0
- data/spec/server/commands/library_command_spec.rb +39 -0
- data/spec/spec_helper.rb +14 -0
- data/spec/templates/examples/method001.html +6 -6
- data/spec/templates/examples/method002.html +4 -4
- data/spec/templates/examples/method003.html +10 -10
- data/spec/templates/examples/method005.html +2 -2
- data/spec/templates/examples/module001.dot +2 -0
- data/spec/templates/examples/module001.html +76 -37
- data/spec/templates/examples/module001.txt +1 -1
- data/spec/templates/helpers/base_helper_spec.rb +7 -2
- data/spec/templates/helpers/html_helper_spec.rb +49 -5
- data/spec/templates/helpers/markup_helper_spec.rb +9 -8
- data/spec/templates/module_spec.rb +7 -0
- data/spec/templates/onefile_spec.rb +47 -0
- data/templates/default/fulldoc/html/css/style.css +7 -5
- data/templates/default/fulldoc/html/full_list.erb +13 -10
- data/templates/default/fulldoc/html/full_list_files.erb +1 -1
- data/templates/default/fulldoc/html/js/app.js +16 -14
- data/templates/default/fulldoc/html/js/full_list.js +7 -6
- data/templates/default/fulldoc/html/setup.rb +78 -17
- data/templates/default/layout/html/files.erb +1 -1
- data/templates/default/layout/html/headers.erb +11 -7
- data/templates/default/layout/html/search.erb +4 -4
- data/templates/default/layout/html/setup.rb +28 -8
- data/templates/default/module/html/inherited_attributes.erb +17 -0
- data/templates/default/module/setup.rb +1 -1
- data/templates/default/onefile/html/files.erb +2 -2
- data/templates/default/onefile/html/layout.erb +1 -1
- data/templates/default/onefile/html/setup.rb +7 -5
- data/templates/default/tags/html/option.erb +1 -1
- data/templates/default/tags/html/tag.erb +3 -3
- data/templates/guide/class/html/setup.rb +1 -0
- data/templates/guide/docstring/html/setup.rb +1 -0
- data/templates/guide/fulldoc/html/css/style.css +91 -0
- data/templates/guide/fulldoc/html/js/app.js +33 -0
- data/templates/guide/fulldoc/html/setup.rb +54 -0
- data/templates/guide/layout/html/layout.erb +81 -0
- data/templates/guide/layout/html/setup.rb +24 -0
- data/templates/guide/method/html/header.erb +18 -0
- data/templates/guide/method/html/setup.rb +21 -0
- data/templates/guide/module/html/header.erb +7 -0
- data/templates/guide/module/html/method_list.erb +5 -0
- data/templates/guide/module/html/setup.rb +26 -0
- data/templates/guide/tags/html/setup.rb +8 -0
- metadata +40 -7
- data/lib/yard/handlers/ruby/legacy/process_handler.rb +0 -13
- data/lib/yard/handlers/ruby/process_handler.rb +0 -18
- data/spec/handlers/process_handler_spec.rb +0 -17
data/lib/yard.rb
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
module YARD
|
2
|
-
VERSION = "0.
|
3
|
-
|
2
|
+
VERSION = "0.7.0"
|
3
|
+
|
4
4
|
# The root path for YARD source libraries
|
5
5
|
ROOT = File.expand_path(File.dirname(__FILE__))
|
6
|
-
|
6
|
+
|
7
7
|
# The root path for YARD builtin templates
|
8
8
|
TEMPLATE_ROOT = File.join(ROOT, '..', 'templates')
|
9
|
-
|
9
|
+
|
10
10
|
# @deprecated Use {Config::CONFIG_DIR}
|
11
11
|
CONFIG_DIR = File.expand_path('~/.yard')
|
12
|
-
|
12
|
+
|
13
13
|
# An alias to {Parser::SourceParser}'s parsing method
|
14
|
-
#
|
14
|
+
#
|
15
15
|
# @example Parse a glob of files
|
16
16
|
# YARD.parse('lib/**/*.rb')
|
17
17
|
# @see Parser::SourceParser.parse
|
18
18
|
def self.parse(*args) Parser::SourceParser.parse(*args) end
|
19
19
|
|
20
20
|
# An alias to {Parser::SourceParser}'s parsing method
|
21
|
-
#
|
21
|
+
#
|
22
22
|
# @example Parse a string of input
|
23
23
|
# YARD.parse_string('class Foo; end')
|
24
24
|
# @see Parser::SourceParser.parse_string
|
25
25
|
def self.parse_string(*args) Parser::SourceParser.parse_string(*args) end
|
26
|
-
|
26
|
+
|
27
27
|
# (see YARD::Config.load_plugins)
|
28
28
|
# @deprecated Use {Config.load_plugins}
|
29
29
|
def self.load_plugins; YARD::Config.load_plugins end
|
@@ -37,7 +37,7 @@ begin
|
|
37
37
|
begin; require 'continuation'; rescue LoadError; end
|
38
38
|
cc = callcc {|cc| cc }; cc.call if cc
|
39
39
|
CONTINUATIONS_SUPPORTED = true
|
40
|
-
rescue
|
40
|
+
rescue Exception
|
41
41
|
CONTINUATIONS_SUPPORTED = false
|
42
42
|
end
|
43
43
|
|
@@ -46,7 +46,10 @@ Dir.glob(File.join(YARD::ROOT, 'yard', 'core_ext', '*.rb')).each do |file|
|
|
46
46
|
require file
|
47
47
|
end
|
48
48
|
|
49
|
-
|
49
|
+
# Backport RubyGems SourceIndex and other classes
|
50
|
+
require File.join(YARD::ROOT, 'yard', 'rubygems', 'backports')
|
51
|
+
|
52
|
+
['autoload', 'globals'].each do |file|
|
50
53
|
require File.join(YARD::ROOT, 'yard', file)
|
51
54
|
end
|
52
55
|
|
data/lib/yard/autoload.rb
CHANGED
@@ -10,30 +10,33 @@ module YARD
|
|
10
10
|
autoload :Gems, __p('cli/gems')
|
11
11
|
autoload :Graph, __p('cli/graph')
|
12
12
|
autoload :Help, __p('cli/help')
|
13
|
+
autoload :List, __p('cli/list')
|
13
14
|
autoload :Server, __p('cli/server')
|
14
15
|
autoload :Stats, __p('cli/stats')
|
15
16
|
autoload :Yardoc, __p('cli/yardoc')
|
16
17
|
autoload :YRI, __p('cli/yri')
|
17
18
|
end
|
18
|
-
|
19
|
+
|
19
20
|
# A "code object" is defined as any entity in the Ruby language.
|
20
21
|
# Classes, modules, methods, class variables and constants are the
|
21
22
|
# major objects, but DSL languages can create their own by inheriting
|
22
23
|
# from {CodeObjects::Base}.
|
23
|
-
module CodeObjects
|
24
|
+
module CodeObjects
|
24
25
|
autoload :Base, __p('code_objects/base')
|
25
26
|
autoload :CodeObjectList, __p('code_objects/base')
|
26
27
|
autoload :ClassObject, __p('code_objects/class_object')
|
27
28
|
autoload :ClassVariableObject, __p('code_objects/class_variable_object')
|
28
29
|
autoload :ConstantObject, __p('code_objects/constant_object')
|
29
30
|
autoload :ExtendedMethodObject, __p('code_objects/extended_method_object')
|
31
|
+
autoload :ExtraFileObject, __p('code_objects/extra_file_object')
|
32
|
+
autoload :MacroObject, __p('code_objects/macro_object')
|
30
33
|
autoload :MethodObject, __p('code_objects/method_object')
|
31
34
|
autoload :ModuleObject, __p('code_objects/module_object')
|
32
35
|
autoload :NamespaceObject, __p('code_objects/namespace_object')
|
33
36
|
autoload :Proxy, __p('code_objects/proxy')
|
34
37
|
autoload :ProxyMethodError, __p('code_objects/proxy')
|
35
38
|
autoload :RootObject, __p('code_objects/root_object')
|
36
|
-
|
39
|
+
|
37
40
|
autoload :BUILTIN_ALL, __p('code_objects/base')
|
38
41
|
autoload :BUILTIN_CLASSES, __p('code_objects/base')
|
39
42
|
autoload :BUILTIN_MODULES, __p('code_objects/base')
|
@@ -66,11 +69,11 @@ module YARD
|
|
66
69
|
autoload :ConstantHandler, __p('handlers/ruby/legacy/constant_handler')
|
67
70
|
autoload :ExceptionHandler, __p('handlers/ruby/legacy/exception_handler')
|
68
71
|
autoload :ExtendHandler, __p('handlers/ruby/legacy/extend_handler')
|
72
|
+
autoload :MacroHandler, __p('handlers/ruby/legacy/macro_handler')
|
69
73
|
autoload :MethodHandler, __p('handlers/ruby/legacy/method_handler')
|
70
74
|
autoload :MixinHandler, __p('handlers/ruby/legacy/mixin_handler')
|
71
75
|
autoload :ModuleHandler, __p('handlers/ruby/legacy/module_handler')
|
72
76
|
autoload :PrivateConstantHandler, __p('handlers/ruby/legacy/private_constant_handler')
|
73
|
-
autoload :ProcessHandler, __p('handlers/ruby/legacy/process_handler')
|
74
77
|
autoload :VisibilityHandler, __p('handlers/ruby/legacy/visibility_handler')
|
75
78
|
autoload :YieldHandler, __p('handlers/ruby/legacy/yield_handler')
|
76
79
|
end
|
@@ -85,12 +88,13 @@ module YARD
|
|
85
88
|
autoload :ConstantHandler, __p('handlers/ruby/constant_handler')
|
86
89
|
autoload :ExceptionHandler, __p('handlers/ruby/exception_handler')
|
87
90
|
autoload :ExtendHandler, __p('handlers/ruby/extend_handler')
|
91
|
+
autoload :MacroHandler, __p('handlers/ruby/macro_handler')
|
92
|
+
autoload :MacroHandlerMethods, __p('handlers/ruby/macro_handler_methods')
|
88
93
|
autoload :MethodHandler, __p('handlers/ruby/method_handler')
|
89
94
|
autoload :MethodConditionHandler, __p('handlers/ruby/method_condition_handler')
|
90
95
|
autoload :MixinHandler, __p('handlers/ruby/mixin_handler')
|
91
96
|
autoload :ModuleHandler, __p('handlers/ruby/module_handler')
|
92
97
|
autoload :PrivateConstantHandler, __p('handlers/ruby/private_constant_handler')
|
93
|
-
autoload :ProcessHandler, __p('handlers/ruby/process_handler')
|
94
98
|
autoload :StructHandlerMethods, __p('handlers/ruby/struct_handler_methods')
|
95
99
|
autoload :VisibilityHandler, __p('handlers/ruby/visibility_handler')
|
96
100
|
autoload :YieldHandler, __p('handlers/ruby/yield_handler')
|
@@ -100,8 +104,8 @@ module YARD
|
|
100
104
|
autoload :Processor, __p('handlers/processor')
|
101
105
|
end
|
102
106
|
|
103
|
-
# The parser namespace holds all parsing engines used by YARD.
|
104
|
-
# Currently only Ruby parsers are implemented
|
107
|
+
# The parser namespace holds all parsing engines used by YARD.
|
108
|
+
# Currently only Ruby and C (Ruby) parsers are implemented.
|
105
109
|
module Parser
|
106
110
|
module Ruby # Ruby parsing components.
|
107
111
|
module Legacy # Handles Ruby parsing in Ruby 1.8.
|
@@ -123,11 +127,11 @@ module YARD
|
|
123
127
|
autoload :SourceParser, __p('parser/source_parser')
|
124
128
|
autoload :UndocumentableError, __p('parser/source_parser')
|
125
129
|
end
|
126
|
-
|
130
|
+
|
127
131
|
module Rake # Holds Rake tasks used by YARD
|
128
132
|
autoload :YardocTask, __p('rake/yardoc_task')
|
129
133
|
end
|
130
|
-
|
134
|
+
|
131
135
|
module Serializers # Namespace for components that serialize to various endpoints
|
132
136
|
autoload :Base, __p('serializers/base')
|
133
137
|
autoload :FileSystemSerializer, __p('serializers/file_system_serializer')
|
@@ -135,16 +139,16 @@ module YARD
|
|
135
139
|
autoload :StdoutSerializer, __p('serializers/stdout_serializer')
|
136
140
|
autoload :YardocSerializer, __p('serializers/yardoc_serializer')
|
137
141
|
end
|
138
|
-
|
142
|
+
|
139
143
|
# Namespace for classes and modules that handle serving documentation over HTTP
|
140
|
-
#
|
144
|
+
#
|
141
145
|
# == Implementing a Custom Server
|
142
|
-
# To customize the YARD server, see the {Adapter} and {Router} classes.
|
143
|
-
#
|
146
|
+
# To customize the YARD server, see the {Adapter} and {Router} classes.
|
147
|
+
#
|
144
148
|
# == Rack Middleware
|
145
149
|
# If you want to use the YARD server as a Rack middleware, see the documentation
|
146
150
|
# in {RackMiddleware}.
|
147
|
-
#
|
151
|
+
#
|
148
152
|
# @since 0.6.0
|
149
153
|
module Server
|
150
154
|
require __p('server')
|
@@ -165,7 +169,7 @@ module YARD
|
|
165
169
|
autoload :SearchCommand, __p('server/commands/search_command')
|
166
170
|
autoload :StaticFileCommand, __p('server/commands/static_file_command')
|
167
171
|
end
|
168
|
-
|
172
|
+
|
169
173
|
autoload :Adapter, __p('server/adapter')
|
170
174
|
autoload :DocServerSerializer, __p('server/doc_server_serializer')
|
171
175
|
autoload :DocServerHelper, __p('server/doc_server_helper')
|
@@ -179,7 +183,7 @@ module YARD
|
|
179
183
|
autoload :WebrickAdapter, __p('server/webrick_adapter')
|
180
184
|
autoload :WebrickServlet, __p('server/webrick_adapter')
|
181
185
|
end
|
182
|
-
|
186
|
+
|
183
187
|
module Tags # Namespace for Tag components
|
184
188
|
autoload :DefaultFactory, __p('tags/default_factory')
|
185
189
|
autoload :DefaultTag, __p('tags/default_tag')
|
@@ -191,14 +195,14 @@ module YARD
|
|
191
195
|
autoload :Tag, __p('tags/tag')
|
192
196
|
autoload :TagFormatError, __p('tags/tag_format_error')
|
193
197
|
end
|
194
|
-
|
198
|
+
|
195
199
|
# Namespace for templating system
|
196
200
|
module Templates
|
197
201
|
module Helpers # Namespace for template helpers
|
198
202
|
module Markup # Namespace for markup providers
|
199
203
|
autoload :RDocMarkup, __p('templates/helpers/markup/rdoc_markup')
|
200
204
|
end
|
201
|
-
|
205
|
+
|
202
206
|
autoload :BaseHelper, __p('templates/helpers/base_helper')
|
203
207
|
autoload :FilterHelper, __p('templates/helpers/filter_helper')
|
204
208
|
autoload :HtmlHelper, __p('templates/helpers/html_helper')
|
data/lib/yard/cli/command.rb
CHANGED
@@ -4,33 +4,34 @@ module YARD
|
|
4
4
|
module CLI
|
5
5
|
# Abstract base class for CLI utilities. Provides some helper methods for
|
6
6
|
# the option parser
|
7
|
-
#
|
7
|
+
#
|
8
8
|
# @abstract
|
9
9
|
# @since 0.6.0
|
10
10
|
class Command
|
11
11
|
# Helper method to run the utility on an instance.
|
12
12
|
# @see #run
|
13
13
|
def self.run(*args) new.run(*args) end
|
14
|
-
|
14
|
+
|
15
15
|
def description; '' end
|
16
|
-
|
16
|
+
|
17
17
|
protected
|
18
18
|
|
19
19
|
# Adds a set of common options to the tail of the OptionParser
|
20
|
-
#
|
20
|
+
#
|
21
21
|
# @param [OptionParser] opts the option parser object
|
22
22
|
# @return [void]
|
23
23
|
def common_options(opts)
|
24
24
|
opts.separator ""
|
25
25
|
opts.separator "Other options:"
|
26
|
-
opts.on('-e', '--load FILE', 'A Ruby script to load before
|
26
|
+
opts.on('-e', '--load FILE', 'A Ruby script to load before running command.') do |file|
|
27
27
|
load_script(file)
|
28
28
|
end
|
29
29
|
opts.on('--plugin PLUGIN', 'Load a YARD plugin (gem with `yard-\' prefix)') do |name|
|
30
30
|
# Not actually necessary to load here, this is done at boot in YARD::Config.load_plugins
|
31
31
|
# YARD::Config.load_plugin(name)
|
32
32
|
end
|
33
|
-
opts.on('--legacy', 'Use old style Ruby parser and handlers.
|
33
|
+
opts.on('--legacy', 'Use old style Ruby parser and handlers. ',
|
34
|
+
' Always on in 1.8.x.') do
|
34
35
|
YARD::Parser::SourceParser.parser_type = :ruby18
|
35
36
|
end
|
36
37
|
opts.on_tail('-q', '--quiet', 'Show no warnings.') { log.level = Logger::ERROR }
|
@@ -40,9 +41,9 @@ module YARD
|
|
40
41
|
opts.on_tail('-v', '--version', 'Show version.') { puts "yard #{YARD::VERSION}"; exit }
|
41
42
|
opts.on_tail('-h', '--help', 'Show this help.') { puts opts; exit }
|
42
43
|
end
|
43
|
-
|
44
|
+
|
44
45
|
# Parses the option and gracefully handles invalid switches
|
45
|
-
#
|
46
|
+
#
|
46
47
|
# @param [OptionParser] opts the option parser object
|
47
48
|
# @param [Array<String>] args the arguments passed from input. This
|
48
49
|
# array will be modified.
|
@@ -52,17 +53,17 @@ module YARD
|
|
52
53
|
rescue OptionParser::InvalidOption => e
|
53
54
|
log.warn "Unrecognized/#{e.message}"
|
54
55
|
end
|
55
|
-
|
56
|
+
|
56
57
|
# Loads a Ruby script. If +Config.options[:safe_mode]+ is enabled,
|
57
58
|
# this method will do nothing.
|
58
|
-
#
|
59
|
+
#
|
59
60
|
# @param [String] file the path to the script to load
|
60
61
|
# @since 0.6.2
|
61
62
|
def load_script(file)
|
62
63
|
return if YARD::Config.options[:safe_mode]
|
63
64
|
require(file.gsub(/\.rb$/, ''))
|
64
|
-
rescue LoadError
|
65
|
-
log.error "The file `#{file}' could not be loaded
|
65
|
+
rescue LoadError => load_exception
|
66
|
+
log.error "The file `#{file}' could not be loaded:\n#{load_exception}"
|
66
67
|
exit
|
67
68
|
end
|
68
69
|
end
|
@@ -2,20 +2,20 @@ module YARD
|
|
2
2
|
module CLI
|
3
3
|
# This class parses a command name out of the +yard+ CLI command and calls
|
4
4
|
# that command in the form:
|
5
|
-
#
|
5
|
+
#
|
6
6
|
# $ yard command_name [options]
|
7
|
-
#
|
7
|
+
#
|
8
8
|
# If no command or arguments are specified, or if the arguments immediately
|
9
|
-
# begin with a +--opt+ (not +--help+), the {default_command} will be used
|
9
|
+
# begin with a +--opt+ (not +--help+), the {default_command} will be used
|
10
10
|
# (which itself defaults to +:doc+).
|
11
|
-
#
|
11
|
+
#
|
12
12
|
# == Adding a Command
|
13
|
-
#
|
14
|
-
# To add a custom command via plugin, create a mapping in {commands} from
|
15
|
-
# the Symbolic command name to the {Command} class that implements the
|
13
|
+
#
|
14
|
+
# To add a custom command via plugin, create a mapping in {commands} from
|
15
|
+
# the Symbolic command name to the {Command} class that implements the
|
16
16
|
# command. To implement a command, see the documentation for the {Command}
|
17
17
|
# class.
|
18
|
-
#
|
18
|
+
#
|
19
19
|
# @see Command
|
20
20
|
# @see commands
|
21
21
|
# @see default_command
|
@@ -24,12 +24,12 @@ module YARD
|
|
24
24
|
# @return [Hash{Symbol => Command}] the mapping of command names to
|
25
25
|
# command classes to parse the user command.
|
26
26
|
attr_accessor :commands
|
27
|
-
|
27
|
+
|
28
28
|
# @return [Symbol] the default command name to use when no options
|
29
|
-
# are specified or
|
29
|
+
# are specified or
|
30
30
|
attr_accessor :default_command
|
31
31
|
end
|
32
|
-
|
32
|
+
|
33
33
|
self.commands = SymbolHash[
|
34
34
|
:config => Config,
|
35
35
|
:diff => Diff,
|
@@ -37,24 +37,25 @@ module YARD
|
|
37
37
|
:gems => Gems,
|
38
38
|
:graph => Graph,
|
39
39
|
:help => Help,
|
40
|
+
:list => List,
|
40
41
|
:ri => YRI,
|
41
42
|
:server => Server,
|
42
43
|
:stats => Stats
|
43
44
|
]
|
44
|
-
|
45
|
+
|
45
46
|
self.default_command = :doc
|
46
|
-
|
47
|
+
|
47
48
|
# Convenience method to create a new CommandParser and call {#run}
|
48
49
|
# @return (see #run)
|
49
50
|
def self.run(*args) new.run(*args) end
|
50
|
-
|
51
|
+
|
51
52
|
def initialize
|
52
53
|
log.show_backtraces = false
|
53
54
|
end
|
54
|
-
|
55
|
+
|
55
56
|
# Runs the {Command} object matching the command name of the first
|
56
57
|
# argument.
|
57
|
-
# @return [void]
|
58
|
+
# @return [void]
|
58
59
|
def run(*args)
|
59
60
|
unless args == ['--help']
|
60
61
|
if args.size == 0 || args.first =~ /^-/
|
@@ -69,18 +70,18 @@ module YARD
|
|
69
70
|
end
|
70
71
|
list_commands
|
71
72
|
end
|
72
|
-
|
73
|
+
|
73
74
|
private
|
74
75
|
|
75
76
|
def commands; self.class.commands end
|
76
|
-
|
77
|
+
|
77
78
|
def list_commands
|
78
79
|
puts "Usage: yard <command> [options]"
|
79
80
|
puts
|
80
81
|
puts "Commands:"
|
81
82
|
commands.keys.sort_by {|k| k.to_s }.each do |command_name|
|
82
83
|
command = commands[command_name].new
|
83
|
-
puts "%-8s %s" % [command_name, command.description]
|
84
|
+
puts "%-8s %s" % [command_name, command.description]
|
84
85
|
end
|
85
86
|
end
|
86
87
|
end
|
data/lib/yard/cli/config.rb
CHANGED
@@ -5,19 +5,19 @@ module YARD
|
|
5
5
|
class Config < Command
|
6
6
|
# @return [Symbol, nil] the key to view/edit, if any
|
7
7
|
attr_accessor :key
|
8
|
-
|
8
|
+
|
9
9
|
# @return [Array, nil] the list of values to set (or single value), if modifying
|
10
10
|
attr_accessor :values
|
11
|
-
|
11
|
+
|
12
12
|
# @return [Boolean] whether to reset the {#key}
|
13
13
|
attr_accessor :reset
|
14
|
-
|
14
|
+
|
15
15
|
# @return [Boolean] whether the value being set should be inside a list
|
16
16
|
attr_accessor :as_list
|
17
|
-
|
17
|
+
|
18
18
|
# @return [Boolean] whether to append values to existing key
|
19
19
|
attr_accessor :append
|
20
|
-
|
20
|
+
|
21
21
|
def initialize
|
22
22
|
super
|
23
23
|
self.key = nil
|
@@ -26,11 +26,11 @@ module YARD
|
|
26
26
|
self.append = false
|
27
27
|
self.as_list = false
|
28
28
|
end
|
29
|
-
|
29
|
+
|
30
30
|
def description
|
31
31
|
'Views or edits current global configuration'
|
32
32
|
end
|
33
|
-
|
33
|
+
|
34
34
|
def run(*args)
|
35
35
|
optparse(*args)
|
36
36
|
if key
|
@@ -43,9 +43,9 @@ module YARD
|
|
43
43
|
list_configuration
|
44
44
|
end
|
45
45
|
end
|
46
|
-
|
46
|
+
|
47
47
|
private
|
48
|
-
|
48
|
+
|
49
49
|
def modify_item
|
50
50
|
if reset
|
51
51
|
log.debug "Resetting #{key}"
|
@@ -58,18 +58,18 @@ module YARD
|
|
58
58
|
end
|
59
59
|
YARD::Config.save
|
60
60
|
end
|
61
|
-
|
61
|
+
|
62
62
|
def view_item
|
63
63
|
log.debug "Viewing #{key}"
|
64
64
|
puts YARD::Config.options[key].inspect
|
65
65
|
end
|
66
|
-
|
66
|
+
|
67
67
|
def list_configuration
|
68
68
|
log.debug "Listing configuration"
|
69
69
|
require 'yaml'
|
70
70
|
puts YAML.dump(YARD::Config.options).sub(/\A--.*\n/, '').gsub(/\n\n/, "\n")
|
71
71
|
end
|
72
|
-
|
72
|
+
|
73
73
|
def encode_values
|
74
74
|
if values.size == 1 && !as_list
|
75
75
|
encode_value(values.first)
|
@@ -77,7 +77,7 @@ module YARD
|
|
77
77
|
values.map {|v| encode_value(v) }
|
78
78
|
end
|
79
79
|
end
|
80
|
-
|
80
|
+
|
81
81
|
def encode_value(value)
|
82
82
|
case value
|
83
83
|
when /^-?\d+/; value.to_i
|
@@ -86,7 +86,7 @@ module YARD
|
|
86
86
|
else value
|
87
87
|
end
|
88
88
|
end
|
89
|
-
|
89
|
+
|
90
90
|
def optparse(*args)
|
91
91
|
list = false
|
92
92
|
self.as_list = false
|
@@ -105,24 +105,24 @@ module YARD
|
|
105
105
|
opts.separator "Note that `true` and `false` are reserved words."
|
106
106
|
opts.separator ""
|
107
107
|
opts.separator "General options:"
|
108
|
-
|
108
|
+
|
109
109
|
opts.on('-l', '--list', 'List current configuration') do
|
110
110
|
list = true
|
111
111
|
end
|
112
112
|
opts.on('-r', '--reset', 'Resets the specific item to default') do
|
113
113
|
self.reset = true
|
114
114
|
end
|
115
|
-
|
115
|
+
|
116
116
|
opts.separator ""
|
117
117
|
opts.separator "Modifying keys:"
|
118
|
-
|
118
|
+
|
119
119
|
opts.on('-a', '--append', 'Appends items to existing key values') do
|
120
120
|
self.append = true
|
121
121
|
end
|
122
122
|
opts.on('--as-list', 'Forces the value(s) to be wrapped in an array') do
|
123
123
|
self.as_list = true
|
124
124
|
end
|
125
|
-
|
125
|
+
|
126
126
|
common_options(opts)
|
127
127
|
parse_options(opts, args)
|
128
128
|
args = [] if list
|
@@ -130,7 +130,7 @@ module YARD
|
|
130
130
|
self.values = args if args.size >= 1
|
131
131
|
args
|
132
132
|
end
|
133
|
-
|
133
|
+
|
134
134
|
end
|
135
135
|
end
|
136
136
|
end
|