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.

Files changed (339) hide show
  1. data/.yardopts +10 -2
  2. data/ChangeLog +1263 -38
  3. data/LEGAL +5 -5
  4. data/LICENSE +1 -1
  5. data/README.md +91 -82
  6. data/Rakefile +6 -6
  7. data/benchmarks/builtins_vs_eval.rb +1 -1
  8. data/benchmarks/erb_vs_erubis.rb +4 -4
  9. data/benchmarks/generation.rb +5 -5
  10. data/benchmarks/parsing.rb +2 -2
  11. data/benchmarks/registry_store_types.rb +48 -0
  12. data/bin/yard +9 -1
  13. data/bin/yardoc +9 -1
  14. data/bin/yri +10 -2
  15. data/docs/CodeObjects.md +10 -10
  16. data/docs/GettingStarted.md +85 -83
  17. data/docs/Handlers.md +21 -21
  18. data/docs/Overview.md +7 -7
  19. data/docs/Parser.md +30 -30
  20. data/docs/Tags.md +250 -554
  21. data/docs/TagsArch.md +123 -0
  22. data/docs/Templates.md +58 -80
  23. data/docs/WhatsNew.md +378 -133
  24. data/docs/templates/default/fulldoc/html/full_list_tag.erb +7 -0
  25. data/docs/templates/default/fulldoc/html/setup.rb +6 -0
  26. data/docs/templates/default/layout/html/setup.rb +8 -0
  27. data/docs/templates/default/layout/html/tag_list.erb +11 -0
  28. data/docs/templates/default/yard_tags/html/list.erb +18 -0
  29. data/docs/templates/default/yard_tags/html/setup.rb +27 -0
  30. data/docs/templates/plugin.rb +65 -0
  31. data/lib/yard.rb +1 -10
  32. data/lib/yard/autoload.rb +75 -27
  33. data/lib/yard/cli/command.rb +5 -2
  34. data/lib/yard/cli/command_parser.rb +3 -2
  35. data/lib/yard/cli/diff.rb +1 -1
  36. data/lib/yard/cli/i18n.rb +69 -0
  37. data/lib/yard/cli/list.rb +1 -1
  38. data/lib/yard/cli/server.rb +30 -7
  39. data/lib/yard/cli/stats.rb +5 -6
  40. data/lib/yard/cli/yardoc.rb +95 -45
  41. data/lib/yard/cli/yri.rb +24 -3
  42. data/lib/yard/code_objects/base.rb +35 -4
  43. data/lib/yard/code_objects/extra_file_object.rb +1 -1
  44. data/lib/yard/code_objects/macro_object.rb +56 -99
  45. data/lib/yard/code_objects/method_object.rb +44 -6
  46. data/lib/yard/config.rb +18 -8
  47. data/lib/yard/core_ext/symbol_hash.rb +1 -1
  48. data/lib/yard/docstring.rb +45 -85
  49. data/lib/yard/docstring_parser.rb +269 -0
  50. data/lib/yard/handlers/base.rb +129 -118
  51. data/lib/yard/handlers/c/alias_handler.rb +15 -0
  52. data/lib/yard/handlers/c/attribute_handler.rb +13 -0
  53. data/lib/yard/handlers/c/base.rb +110 -0
  54. data/lib/yard/handlers/c/class_handler.rb +26 -0
  55. data/lib/yard/handlers/c/constant_handler.rb +12 -0
  56. data/lib/yard/handlers/c/handler_methods.rb +165 -0
  57. data/lib/yard/handlers/c/init_handler.rb +16 -0
  58. data/lib/yard/handlers/c/method_handler.rb +35 -0
  59. data/lib/yard/handlers/c/mixin_handler.rb +13 -0
  60. data/lib/yard/handlers/c/module_handler.rb +16 -0
  61. data/lib/yard/handlers/c/override_comment_handler.rb +22 -0
  62. data/lib/yard/handlers/c/path_handler.rb +10 -0
  63. data/lib/yard/handlers/c/struct_handler.rb +12 -0
  64. data/lib/yard/handlers/c/symbol_handler.rb +7 -0
  65. data/lib/yard/handlers/processor.rb +41 -30
  66. data/lib/yard/handlers/ruby/alias_handler.rb +0 -2
  67. data/lib/yard/handlers/ruby/attribute_handler.rb +16 -17
  68. data/lib/yard/handlers/ruby/base.rb +10 -6
  69. data/lib/yard/handlers/ruby/comment_handler.rb +9 -0
  70. data/lib/yard/handlers/ruby/dsl_handler.rb +14 -0
  71. data/lib/yard/handlers/ruby/dsl_handler_methods.rb +71 -0
  72. data/lib/yard/handlers/ruby/legacy/alias_handler.rb +0 -3
  73. data/lib/yard/handlers/ruby/legacy/attribute_handler.rb +16 -17
  74. data/lib/yard/handlers/ruby/legacy/base.rb +28 -6
  75. data/lib/yard/handlers/ruby/legacy/comment_handler.rb +9 -0
  76. data/lib/yard/handlers/ruby/legacy/dsl_handler.rb +16 -0
  77. data/lib/yard/handlers/ruby/legacy/method_handler.rb +0 -2
  78. data/lib/yard/handlers/ruby/legacy/mixin_handler.rb +1 -1
  79. data/lib/yard/handlers/ruby/legacy/module_function_handler.rb +18 -0
  80. data/lib/yard/handlers/ruby/method_handler.rb +10 -15
  81. data/lib/yard/handlers/ruby/mixin_handler.rb +1 -1
  82. data/lib/yard/handlers/ruby/module_function_handler.rb +26 -0
  83. data/lib/yard/handlers/ruby/struct_handler_methods.rb +3 -2
  84. data/lib/yard/i18n/pot_generator.rb +281 -0
  85. data/lib/yard/i18n/text.rb +72 -0
  86. data/lib/yard/logging.rb +3 -7
  87. data/lib/yard/options.rb +216 -0
  88. data/lib/yard/parser/c/c_parser.rb +225 -0
  89. data/lib/yard/parser/c/comment_parser.rb +131 -0
  90. data/lib/yard/parser/c/statement.rb +63 -0
  91. data/lib/yard/parser/ruby/ast_node.rb +91 -1
  92. data/lib/yard/parser/ruby/legacy/ruby_parser.rb +1 -0
  93. data/lib/yard/parser/ruby/legacy/statement.rb +7 -2
  94. data/lib/yard/parser/ruby/legacy/statement_list.rb +13 -22
  95. data/lib/yard/parser/ruby/ruby_parser.rb +87 -26
  96. data/lib/yard/parser/source_parser.rb +89 -88
  97. data/lib/yard/rake/yardoc_task.rb +1 -1
  98. data/lib/yard/registry.rb +21 -10
  99. data/lib/yard/registry_store.rb +48 -0
  100. data/lib/yard/serializers/file_system_serializer.rb +18 -20
  101. data/lib/yard/serializers/yardoc_serializer.rb +1 -0
  102. data/lib/yard/server/adapter.rb +2 -2
  103. data/lib/yard/server/commands/base.rb +1 -1
  104. data/lib/yard/server/commands/display_object_command.rb +13 -6
  105. data/lib/yard/server/commands/frames_command.rb +4 -21
  106. data/lib/yard/server/commands/library_command.rb +57 -11
  107. data/lib/yard/server/commands/list_command.rb +10 -34
  108. data/lib/yard/server/commands/search_command.rb +8 -2
  109. data/lib/yard/server/doc_server_helper.rb +34 -0
  110. data/lib/yard/server/rack_adapter.rb +5 -1
  111. data/lib/yard/server/router.rb +4 -10
  112. data/lib/yard/server/static_caching.rb +2 -2
  113. data/lib/yard/server/templates/default/fulldoc/html/css/custom.css +2 -2
  114. data/lib/yard/server/templates/default/fulldoc/html/js/live.js +0 -15
  115. data/lib/yard/server/templates/default/layout/html/breadcrumb.erb +3 -3
  116. data/lib/yard/server/templates/default/layout/html/script_setup.erb +8 -0
  117. data/lib/yard/server/templates/doc_server/processing/html/processing.erb +1 -1
  118. data/lib/yard/server/templates/doc_server/search/html/setup.rb +1 -1
  119. data/lib/yard/tags/default_factory.rb +31 -4
  120. data/lib/yard/tags/directives.rb +593 -0
  121. data/lib/yard/tags/library.rb +437 -35
  122. data/lib/yard/templates/engine.rb +17 -12
  123. data/lib/yard/templates/helpers/base_helper.rb +8 -2
  124. data/lib/yard/templates/helpers/html_helper.rb +57 -14
  125. data/lib/yard/templates/helpers/markup/rdoc_markup.rb +1 -1
  126. data/lib/yard/templates/helpers/markup_helper.rb +9 -9
  127. data/lib/yard/templates/helpers/text_helper.rb +2 -2
  128. data/lib/yard/templates/template.rb +42 -13
  129. data/lib/yard/templates/template_options.rb +81 -0
  130. data/spec/cli/command_parser_spec.rb +4 -4
  131. data/spec/cli/command_spec.rb +3 -3
  132. data/spec/cli/config_spec.rb +13 -13
  133. data/spec/cli/diff_spec.rb +13 -10
  134. data/spec/cli/gems_spec.rb +12 -12
  135. data/spec/cli/help_spec.rb +2 -2
  136. data/spec/cli/i18n_spec.rb +111 -0
  137. data/spec/cli/server_spec.rb +66 -18
  138. data/spec/cli/stats_spec.rb +15 -15
  139. data/spec/cli/yardoc_spec.rb +124 -97
  140. data/spec/cli/yri_spec.rb +14 -12
  141. data/spec/code_objects/base_spec.rb +104 -46
  142. data/spec/code_objects/class_object_spec.rb +33 -33
  143. data/spec/code_objects/code_object_list_spec.rb +5 -5
  144. data/spec/code_objects/constants_spec.rb +4 -3
  145. data/spec/code_objects/extra_file_object_spec.rb +19 -19
  146. data/spec/code_objects/macro_object_spec.rb +31 -37
  147. data/spec/code_objects/method_object_spec.rb +46 -23
  148. data/spec/code_objects/module_object_spec.rb +16 -16
  149. data/spec/code_objects/namespace_object_spec.rb +6 -6
  150. data/spec/code_objects/proxy_spec.rb +19 -19
  151. data/spec/config_spec.rb +33 -24
  152. data/spec/core_ext/array_spec.rb +1 -1
  153. data/spec/core_ext/file_spec.rb +8 -8
  154. data/spec/core_ext/hash_spec.rb +1 -1
  155. data/spec/core_ext/insertion_spec.rb +3 -3
  156. data/spec/core_ext/module_spec.rb +1 -1
  157. data/spec/core_ext/string_spec.rb +6 -6
  158. data/spec/core_ext/symbol_hash_spec.rb +11 -11
  159. data/spec/docstring_parser_spec.rb +207 -0
  160. data/spec/docstring_spec.rb +33 -146
  161. data/spec/handlers/alias_handler_spec.rb +14 -14
  162. data/spec/handlers/attribute_handler_spec.rb +20 -20
  163. data/spec/handlers/base_spec.rb +16 -16
  164. data/spec/handlers/c/alias_handler_spec.rb +33 -0
  165. data/spec/handlers/c/attribute_handler_spec.rb +40 -0
  166. data/spec/handlers/c/class_handler_spec.rb +64 -0
  167. data/spec/handlers/c/constant_handler_spec.rb +68 -0
  168. data/spec/handlers/c/init_handler_spec.rb +36 -0
  169. data/spec/handlers/c/method_handler_spec.rb +228 -0
  170. data/spec/handlers/c/mixin_handler_spec.rb +27 -0
  171. data/spec/handlers/c/module_handler_spec.rb +38 -0
  172. data/spec/handlers/c/override_comment_handler_spec.rb +43 -0
  173. data/spec/handlers/c/path_handler_spec.rb +35 -0
  174. data/spec/handlers/c/spec_helper.rb +11 -0
  175. data/spec/handlers/c/struct_handler_spec.rb +15 -0
  176. data/spec/handlers/class_condition_handler_spec.rb +10 -10
  177. data/spec/handlers/class_handler_spec.rb +38 -38
  178. data/spec/handlers/class_variable_handler_spec.rb +1 -1
  179. data/spec/handlers/constant_handler_spec.rb +7 -7
  180. data/spec/handlers/{macro_handler_spec.rb → dsl_handler_spec.rb} +72 -53
  181. data/spec/handlers/examples/alias_handler_001.rb.txt +5 -5
  182. data/spec/handlers/examples/class_condition_handler_001.rb.txt +9 -9
  183. data/spec/handlers/examples/class_handler_001.rb.txt +1 -1
  184. data/spec/handlers/examples/dsl_handler_001.rb.txt +110 -0
  185. data/spec/handlers/examples/exception_handler_001.rb.txt +14 -14
  186. data/spec/handlers/examples/method_condition_handler_001.rb.txt +2 -2
  187. data/spec/handlers/examples/method_handler_001.rb.txt +16 -16
  188. data/spec/handlers/examples/mixin_handler_001.rb.txt +8 -4
  189. data/spec/handlers/examples/private_constant_handler_001.rb.txt +1 -1
  190. data/spec/handlers/examples/visibility_handler_001.rb.txt +3 -3
  191. data/spec/handlers/examples/yield_handler_001.rb.txt +13 -14
  192. data/spec/handlers/exception_handler_spec.rb +9 -9
  193. data/spec/handlers/extend_handler_spec.rb +2 -2
  194. data/spec/handlers/legacy_base_spec.rb +34 -34
  195. data/spec/handlers/method_condition_handler_spec.rb +2 -2
  196. data/spec/handlers/method_handler_spec.rb +33 -33
  197. data/spec/handlers/mixin_handler_spec.rb +13 -9
  198. data/spec/handlers/module_function_handler_spec.rb +82 -0
  199. data/spec/handlers/module_handler_spec.rb +6 -6
  200. data/spec/handlers/private_constant_handler_spec.rb +3 -3
  201. data/spec/handlers/processor_spec.rb +5 -5
  202. data/spec/handlers/ruby/base_spec.rb +10 -6
  203. data/spec/handlers/ruby/legacy/base_spec.rb +11 -7
  204. data/spec/handlers/spec_helper.rb +2 -3
  205. data/spec/handlers/visibility_handler_spec.rb +6 -6
  206. data/spec/handlers/yield_handler_spec.rb +8 -8
  207. data/spec/i18n/pot_generator_spec.rb +244 -0
  208. data/spec/i18n/text_spec.rb +69 -0
  209. data/spec/options_spec.rb +160 -0
  210. data/spec/parser/base_spec.rb +3 -3
  211. data/spec/parser/c_parser_spec.rb +31 -257
  212. data/spec/parser/examples/array.c.txt +187 -187
  213. data/spec/parser/examples/extrafile.c.txt +1 -1
  214. data/spec/parser/examples/override.c.txt +1 -1
  215. data/spec/parser/ruby/ast_node_spec.rb +1 -1
  216. data/spec/parser/ruby/legacy/statement_list_spec.rb +24 -24
  217. data/spec/parser/ruby/legacy/token_list_spec.rb +7 -7
  218. data/spec/parser/ruby/ruby_parser_spec.rb +56 -34
  219. data/spec/parser/source_parser_spec.rb +125 -65
  220. data/spec/parser/tag_parsing_spec.rb +4 -4
  221. data/spec/rake/yardoc_task_spec.rb +10 -8
  222. data/spec/registry_spec.rb +65 -36
  223. data/spec/registry_store_spec.rb +90 -40
  224. data/spec/serializers/file_system_serializer_spec.rb +12 -12
  225. data/spec/serializers/yardoc_serializer_spec.rb +2 -2
  226. data/spec/server/adapter_spec.rb +3 -3
  227. data/spec/server/commands/base_spec.rb +8 -8
  228. data/spec/server/commands/library_command_spec.rb +3 -3
  229. data/spec/server/commands/static_file_command_spec.rb +7 -7
  230. data/spec/server/doc_server_helper_spec.rb +1 -1
  231. data/spec/server/doc_server_serializer_spec.rb +6 -6
  232. data/spec/server/rack_adapter_spec.rb +3 -3
  233. data/spec/server/router_spec.rb +19 -19
  234. data/spec/server/static_caching_spec.rb +4 -4
  235. data/spec/spec_helper.rb +7 -7
  236. data/spec/tags/default_factory_spec.rb +24 -16
  237. data/spec/tags/directives_spec.rb +422 -0
  238. data/spec/tags/library_spec.rb +15 -4
  239. data/spec/tags/overload_tag_spec.rb +6 -6
  240. data/spec/tags/ref_tag_list_spec.rb +8 -8
  241. data/spec/templates/class_spec.rb +7 -7
  242. data/spec/templates/constant_spec.rb +7 -7
  243. data/spec/templates/engine_spec.rb +28 -36
  244. data/spec/templates/examples/class001.html +108 -108
  245. data/spec/templates/examples/class002.html +17 -17
  246. data/spec/templates/examples/constant001.txt +1 -1
  247. data/spec/templates/examples/method001.html +45 -45
  248. data/spec/templates/examples/method002.html +25 -25
  249. data/spec/templates/examples/method003.html +60 -60
  250. data/spec/templates/examples/method004.html +7 -7
  251. data/spec/templates/examples/method005.html +28 -28
  252. data/spec/templates/examples/module001.html +321 -321
  253. data/spec/templates/examples/module001.txt +1 -1
  254. data/spec/templates/examples/module002.html +130 -130
  255. data/spec/templates/examples/module003.html +74 -74
  256. data/spec/templates/examples/module004.html +388 -0
  257. data/spec/templates/helpers/base_helper_spec.rb +32 -32
  258. data/spec/templates/helpers/html_helper_spec.rb +87 -68
  259. data/spec/templates/helpers/html_syntax_highlight_helper_spec.rb +9 -9
  260. data/spec/templates/helpers/markup/rdoc_markup_spec.rb +16 -16
  261. data/spec/templates/helpers/markup_helper_spec.rb +31 -28
  262. data/spec/templates/helpers/method_helper_spec.rb +7 -7
  263. data/spec/templates/helpers/shared_signature_examples.rb +9 -7
  264. data/spec/templates/helpers/text_helper_spec.rb +3 -3
  265. data/spec/templates/method_spec.rb +13 -13
  266. data/spec/templates/module_spec.rb +70 -24
  267. data/spec/templates/onefile_spec.rb +32 -15
  268. data/spec/templates/section_spec.rb +23 -23
  269. data/spec/templates/spec_helper.rb +31 -1
  270. data/spec/templates/tag_spec.rb +5 -5
  271. data/spec/templates/template_spec.rb +54 -46
  272. data/spec/verifier_spec.rb +5 -5
  273. data/templates/default/class/setup.rb +2 -2
  274. data/templates/default/docstring/html/abstract.erb +1 -1
  275. data/templates/default/docstring/html/note.erb +1 -1
  276. data/templates/default/docstring/html/private.erb +1 -1
  277. data/templates/default/docstring/html/todo.erb +1 -1
  278. data/templates/default/docstring/setup.rb +2 -2
  279. data/templates/default/fulldoc/html/css/full_list.css +4 -2
  280. data/templates/default/fulldoc/html/css/style.css +50 -44
  281. data/templates/default/fulldoc/html/frames.erb +21 -6
  282. data/templates/default/fulldoc/html/full_list.erb +5 -3
  283. data/templates/default/fulldoc/html/{full_list_files.erb → full_list_file.erb} +0 -0
  284. data/templates/default/fulldoc/html/js/app.js +29 -26
  285. data/templates/default/fulldoc/html/js/full_list.js +9 -9
  286. data/templates/default/fulldoc/html/js/jquery.js +4 -16
  287. data/templates/default/fulldoc/html/setup.rb +42 -38
  288. data/templates/default/layout/dot/header.erb +1 -1
  289. data/templates/default/layout/html/breadcrumb.erb +6 -6
  290. data/templates/default/layout/html/files.erb +1 -1
  291. data/templates/default/layout/html/footer.erb +1 -1
  292. data/templates/default/layout/html/headers.erb +3 -6
  293. data/templates/default/layout/html/index.erb +1 -1
  294. data/templates/default/layout/html/layout.erb +3 -7
  295. data/templates/default/layout/html/objects.erb +1 -1
  296. data/templates/default/layout/html/script_setup.erb +5 -0
  297. data/templates/default/layout/html/search.erb +4 -1
  298. data/templates/default/layout/html/setup.rb +8 -8
  299. data/templates/default/method_details/html/method_signature.erb +10 -3
  300. data/templates/default/method_details/setup.rb +1 -0
  301. data/templates/default/module/dot/info.erb +1 -1
  302. data/templates/default/module/dot/setup.rb +2 -2
  303. data/templates/default/module/html/attribute_details.erb +1 -1
  304. data/templates/default/module/html/children.erb +1 -1
  305. data/templates/default/module/html/defines.erb +1 -1
  306. data/templates/default/module/html/inherited_methods.erb +5 -4
  307. data/templates/default/module/html/item_summary.erb +15 -5
  308. data/templates/default/module/html/method_details_list.erb +2 -2
  309. data/templates/default/module/setup.rb +25 -12
  310. data/templates/default/module/text/setup.rb +1 -1
  311. data/templates/default/onefile/html/layout.erb +1 -1
  312. data/templates/default/onefile/html/setup.rb +2 -2
  313. data/templates/default/tags/html/example.erb +4 -2
  314. data/templates/default/tags/html/option.erb +1 -1
  315. data/templates/default/tags/html/overload.erb +1 -1
  316. data/templates/default/tags/html/see.erb +1 -1
  317. data/templates/default/tags/html/tag.erb +1 -1
  318. data/templates/default/tags/setup.rb +4 -3
  319. data/templates/guide/fulldoc/html/css/style.css +8 -8
  320. data/templates/guide/fulldoc/html/js/app.js +6 -6
  321. data/templates/guide/fulldoc/html/setup.rb +12 -12
  322. data/templates/guide/layout/html/layout.erb +11 -11
  323. data/templates/guide/layout/html/setup.rb +9 -9
  324. data/templates/guide/method/html/header.erb +2 -2
  325. data/templates/guide/method/html/setup.rb +1 -1
  326. metadata +68 -18
  327. data/bin/yard-graph +0 -4
  328. data/bin/yard-server +0 -4
  329. data/docs/Glossary.md +0 -12
  330. data/lib/yard/handlers/ruby/legacy/macro_handler.rb +0 -39
  331. data/lib/yard/handlers/ruby/macro_handler.rb +0 -40
  332. data/lib/yard/handlers/ruby/macro_handler_methods.rb +0 -131
  333. data/lib/yard/parser/c_parser.rb +0 -497
  334. data/lib/yard/server/templates/default/layout/html/headers.erb +0 -16
  335. data/lib/yard/server/templates/doc_server/frames/html/frames.erb +0 -13
  336. data/lib/yard/server/templates/doc_server/frames/html/setup.rb +0 -3
  337. data/lib/yard/server/templates/doc_server/full_list/html/full_list.erb +0 -34
  338. data/lib/yard/server/templates/doc_server/full_list/html/setup.rb +0 -20
  339. data/spec/handlers/examples/macro_handler_001.rb.txt +0 -83
@@ -3,6 +3,7 @@ def init
3
3
  end
4
4
 
5
5
  def source
6
+ return if owner != object.namespace
6
7
  return if Tags::OverloadTag === object
7
8
  return if object.source.nil?
8
9
  erb(:source)
@@ -1,5 +1,5 @@
1
1
  <%= object.type %> <%= h object.name %>
2
- <% if options[:full] %>
2
+ <% if options.full %>
3
3
  |
4
4
  <% object.attributes.each do |scope, list| %>
5
5
  <% list.sort_by {|name, rw| name.to_s }.each do |name, rw| %>
@@ -1,11 +1,11 @@
1
1
  def init
2
2
  @modules = object.children.select {|o| o.type == :module }
3
- @classes = object.children.select {|o| o.type == :class }
3
+ @classes = object.children.select {|o| o.type == :class }
4
4
  sections :child, [:info], :classes, [T('class')], :header, [T('module')], :dependencies
5
5
  end
6
6
 
7
7
  def dependencies
8
- return unless options[:dependencies]
8
+ return unless options.dependencies
9
9
  erb(:dependencies)
10
10
  end
11
11
 
@@ -5,7 +5,7 @@
5
5
  <% rw = meth.attr_info %>
6
6
  <span id="<%= anchor_for(rw[:write]) %>"></span>
7
7
  <span id="<%= anchor_for(rw[:read]) %>"></span>
8
- <%= yieldall :object => meth, :index => i %>
8
+ <%= yieldall :object => meth, :owner => object, :index => i %>
9
9
  <% end %>
10
10
  </div>
11
11
  <% end %>
@@ -1,6 +1,6 @@
1
1
  <h2>Defined Under Namespace</h2>
2
2
  <p class="children">
3
- <% @inner.each do |name, list| %>
3
+ <% @inner.each do |name, list| %>
4
4
  <% if list.size > 0 %>
5
5
  <strong class="<%= name %>"><%= name.to_s.capitalize %>:</strong> <%= list.map {|child| linkify(child, child.name) }.join(", ") %>
6
6
  <% end %>
@@ -1,3 +1,3 @@
1
- <%= object.file %><% if object.files.size > 1 %><span class="defines">,<br />
1
+ <%= object.file ? object.file : '(unknown)' %><% if object.files.size > 1 %><span class="defines">,<br />
2
2
  <%= object.files[1..-1].map {|f| f.first }.join(",<br /> ") %></span>
3
3
  <% end %>
@@ -1,6 +1,7 @@
1
1
  <% found_method = false %>
2
2
  <% object.inheritance_tree(true)[1..-1].each do |superclass| %>
3
3
  <% next if superclass.is_a?(YARD::CodeObjects::Proxy) %>
4
+ <% next if options.embed_mixins.size > 0 && options.embed_mixins_match?(superclass) != false %>
4
5
  <% meths = prune_method_listing(superclass.meths(:included => false, :inherited => false)) %>
5
6
  <% meths.reject! {|m| object.child(:scope => m.scope, :name => m.name) != nil } %>
6
7
  <% meths.reject! {|m| m.is_alias? || m.is_attribute? } %>
@@ -8,11 +9,11 @@
8
9
  <% if method_listing.size == 0 && !found_method %><h2>Method Summary</h2><% end %>
9
10
  <% found_method = true %>
10
11
  <h3 class="inherited">Methods <%= superclass.type == :class ? 'inherited' : 'included' %> from <%= linkify superclass %></h3>
11
- <p class="inherited"><%=
12
- meths.sort_by {|o| o.name.to_s }.map do |m|
12
+ <p class="inherited"><%=
13
+ meths.sort_by {|o| o.name.to_s }.map do |m|
13
14
  name = m.name(true)
14
15
  name = name.gsub(/^#/,'') if superclass.type == :module && object.class_mixins.include?(superclass)
15
- linkify(m, name)
16
- end.join(", ")
16
+ linkify(m, name)
17
+ end.join(", ")
17
18
  %></p>
18
19
  <% end %>
@@ -10,17 +10,27 @@
10
10
  (also: <%= @item.aliases.map {|o| h(o.name(true)) }.join(", ") %>)
11
11
  <% end %>
12
12
  </span>
13
+ <% if object != @item.namespace %>
14
+ <span class="note title not_defined_here">
15
+ <%= @item.namespace.type == :class ? 'inherited' : (@item.scope == :class ? 'extended' : 'included') %>
16
+ from <%= linkify @item, object.relative_path(@item.namespace) %>
17
+ </span>
18
+ <% end %>
13
19
  <% if @item.constructor? %>
14
20
  <span class="note title constructor">constructor</span>
15
21
  <% end %>
16
22
  <% if rw = @item.attr_info %>
17
- <% if rw[:read] && !rw[:write] %><span class="note title readonly">readonly</span><% end %>
18
- <% if rw[:write] && !rw[:read] %><span class="note title writeonly">writeonly</span><% end %>
23
+ <% if !run_verifier([rw[:read]].compact).empty? && run_verifier([rw[:write]].compact).empty? %>
24
+ <span class="note title readonly">readonly</span>
25
+ <% end %>
26
+ <% if !run_verifier([rw[:write]].compact).empty? && run_verifier([rw[:read]].compact).empty? %>
27
+ <span class="note title writeonly">writeonly</span>
28
+ <% end %>
19
29
  <% end %>
20
30
  <% if @item.visibility != :public %><span class="note title <%= @item.visibility %>"><%= @item.visibility %></span><% end %>
21
- <% if @item.has_tag?(:abstract) %><span class="abstract note title">Abstract</span><% end %>
22
- <% if @item.has_tag?(:deprecated) %><span class="deprecated note title">Deprecated</span><% end %>
23
- <% if @item.has_tag?(:api) && @item.tag(:api).text == 'private' %><span class="private note title">Private</span><% end %>
31
+ <% if @item.has_tag?(:abstract) %><span class="abstract note title">abstract</span><% end %>
32
+ <% if @item.has_tag?(:deprecated) %><span class="deprecated note title">deprecated</span><% end %>
33
+ <% if @item.has_tag?(:api) && @item.tag(:api).text == 'private' %><span class="private note title">private</span><% end %>
24
34
 
25
35
  <% if @item.has_tag?(:deprecated) %>
26
36
  <span class="summary_desc"><strong>Deprecated.</strong> <%= htmlify_line @item.tag(:deprecated).text %></span>
@@ -1,9 +1,9 @@
1
1
  <% scopes(method_listing(false)) do |list, scope| %>
2
2
  <div id="<%= scope %>_method_details" class="method_details_list">
3
3
  <h2><%= scope.to_s.capitalize %> Method Details</h2>
4
-
4
+
5
5
  <% list.each_with_index do |meth, i| %>
6
- <%= yieldall :object => meth, :index => i %>
6
+ <%= yieldall :object => meth, :owner => object, :index => i %>
7
7
  <% end %>
8
8
  </div>
9
9
  <% end %>
@@ -1,12 +1,12 @@
1
1
  include Helpers::ModuleHelper
2
2
 
3
3
  def init
4
- sections :header, :box_info, :pre_docstring, T('docstring'), :children,
5
- :constant_summary, [T('docstring')], :inherited_constants,
4
+ sections :header, :box_info, :pre_docstring, T('docstring'), :children,
5
+ :constant_summary, [T('docstring')], :inherited_constants,
6
6
  :attribute_summary, [:item_summary], :inherited_attributes,
7
7
  :method_summary, [:item_summary], :inherited_methods,
8
8
  :methodmissing, [T('method_details')],
9
- :attribute_details, [T('method_details')],
9
+ :attribute_details, [T('method_details')],
10
10
  :method_details_list, [T('method_details')]
11
11
  end
12
12
 
@@ -35,7 +35,10 @@ end
35
35
  def method_listing(include_specials = true)
36
36
  return @smeths ||= method_listing.reject {|o| special_method?(o) } unless include_specials
37
37
  return @meths if @meths
38
- @meths = object.meths(:inherited => false, :included => false)
38
+ @meths = object.meths(:inherited => false, :included => !options.embed_mixins.empty?)
39
+ if options.embed_mixins.size > 0
40
+ @meths = @meths.reject {|m| options.embed_mixins_match?(m.namespace) == false }
41
+ end
39
42
  @meths = sort_listing(prune_method_listing(@meths))
40
43
  @meths
41
44
  end
@@ -49,12 +52,19 @@ end
49
52
  def attr_listing
50
53
  return @attrs if @attrs
51
54
  @attrs = []
52
- [:class, :instance].each do |scope|
53
- object.attributes[scope].each do |name, rw|
54
- @attrs << (rw[:read] || rw[:write])
55
+ object.inheritance_tree(true).each do |superclass|
56
+ next if superclass.is_a?(CodeObjects::Proxy)
57
+ next if options.embed_mixins.size > 0 &&
58
+ options.embed_mixins_match?(superclass) == false
59
+ [:class, :instance].each do |scope|
60
+ superclass.attributes[scope].each do |name, rw|
61
+ attr = prune_method_listing([rw[:read], rw[:write]].compact, false).first
62
+ @attrs << attr if attr
63
+ end
55
64
  end
65
+ break if options.embed_mixins.empty?
56
66
  end
57
- @attrs = sort_listing(prune_method_listing(@attrs, false))
67
+ @attrs = sort_listing(@attrs)
58
68
  end
59
69
 
60
70
  def constant_listing
@@ -72,6 +82,7 @@ end
72
82
  def inherited_attr_list(&block)
73
83
  object.inheritance_tree(true)[1..-1].each do |superclass|
74
84
  next if superclass.is_a?(YARD::CodeObjects::Proxy)
85
+ next if options.embed_mixins.size > 0 && options.embed_mixins_match?(superclass) != false
75
86
  attribs = superclass.attributes[:instance]
76
87
  attribs = attribs.reject {|name, rw| object.child(:scope => :instance, :name => name) != nil }
77
88
  attribs = attribs.sort_by {|args| args.first.to_s }.map {|n, m| m[:read] || m[:write] }
@@ -83,6 +94,7 @@ end
83
94
  def inherited_constant_list(&block)
84
95
  object.inheritance_tree(true)[1..-1].each do |superclass|
85
96
  next if superclass.is_a?(YARD::CodeObjects::Proxy)
97
+ next if options.embed_mixins.size > 0 && options.embed_mixins_match?(superclass) != false
86
98
  consts = superclass.constants(:included => false, :inherited => false)
87
99
  consts = consts.reject {|const| object.child(:type => :constant, :name => const.name) != nil }
88
100
  consts = consts.sort_by {|const| const.name.to_s }
@@ -102,7 +114,7 @@ def docstring_full(obj)
102
114
  if docstring.summary.empty? && obj.tags(:return).size == 1 && obj.tag(:return).text
103
115
  docstring = Docstring.new(obj.tag(:return).text.gsub(/\A([a-z])/) {|x| x.upcase }.strip)
104
116
  end
105
-
117
+
106
118
  docstring
107
119
  end
108
120
 
@@ -112,7 +124,8 @@ end
112
124
 
113
125
  def groups(list, type = "Method")
114
126
  if groups_data = object.groups
115
- others = list.select {|m| !m.group }
127
+ list.each {|m| groups_data |= [m.group] if m.group && owner != m.namespace }
128
+ others = list.select {|m| !m.group || !groups_data.include?(m.group) }
116
129
  groups_data.each do |name|
117
130
  items = list.select {|m| m.group == name }
118
131
  yield(items, name) unless items.empty?
@@ -129,7 +142,7 @@ def groups(list, type = "Method")
129
142
  end
130
143
  group_data.each {|group, items| yield(items, group) unless items.empty? }
131
144
  end
132
-
145
+
133
146
  scopes(others) {|items, scope| yield(items, "#{scope.to_s.capitalize} #{type} Summary") }
134
147
  end
135
148
 
@@ -146,6 +159,6 @@ def mixed_into(object)
146
159
  list = run_verifier Registry.all(:class, :module)
147
160
  list.each {|o| o.mixins.each {|m| (globals.mixed_into[m.path] ||= []) << o } }
148
161
  end
149
-
162
+
150
163
  globals.mixed_into[object.path] || []
151
164
  end
@@ -1,5 +1,5 @@
1
1
  def init
2
- sections :header, [T('docstring')], :children, :includes, :extends,
2
+ sections :header, [T('docstring')], :children, :includes, :extends,
3
3
  :class_meths_list, :instance_meths_list
4
4
  end
5
5
 
@@ -16,7 +16,7 @@
16
16
  <h1><%= @title %></h1>
17
17
  <%= yieldall %>
18
18
  </div>
19
-
19
+
20
20
  <%= erb(:footer) %>
21
21
  </body>
22
22
  </html>
@@ -2,7 +2,7 @@ include T('default/layout/html')
2
2
  include YARD::Parser::Ruby::Legacy
3
3
 
4
4
  def init
5
- override_serializer
5
+ override_serializer
6
6
  @object = YARD::Registry.root
7
7
  @files.shift
8
8
  @objects.delete(YARD::Registry.root)
@@ -34,7 +34,7 @@ def override_serializer
34
34
  return unless object == 'index.html'
35
35
  super
36
36
  end
37
-
37
+
38
38
  def serialized_path(object)
39
39
  return object if object.is_a?(String)
40
40
  return 'index.html'
@@ -1,8 +1,10 @@
1
1
  <% if object.has_tag?(:example) %>
2
2
  <div class="examples">
3
- <h3>Examples:</h3>
3
+ <p class="tag_title">Examples:</p>
4
4
  <% object.tags(:example).each do |tag| %>
5
- <h4><%= htmlify_line(tag.name) %></h4>
5
+ <% unless tag.name.empty? %>
6
+ <p class="example_title"><%= htmlify_line(tag.name) %></p>
7
+ <% end %>
6
8
  <pre class="example code"><%= html_syntax_highlight(tag.text) %></pre>
7
9
  <% end %>
8
10
  </div>
@@ -2,7 +2,7 @@
2
2
  <% object.parameters.each do |param, default| %>
3
3
  <% tags = object.tags(:option).select {|x| x.name.to_s == param.to_s } %>
4
4
  <% next if tags.empty? %>
5
- <h3>Options Hash (<tt><%= param %></tt>):</h3>
5
+ <p class="tag_title">Options Hash (<tt><%= param %></tt>):</p>
6
6
  <ul class="option">
7
7
  <% for tag in tags %>
8
8
  <li>
@@ -1,7 +1,7 @@
1
1
  <% if object.tags(:overload).size == 1 %>
2
2
  <%= yieldall :object => object.tag(:overload) %>
3
3
  <% elsif object.has_tag?(:overload) && object.tags(:overload).any? {|o| !o.docstring.blank? } %>
4
- <h3>Overloads:</h3>
4
+ <p class="tag_title">Overloads:</p>
5
5
  <ul class="overload">
6
6
  <% object.tags(:overload).each do |overload| %>
7
7
  <% next if overload.docstring.blank? %>
@@ -1,5 +1,5 @@
1
1
  <% if object.has_tag?(:see) %>
2
- <h3>See Also:</h3>
2
+ <p class="tag_title">See Also:</p>
3
3
  <ul class="see">
4
4
  <% for tag in object.tags(:see) %>
5
5
  <li><%= linkify(tag.name, tag.text) %></li>
@@ -1,4 +1,4 @@
1
- <h3><%= @label ? @label : YARD::Tags::Library.labels[@name] %>:</h3>
1
+ <p class="tag_title"><%= @label ? @label : YARD::Tags::Library.labels[@name] %>:</p>
2
2
  <ul class="<%= @name %>">
3
3
  <% object.tags(@name).each do |tag| %>
4
4
  <li>
@@ -1,7 +1,7 @@
1
1
  def init
2
2
  tags = Tags::Library.visible_tags - [:abstract, :deprecated, :note, :todo]
3
3
  create_tag_methods(tags - [:example, :option, :overload, :see])
4
- sections :index, tags
4
+ sections :index, tags.map {|t| t.to_s.gsub('.', '_').to_sym }
5
5
  sections.any(:overload).push(T('docstring'))
6
6
  end
7
7
 
@@ -32,9 +32,10 @@ end
32
32
 
33
33
  def create_tag_methods(tags)
34
34
  tags.each do |tag|
35
- next if respond_to?(tag)
35
+ tag_meth = tag.to_s.gsub('.', '_')
36
+ next if respond_to?(tag_meth)
36
37
  instance_eval(<<-eof, __FILE__, __LINE__ + 1)
37
- def #{tag}; tag(#{tag.inspect}) end
38
+ def #{tag_meth}; tag(#{tag.inspect}) end
38
39
  eof
39
40
  end
40
41
  end
@@ -56,8 +56,8 @@ a:hover { color: #060; background: #8e0; }
56
56
  #filecontents pre.code, .docstring pre.code, .source_code pre { font-family: monospace; }
57
57
  #filecontents pre.code, .docstring pre.code { display: block; }
58
58
  .source_code .lines { padding-right: 12px; color: #555; text-align: right; }
59
- #filecontents pre.code, .docstring pre.code,
60
- .tags pre.example {
59
+ #filecontents pre.code, .docstring pre.code,
60
+ .tags pre.example {
61
61
  font-size: 0.9em;
62
62
  padding: 7px 30px;
63
63
  margin: 15px -30px;
@@ -73,21 +73,21 @@ pre.code .tstring_content,
73
73
  pre.code .heredoc_beg, pre.code .heredoc_end,
74
74
  pre.code .qwords_beg, pre.code .qwords_end,
75
75
  pre.code .tstring, pre.code .dstring { color: #036A07; }
76
- pre.code .fid, pre.code .rubyid_new, pre.code .rubyid_to_s,
77
- pre.code .rubyid_to_sym, pre.code .rubyid_to_f,
76
+ pre.code .fid, pre.code .rubyid_new, pre.code .rubyid_to_s,
77
+ pre.code .rubyid_to_sym, pre.code .rubyid_to_f,
78
78
  pre.code .dot + pre.code .id,
79
79
  pre.code .rubyid_to_i pre.code .rubyid_each { color: #0085FF; }
80
80
  pre.code .comment { color: #0066FF; }
81
81
  pre.code .const, pre.code .constant { color: #585CF6; }
82
82
  pre.code .symbol { color: #C5060B; }
83
- pre.code .kw,
83
+ pre.code .kw,
84
84
  pre.code .label,
85
- pre.code .rubyid_require,
85
+ pre.code .rubyid_require,
86
86
  pre.code .rubyid_extend,
87
87
  pre.code .rubyid_include { color: #0000FF; }
88
88
  pre.code .ivar { color: #318495; }
89
- pre.code .gvar,
90
- pre.code .rubyid_backref,
89
+ pre.code .gvar,
90
+ pre.code .rubyid_backref,
91
91
  pre.code .rubyid_nth_ref { color: #6D79DE; }
92
92
  pre.code .regexp, .dregexp { color: #036A07; }
93
93
  pre.code a { border-bottom: 1px dotted #bbf; }
@@ -16,13 +16,13 @@ function generateTOC() {
16
16
  if ($('#' + proposedId).length > 0) proposedId += counter++;
17
17
  this.id = proposedId;
18
18
  }
19
- if (thisTag > lastTag) {
20
- for (var i = 0; i < thisTag - lastTag; i++) {
21
- var tmp = $('<ol/>'); toc.append(tmp); toc = tmp;
22
- }
19
+ if (thisTag > lastTag) {
20
+ for (var i = 0; i < thisTag - lastTag; i++) {
21
+ var tmp = $('<ol/>'); toc.append(tmp); toc = tmp;
22
+ }
23
23
  }
24
- if (thisTag < lastTag) {
25
- for (var i = 0; i < lastTag - thisTag; i++) toc = toc.parent();
24
+ if (thisTag < lastTag) {
25
+ for (var i = 0; i < lastTag - thisTag; i++) toc = toc.parent();
26
26
  }
27
27
  toc.append('<li><a href="#' + this.id + '">' + $(this).text() + '</a></li>');
28
28
  lastTag = thisTag;
@@ -11,7 +11,7 @@ end
11
11
  Template.extra_includes << OverrideFileLinks
12
12
 
13
13
  def init
14
- class << options[:serializer]
14
+ class << options.serializer
15
15
  def serialized_path(object)
16
16
  if CodeObjects::ExtraFileObject === object
17
17
  super.sub(/^file\./, '')
@@ -19,12 +19,12 @@ def init
19
19
  super
20
20
  end
21
21
  end
22
- end if options[:serializer]
23
-
22
+ end if options.serializer
23
+
24
24
  generate_assets
25
25
  options.delete(:objects)
26
- options[:files].each {|file| serialize_file(file) }
27
- serialize_file(options[:readme])
26
+ options.files.each {|file| serialize_file(file) }
27
+ serialize_file(options.readme)
28
28
  end
29
29
 
30
30
  def generate_assets
@@ -34,19 +34,19 @@ def generate_assets
34
34
  end
35
35
 
36
36
  def serialize_file(file)
37
- index = options[:files].index(file)
37
+ index = options.files.index(file)
38
38
  outfile = file.name + '.html'
39
- options[:file] = file
39
+ options.file = file
40
40
  if file.attributes[:namespace]
41
- options[:object] = Registry.at(file.attributes[:namespace])
41
+ options.object = Registry.at(file.attributes[:namespace])
42
42
  end
43
- options[:object] ||= Registry.root
43
+ options.object ||= Registry.root
44
44
 
45
- if file == options[:readme]
45
+ if file == options.readme
46
46
  serialize_index(options)
47
47
  else
48
- serialize_index(options) if !options[:readme] && index == 0
49
- Templates::Engine.with_serializer(outfile, options[:serializer]) do
48
+ serialize_index(options) if !options.readme && index == 0
49
+ Templates::Engine.with_serializer(outfile, options.serializer) do
50
50
  T('layout').run(options)
51
51
  end
52
52
  end