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.

Files changed (224) hide show
  1. data/.yardopts +1 -0
  2. data/ChangeLog +723 -0
  3. data/README.md +16 -6
  4. data/docs/CodeObjects.md +10 -16
  5. data/docs/GettingStarted.md +232 -32
  6. data/docs/Glossary.md +1 -2
  7. data/docs/Handlers.md +10 -16
  8. data/docs/Overview.md +14 -13
  9. data/docs/Parser.md +13 -22
  10. data/docs/Tags.md +209 -16
  11. data/docs/Templates.md +237 -26
  12. data/docs/WhatsNew.md +178 -2
  13. data/lib/yard.rb +13 -10
  14. data/lib/yard/autoload.rb +22 -18
  15. data/lib/yard/cli/command.rb +13 -12
  16. data/lib/yard/cli/command_parser.rb +20 -19
  17. data/lib/yard/cli/config.rb +19 -19
  18. data/lib/yard/cli/diff.rb +46 -21
  19. data/lib/yard/cli/gems.rb +11 -11
  20. data/lib/yard/cli/graph.rb +13 -13
  21. data/lib/yard/cli/help.rb +1 -1
  22. data/lib/yard/cli/list.rb +22 -0
  23. data/lib/yard/cli/server.rb +17 -17
  24. data/lib/yard/cli/stats.rb +32 -32
  25. data/lib/yard/cli/yardoc.rb +181 -135
  26. data/lib/yard/cli/yri.rb +29 -29
  27. data/lib/yard/code_objects/base.rb +101 -101
  28. data/lib/yard/code_objects/class_object.rb +20 -20
  29. data/lib/yard/code_objects/constant_object.rb +1 -1
  30. data/lib/yard/code_objects/extended_method_object.rb +5 -5
  31. data/lib/yard/code_objects/extra_file_object.rb +89 -0
  32. data/lib/yard/code_objects/macro_object.rb +215 -0
  33. data/lib/yard/code_objects/method_object.rb +30 -30
  34. data/lib/yard/code_objects/module_object.rb +1 -1
  35. data/lib/yard/code_objects/namespace_object.rb +39 -39
  36. data/lib/yard/code_objects/proxy.rb +38 -38
  37. data/lib/yard/code_objects/root_object.rb +1 -1
  38. data/lib/yard/config.rb +40 -40
  39. data/lib/yard/core_ext/array.rb +2 -2
  40. data/lib/yard/core_ext/file.rb +11 -11
  41. data/lib/yard/core_ext/insertion.rb +10 -10
  42. data/lib/yard/core_ext/module.rb +2 -2
  43. data/lib/yard/core_ext/string.rb +2 -2
  44. data/lib/yard/core_ext/symbol_hash.rb +14 -14
  45. data/lib/yard/docstring.rb +122 -54
  46. data/lib/yard/globals.rb +2 -2
  47. data/lib/yard/handlers/base.rb +216 -127
  48. data/lib/yard/handlers/processor.rb +65 -27
  49. data/lib/yard/handlers/ruby/alias_handler.rb +6 -3
  50. data/lib/yard/handlers/ruby/attribute_handler.rb +7 -6
  51. data/lib/yard/handlers/ruby/base.rb +50 -31
  52. data/lib/yard/handlers/ruby/class_condition_handler.rb +11 -11
  53. data/lib/yard/handlers/ruby/class_handler.rb +10 -10
  54. data/lib/yard/handlers/ruby/class_variable_handler.rb +3 -3
  55. data/lib/yard/handlers/ruby/constant_handler.rb +7 -7
  56. data/lib/yard/handlers/ruby/exception_handler.rb +2 -2
  57. data/lib/yard/handlers/ruby/extend_handler.rb +1 -1
  58. data/lib/yard/handlers/ruby/legacy/alias_handler.rb +8 -5
  59. data/lib/yard/handlers/ruby/legacy/attribute_handler.rb +6 -5
  60. data/lib/yard/handlers/ruby/legacy/base.rb +42 -27
  61. data/lib/yard/handlers/ruby/legacy/class_condition_handler.rb +9 -9
  62. data/lib/yard/handlers/ruby/legacy/class_handler.rb +13 -12
  63. data/lib/yard/handlers/ruby/legacy/class_variable_handler.rb +3 -6
  64. data/lib/yard/handlers/ruby/legacy/constant_handler.rb +5 -8
  65. data/lib/yard/handlers/ruby/legacy/exception_handler.rb +1 -1
  66. data/lib/yard/handlers/ruby/legacy/extend_handler.rb +1 -0
  67. data/lib/yard/handlers/ruby/legacy/macro_handler.rb +40 -0
  68. data/lib/yard/handlers/ruby/legacy/method_handler.rb +10 -10
  69. data/lib/yard/handlers/ruby/legacy/mixin_handler.rb +4 -3
  70. data/lib/yard/handlers/ruby/legacy/module_handler.rb +2 -1
  71. data/lib/yard/handlers/ruby/legacy/private_constant_handler.rb +4 -4
  72. data/lib/yard/handlers/ruby/legacy/visibility_handler.rb +2 -1
  73. data/lib/yard/handlers/ruby/legacy/yield_handler.rb +3 -3
  74. data/lib/yard/handlers/ruby/macro_handler.rb +41 -0
  75. data/lib/yard/handlers/ruby/macro_handler_methods.rb +130 -0
  76. data/lib/yard/handlers/ruby/method_condition_handler.rb +1 -1
  77. data/lib/yard/handlers/ruby/method_handler.rb +13 -13
  78. data/lib/yard/handlers/ruby/mixin_handler.rb +4 -4
  79. data/lib/yard/handlers/ruby/module_handler.rb +2 -1
  80. data/lib/yard/handlers/ruby/private_constant_handler.rb +4 -4
  81. data/lib/yard/handlers/ruby/struct_handler_methods.rb +11 -11
  82. data/lib/yard/handlers/ruby/visibility_handler.rb +1 -1
  83. data/lib/yard/handlers/ruby/yield_handler.rb +5 -5
  84. data/lib/yard/logging.rb +11 -11
  85. data/lib/yard/parser/base.rb +8 -8
  86. data/lib/yard/parser/c_parser.rb +42 -33
  87. data/lib/yard/parser/ruby/ast_node.rb +62 -61
  88. data/lib/yard/parser/ruby/legacy/ruby_lex.rb +66 -66
  89. data/lib/yard/parser/ruby/legacy/ruby_parser.rb +4 -4
  90. data/lib/yard/parser/ruby/legacy/statement.rb +11 -11
  91. data/lib/yard/parser/ruby/legacy/statement_list.rb +15 -15
  92. data/lib/yard/parser/ruby/legacy/token_list.rb +9 -9
  93. data/lib/yard/parser/ruby/ruby_parser.rb +51 -37
  94. data/lib/yard/parser/source_parser.rb +271 -46
  95. data/lib/yard/rake/yardoc_task.rb +18 -17
  96. data/lib/yard/registry.rb +64 -64
  97. data/lib/yard/registry_store.rb +34 -34
  98. data/lib/yard/rubygems/backports.rb +8 -0
  99. data/lib/yard/rubygems/backports/LICENSE.txt +57 -0
  100. data/lib/yard/rubygems/backports/MIT.txt +20 -0
  101. data/lib/yard/rubygems/backports/gem.rb +8 -0
  102. data/lib/yard/rubygems/backports/source_index.rb +353 -0
  103. data/lib/yard/rubygems/specification.rb +2 -2
  104. data/lib/yard/serializers/base.rb +20 -20
  105. data/lib/yard/serializers/file_system_serializer.rb +28 -24
  106. data/lib/yard/serializers/process_serializer.rb +3 -3
  107. data/lib/yard/serializers/stdout_serializer.rb +6 -6
  108. data/lib/yard/serializers/yardoc_serializer.rb +17 -17
  109. data/lib/yard/server/adapter.rb +12 -12
  110. data/lib/yard/server/commands/base.rb +26 -26
  111. data/lib/yard/server/commands/display_file_command.rb +3 -2
  112. data/lib/yard/server/commands/display_object_command.rb +5 -5
  113. data/lib/yard/server/commands/frames_command.rb +1 -1
  114. data/lib/yard/server/commands/library_command.rb +7 -7
  115. data/lib/yard/server/commands/library_index_command.rb +2 -2
  116. data/lib/yard/server/commands/list_command.rb +8 -8
  117. data/lib/yard/server/commands/search_command.rb +8 -8
  118. data/lib/yard/server/commands/static_file_command.rb +3 -3
  119. data/lib/yard/server/doc_server_helper.rb +6 -3
  120. data/lib/yard/server/doc_server_serializer.rb +1 -1
  121. data/lib/yard/server/library_version.rb +45 -45
  122. data/lib/yard/server/rack_adapter.rb +10 -10
  123. data/lib/yard/server/router.rb +28 -28
  124. data/lib/yard/server/static_caching.rb +5 -5
  125. data/lib/yard/server/templates/default/fulldoc/html/css/custom.css +3 -3
  126. data/lib/yard/server/templates/default/fulldoc/html/js/live.js +1 -1
  127. data/lib/yard/server/templates/default/layout/html/breadcrumb.erb +2 -2
  128. data/lib/yard/server/templates/default/layout/html/headers.erb +13 -8
  129. data/lib/yard/server/templates/default/layout/html/setup.rb +7 -0
  130. data/lib/yard/server/templates/doc_server/full_list/html/full_list.erb +2 -2
  131. data/lib/yard/server/templates/doc_server/full_list/html/setup.rb +14 -4
  132. data/lib/yard/server/templates/doc_server/library_list/html/contents.erb +2 -2
  133. data/lib/yard/server/templates/doc_server/library_list/html/headers.erb +2 -2
  134. data/lib/yard/server/templates/doc_server/processing/html/processing.erb +1 -1
  135. data/lib/yard/server/templates/doc_server/search/html/search.erb +1 -1
  136. data/lib/yard/server/webrick_adapter.rb +2 -2
  137. data/lib/yard/tags/default_factory.rb +19 -19
  138. data/lib/yard/tags/default_tag.rb +1 -1
  139. data/lib/yard/tags/library.rb +68 -63
  140. data/lib/yard/tags/option_tag.rb +1 -1
  141. data/lib/yard/tags/overload_tag.rb +9 -9
  142. data/lib/yard/tags/ref_tag_list.rb +2 -2
  143. data/lib/yard/tags/tag.rb +7 -7
  144. data/lib/yard/templates/engine.rb +31 -31
  145. data/lib/yard/templates/erb_cache.rb +1 -1
  146. data/lib/yard/templates/helpers/base_helper.rb +46 -32
  147. data/lib/yard/templates/helpers/filter_helper.rb +2 -2
  148. data/lib/yard/templates/helpers/html_helper.rb +120 -81
  149. data/lib/yard/templates/helpers/html_syntax_highlight_helper.rb +4 -4
  150. data/lib/yard/templates/helpers/markup/rdoc_markup.rb +9 -9
  151. data/lib/yard/templates/helpers/markup_helper.rb +37 -30
  152. data/lib/yard/templates/helpers/method_helper.rb +7 -7
  153. data/lib/yard/templates/helpers/text_helper.rb +7 -7
  154. data/lib/yard/templates/helpers/uml_helper.rb +3 -3
  155. data/lib/yard/templates/section.rb +14 -14
  156. data/lib/yard/templates/template.rb +54 -54
  157. data/lib/yard/verifier.rb +27 -27
  158. data/spec/cli/list_spec.rb +8 -0
  159. data/spec/cli/yardoc_spec.rb +58 -10
  160. data/spec/code_objects/extra_file_object_spec.rb +132 -0
  161. data/spec/code_objects/macro_object_spec.rb +154 -0
  162. data/spec/docstring_spec.rb +90 -0
  163. data/spec/handlers/base_spec.rb +22 -0
  164. data/spec/handlers/examples/macro_handler_001.rb.txt +73 -0
  165. data/spec/handlers/examples/method_handler_001.rb.txt +17 -0
  166. data/spec/handlers/macro_handler_spec.rb +140 -0
  167. data/spec/handlers/method_handler_spec.rb +28 -0
  168. data/spec/handlers/processor_spec.rb +4 -0
  169. data/spec/handlers/spec_helper.rb +1 -1
  170. data/spec/parser/c_parser_spec.rb +47 -16
  171. data/spec/parser/examples/extrafile.c.txt +8 -0
  172. data/spec/parser/examples/multifile.c.txt +6 -0
  173. data/spec/parser/ruby/ruby_parser_spec.rb +5 -0
  174. data/spec/parser/source_parser_spec.rb +235 -0
  175. data/spec/rake/yardoc_task_spec.rb +22 -17
  176. data/spec/serializers/file_system_serializer_spec.rb +6 -0
  177. data/spec/server/commands/library_command_spec.rb +39 -0
  178. data/spec/spec_helper.rb +14 -0
  179. data/spec/templates/examples/method001.html +6 -6
  180. data/spec/templates/examples/method002.html +4 -4
  181. data/spec/templates/examples/method003.html +10 -10
  182. data/spec/templates/examples/method005.html +2 -2
  183. data/spec/templates/examples/module001.dot +2 -0
  184. data/spec/templates/examples/module001.html +76 -37
  185. data/spec/templates/examples/module001.txt +1 -1
  186. data/spec/templates/helpers/base_helper_spec.rb +7 -2
  187. data/spec/templates/helpers/html_helper_spec.rb +49 -5
  188. data/spec/templates/helpers/markup_helper_spec.rb +9 -8
  189. data/spec/templates/module_spec.rb +7 -0
  190. data/spec/templates/onefile_spec.rb +47 -0
  191. data/templates/default/fulldoc/html/css/style.css +7 -5
  192. data/templates/default/fulldoc/html/full_list.erb +13 -10
  193. data/templates/default/fulldoc/html/full_list_files.erb +1 -1
  194. data/templates/default/fulldoc/html/js/app.js +16 -14
  195. data/templates/default/fulldoc/html/js/full_list.js +7 -6
  196. data/templates/default/fulldoc/html/setup.rb +78 -17
  197. data/templates/default/layout/html/files.erb +1 -1
  198. data/templates/default/layout/html/headers.erb +11 -7
  199. data/templates/default/layout/html/search.erb +4 -4
  200. data/templates/default/layout/html/setup.rb +28 -8
  201. data/templates/default/module/html/inherited_attributes.erb +17 -0
  202. data/templates/default/module/setup.rb +1 -1
  203. data/templates/default/onefile/html/files.erb +2 -2
  204. data/templates/default/onefile/html/layout.erb +1 -1
  205. data/templates/default/onefile/html/setup.rb +7 -5
  206. data/templates/default/tags/html/option.erb +1 -1
  207. data/templates/default/tags/html/tag.erb +3 -3
  208. data/templates/guide/class/html/setup.rb +1 -0
  209. data/templates/guide/docstring/html/setup.rb +1 -0
  210. data/templates/guide/fulldoc/html/css/style.css +91 -0
  211. data/templates/guide/fulldoc/html/js/app.js +33 -0
  212. data/templates/guide/fulldoc/html/setup.rb +54 -0
  213. data/templates/guide/layout/html/layout.erb +81 -0
  214. data/templates/guide/layout/html/setup.rb +24 -0
  215. data/templates/guide/method/html/header.erb +18 -0
  216. data/templates/guide/method/html/setup.rb +21 -0
  217. data/templates/guide/module/html/header.erb +7 -0
  218. data/templates/guide/module/html/method_list.erb +5 -0
  219. data/templates/guide/module/html/setup.rb +26 -0
  220. data/templates/guide/tags/html/setup.rb +8 -0
  221. metadata +40 -7
  222. data/lib/yard/handlers/ruby/legacy/process_handler.rb +0 -13
  223. data/lib/yard/handlers/ruby/process_handler.rb +0 -18
  224. 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.6.8"
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
- ['autoload', 'globals'].each do |file|
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 with support planned for C.
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')
@@ -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 the source tree is parsed.') do |file|
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. Always on in 1.8.x.') do
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, check the path and try again."
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
@@ -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